SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
確率推論アルゴリズムに基づく
ストリーム暗号の鍵推定に関する一考察
           飯窪 祐二   堀井 俊佑   松嶋 敏泰
    早稲田大学 基幹理工学研究科 数学応用数理専攻


1
1.研究背景
       暗号      公開鍵暗号
                             ブロック暗号
                共通鍵暗号
                             ストリーム暗号
       ストリーム暗号
         ビット毎に逐次的に暗号化を行う暗号.
                  鍵         共通      鍵
                擬似乱数               擬似乱数
                 生成器                生成器
                   鍵系列                鍵系列
        平文         …010…   暗号文        …010…   平文
        …110…              …100…              …110…

                暗号化                復号化

          ストリーム暗号の安全性=擬似乱数生成器の安全性
    2
2.研究目的(1/2)
       擬似乱数生成器の種類
        •   非線形コンバイナ型            •   非線形フィルター型
        •   E0(Bluetooth)        •   A5/1,A5/2(携帯電話)
        •   RC4(Webブラウザ,無線LAN)       etc…
       従来研究
            各擬似乱数生成器に対して,その構造に合わせた攻撃法.
            例.非線形コンバイナ型乱数生成器に対して
              ・相関攻撃 [Siegenthaler ’85]
              ・高速相関攻撃 [Mihaljevic ’01]
               etc…

            攻撃         攻撃                    攻撃

             擬似乱数      擬似乱数                   擬似乱数
              生成器       生成器                    生成器
    3
2.研究目的(2/2)
       本研究の目的
        擬似乱数生成器を確率モデルとして捉えることで,統一的な
        視点から様々な擬似乱数生成器に対する攻撃法を提案.

                  本研究の視点




         擬似乱数    擬似乱数        擬似乱数
          生成器     生成器         生成器


        今回は例として,
        非線形コンバイナ型乱数生成器とE0について攻撃を行った.
    4
3.問題設定(1/2)
       擬似乱数生成器の確率モデル
        s  {0,1}L :鍵
        z  {0,1}N :鍵系列
                              P ( z | s)
             P (s)    s       擬似乱数          z
                              生成器

         ある確率分布に
         従って発生                     z は s から確定的
                                                         0
                                            P ( z | s)  
       既知平文攻撃                                           1
         既知:    z , P (s) , P (z | s)
         未知:    s
                     既知情報から未知              s を求める.
    5
3.問題設定(2/2)
       統計的決定理論に基づく最適な鍵推定 [Ety ’10]
         s  {0,1}L :鍵の推定値
         ˆ
    決定関数         s   (z )
                 ˆ

    最適な決定関数  (z ) →平均誤り率最小
             

                                    事後確率最大とする決定

            (z )  arg max P(s | z )
                          s
                    arg max P (s, z )   (∵ベイズの定理)
                          s

             擬似乱数生成器を同時確率関数で表現

                   鍵推定アルゴリズムの提案
    6
4.擬似乱数生成器(1/4)
        線形フィードバックシフトレジスタ(LFSR)を用いて構成されるものが多い.
       LFSR
         xn  {0,1}:LFSRの出力系列のnビット目
                        初期状態=鍵            擬似乱数系列を出力
                                              (Nビット)
                   xL             x2 x1
           xL 1

•                  :1対1対応,出力から鍵を求めるのは容易
                     → の代わりに の同時確率を考える.
•       出力系列       の同時確率関数は,




                                          nビット目の値は初期状態から
    7                   鍵=一様と仮定           確定的に決まる(= 0 or 1 )
4.擬似乱数生成器(2/4)
       非線形コンバイナ型乱数生成器(NCG)
    K個のLFSRと1個のK入力1出力非線形関数から構成される.
     z n  {0,1}:鍵系列のnビット目
                        xn1)
                         (
          LFSR(1)                               zn
                                   非線形
                                   関数f
                       xn K )
                        (
          LFSR(K)
                                f : {0,1}K  {0,1}
         の同時確率関数



                    LFSR(k)の出力系列                     が偽
    8               の同時確率                            が真
4.擬似乱数生成器(3/4)
       E0
        4個のLFSRと1個の有限状態機械(FSM)から構成される.
         y n :n時点のLFSRの出力の総和
          n :n時点のFSMの状態

                xn1)
                 (
    LFSR(1)                    yn
                    ( 4)
                           +        FSM    n 1
                x
                                    n
                    n
    LFSR(4)
                                               zn


FSMの状態遷移関数
    9
4.擬似乱数生成器(4/4)
        の同時確率関数
                   LFSR(k)の出力系列
                   の同時確率




    10
5.確率推論アルゴリズムに基づく鍵推定(1/5)
z が与えられたもとで,同時確率を最大とする            を求めたい.
               (       となる   ) →最適
 →鍵の長さの指数オーダの計算量


近似手法として,本研究では...
 sum-productアルゴリズムにより周辺確率を効率的に計算.
        →ファクターグラフ上でメッセージ伝搬による計算
なぜなら...              ストリーム暗号          [Mihaljevic ’01]
      符号理論            への攻撃            [Hosobuchi’06]
     における復号
              画像処理             etc…

       →同時確率ではなく周辺確率を求めることが有効.
11
5.確率推論アルゴリズムに基づく鍵推定(2/5)
    ファクターグラフ
         関数の因数分解の構造を表現したグラフ.

    例    g ( x1 , x2 , x3 , x4 )  f A ( x1 , x2 , x3 ) f B ( x2 , x3 , x4 )


                      fA                fB


                                                              ○:変数ノード
                                                              ■:因数ノード
             x1            x2         x3           x4

    12
5.確率推論アルゴリズムに基づく鍵推定(3/5)
    擬似乱数生成器の同時確率関数のファクターグラフ
• LFSR部分                                              • E0

                                                                    xn2 )
                                                                     (
                                                                                 xn3)
                                                                                  (



 x  (k )
              x   (k )
                                           x   (k )          xn1)
                                                              (
                                                                                          xn4 )
                                                                                           (
    1             2                            N



• NCGの非線形関数部分                                                               yn
                         xn1)
                          (


                                                              n                         n 1
                                                                            zn
           xn K )
            (
                                x   ( 2)
                                    n

    13
5.確率推論アルゴリズムに基づく鍵推定(4/5)
     sum-productアルゴリズム(1/2)
      ファクターグラフ上でメッセージと呼ばれる値を伝搬させること
      で周辺確率を効率的に計算するアルゴリズム.
        x f (x) :xからfへのメッセージ
        f  x (x) :fからxへのメッセージ
                →初期値を適当に仮定       x f (x) f

• 変数ノード→因数ノードの更新                          x
                                                 f  x (x)

                               n( x )  { f }                 n( f )  {x}
• 因数ノード→変数ノードの更新



     14
5.確率推論アルゴリズムに基づく鍵推定(5/5)
    sum-productアルゴリズム(2/2)
• 周辺確率の計算
  最大 I 回のメッセージ更新後,以下を計算.( I は予め設定)

                                                  x
                          なし・・・真の周辺確率
         →ファクターグラフにループ
                          あり・・・近似周辺確率

                   の大きい方を鍵のビットとして推定
• 計算量
         ファクターグラフに含まれる枝数の指数オーダ
          →LFSR部分の枝数が非常に多い=計算量:大
         基本的に鍵の一部(Bビット)を全数探索
          →前処理として[Mihaljevic ’01]の方法を用いることで枝数削減

    15
6.シミュレーション(1/3)
    シミュレーション内容
    • 同じLFSRの組を用いたNCGとE0について攻撃
         K 4



    • パラメータ
      L :LFSRの長さの合計(鍵のビット数)      固定
      N :観測された鍵系列長
      B :全数探索にあてるビット数            変化

    • それぞれ1000回ずつ攻撃を行う.


    16
6.シミュレーション(2/3)
    実験1     L  64, N  60
             1.E+00

         攻   1.E-01
良
         撃
             1.E-02
         成                                   NCG
         功   1.E-03
         確                                   E0
         率   1.E-04                          random
悪
             1.E-05
                                              残りのビットを
                      36 40 44 48 52 56 60
                                              ランダムに選ぶ
                               B
                              計算量
                      小                 大
    17
6.シミュレーション(3/3)
    実験2 L  128, N  80
             1.E+00

         攻   1.E-01
良
         撃
             1.E-02
         成                                          NCG
         功   1.E-03
         確                                          E0
         率   1.E-04                                 random
悪
             1.E-05
                      100 104 108 112 116 120 124
                                   B
                               計算量
                      小                       大
    18
7.考察
    実験より
         僅かではあるが,鍵の全数探索より少ない計算量で高い
         攻撃成功確率となる.

    NCGについての従来法
    •    高速相関攻撃[Mihaljevic ’01]
          1つのLFSRに対する攻撃
           →攻撃成功確率,計算量の比較が困難

                                    課題
    E0についての従来法                       提案法との比較
     •   条件付相関攻撃[Yi Lu ’05]
         L=128に対して O (238 ) の計算量で高い攻撃成功確率.


    19
8.まとめと今後の課題
    まとめ
• 擬似乱数生成器を確率モデルと見ることで,NCGとE0に対
  する鍵推定アルゴリズムの提案を行った.
• 最適な鍵推定方法の近似手法として,sum-productアルゴリ
  ズムを用いた.
• 提案した攻撃法について,シミュレーションによる評価を
  行った.

    今後の課題
• 提案法と従来法の比較.
• 他の擬似乱数生成器に対する鍵推定アルゴリズムの提案.
• 他の近似アルゴリズムによる計算手法の研究.


    20
付録1.全数探索するビット




                  鍵
       全数探索(合計Bビット)
                      B
       →LFSR1つに対して,平均   ビット
                      K


21
付録2.高速相関攻撃[Mihaljevic ’01]
    LFSRを“1つずつ”攻撃する

          LFSR
                         非線形
                         関数f
                 LFSR

                  LFSR     通信路と近似


         評価:1つのLFSRに対しての攻撃成功確率
          →全てのLFSRに対しての攻撃成功確率は?
           攻撃するLFSRの順番等も考慮すると難しい


    22
付録3.[Mihaljevic ’01]の前処理
     パリティ検査行列
              LFSRの出力ビット間の制約を表す.

          1011010                行和計算        1の数が少ない
          1101110                (GF(2)上)    ものを探索

                       1の数が多い                    追加
                       =枝数が多い

                                              新たなパリティ検査行列


    x1( k )    x2k )
                (
                            xN )
                             (k


    23

Weitere ähnliche Inhalte

Was ist angesagt?

Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)MITSUNARI Shigeo
 
Effective modern C++ 勉強会 #3 Item 12
Effective modern C++ 勉強会 #3 Item 12Effective modern C++ 勉強会 #3 Item 12
Effective modern C++ 勉強会 #3 Item 12Keisuke Fukuda
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)Takeshi Yamamuro
 
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用MITSUNARI Shigeo
 
C++によるソート入門
C++によるソート入門C++によるソート入門
C++によるソート入門AimingStudy
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexprGenya Murakami
 
Deep Learning を実装する
Deep Learning を実装するDeep Learning を実装する
Deep Learning を実装するShuhei Iitsuka
 
Practical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesPractical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesKoji Matsuda
 
異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知hagino 3000
 
Summary of "Hacking", 0x351-0x354
Summary of "Hacking", 0x351-0x354Summary of "Hacking", 0x351-0x354
Summary of "Hacking", 0x351-0x354Taku Miyakawa
 

Was ist angesagt? (14)

Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
 
Effective modern C++ 勉強会 #3 Item 12
Effective modern C++ 勉強会 #3 Item 12Effective modern C++ 勉強会 #3 Item 12
Effective modern C++ 勉強会 #3 Item 12
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
フラグを愛でる
フラグを愛でるフラグを愛でる
フラグを愛でる
 
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
 
C++によるソート入門
C++によるソート入門C++によるソート入門
C++によるソート入門
 
Emcpp item41
Emcpp item41Emcpp item41
Emcpp item41
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
 
Deep Learning を実装する
Deep Learning を実装するDeep Learning を実装する
Deep Learning を実装する
 
Practical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesPractical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architectures
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 
異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知
 
Summary of "Hacking", 0x351-0x354
Summary of "Hacking", 0x351-0x354Summary of "Hacking", 0x351-0x354
Summary of "Hacking", 0x351-0x354
 
たのしい関数型
たのしい関数型たのしい関数型
たのしい関数型
 

Andere mochten auch

katagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 cryptokatagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 cryptotrmr
 
CRYPT+YOU, UNDERSTAND TODAY!
CRYPT+YOU, UNDERSTAND TODAY!CRYPT+YOU, UNDERSTAND TODAY!
CRYPT+YOU, UNDERSTAND TODAY!inaz2
 
Katagaitai CTF勉強会 #4 Crypto
Katagaitai CTF勉強会 #4 CryptoKatagaitai CTF勉強会 #4 Crypto
Katagaitai CTF勉強会 #4 Cryptotrmr
 
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃trmr
 
CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)kikuchan98
 

Andere mochten auch (6)

katagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 cryptokatagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 crypto
 
CRYPT+YOU, UNDERSTAND TODAY!
CRYPT+YOU, UNDERSTAND TODAY!CRYPT+YOU, UNDERSTAND TODAY!
CRYPT+YOU, UNDERSTAND TODAY!
 
Xml Security
Xml SecurityXml Security
Xml Security
 
Katagaitai CTF勉強会 #4 Crypto
Katagaitai CTF勉強会 #4 CryptoKatagaitai CTF勉強会 #4 Crypto
Katagaitai CTF勉強会 #4 Crypto
 
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
 
CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)CTF超入門 (for 第12回セキュリティさくら)
CTF超入門 (for 第12回セキュリティさくら)
 

Mehr von matsushimalab (20)

ma99992012id537
ma99992012id537ma99992012id537
ma99992012id537
 
ma12012id536
ma12012id536ma12012id536
ma12012id536
 
ma112011id535
ma112011id535ma112011id535
ma112011id535
 
ma99992011id513
ma99992011id513ma99992011id513
ma99992011id513
 
ma99992010id512
ma99992010id512ma99992010id512
ma99992010id512
 
ma99992010id510
ma99992010id510ma99992010id510
ma99992010id510
 
ma99992011id509
ma99992011id509ma99992011id509
ma99992011id509
 
ma99992010id497
ma99992010id497ma99992010id497
ma99992010id497
 
ma99992010id464
ma99992010id464ma99992010id464
ma99992010id464
 
ma92010id461
ma92010id461ma92010id461
ma92010id461
 
ma112010id450
ma112010id450ma112010id450
ma112010id450
 
ma112009id434
ma112009id434ma112009id434
ma112009id434
 
ma52009id421
ma52009id421ma52009id421
ma52009id421
 
ma52009id420
ma52009id420ma52009id420
ma52009id420
 
ma52009id419
ma52009id419ma52009id419
ma52009id419
 
ma112007id414
ma112007id414ma112007id414
ma112007id414
 
ma112007id413
ma112007id413ma112007id413
ma112007id413
 
ma22006id411
ma22006id411ma22006id411
ma22006id411
 
ma112006id337
ma112006id337ma112006id337
ma112006id337
 
ma92007id395
ma92007id395ma92007id395
ma92007id395
 

ma99992011id508

  • 1. 確率推論アルゴリズムに基づく ストリーム暗号の鍵推定に関する一考察 飯窪 祐二 堀井 俊佑 松嶋 敏泰 早稲田大学 基幹理工学研究科 数学応用数理専攻 1
  • 2. 1.研究背景  暗号 公開鍵暗号 ブロック暗号 共通鍵暗号 ストリーム暗号  ストリーム暗号 ビット毎に逐次的に暗号化を行う暗号. 鍵 共通 鍵 擬似乱数 擬似乱数 生成器 生成器 鍵系列 鍵系列 平文 …010… 暗号文 …010… 平文 …110… …100… …110… 暗号化 復号化 ストリーム暗号の安全性=擬似乱数生成器の安全性 2
  • 3. 2.研究目的(1/2)  擬似乱数生成器の種類 • 非線形コンバイナ型 • 非線形フィルター型 • E0(Bluetooth) • A5/1,A5/2(携帯電話) • RC4(Webブラウザ,無線LAN) etc…  従来研究 各擬似乱数生成器に対して,その構造に合わせた攻撃法. 例.非線形コンバイナ型乱数生成器に対して ・相関攻撃 [Siegenthaler ’85] ・高速相関攻撃 [Mihaljevic ’01] etc… 攻撃 攻撃 攻撃 擬似乱数 擬似乱数 擬似乱数 生成器 生成器 生成器 3
  • 4. 2.研究目的(2/2)  本研究の目的 擬似乱数生成器を確率モデルとして捉えることで,統一的な 視点から様々な擬似乱数生成器に対する攻撃法を提案. 本研究の視点 擬似乱数 擬似乱数 擬似乱数 生成器 生成器 生成器 今回は例として, 非線形コンバイナ型乱数生成器とE0について攻撃を行った. 4
  • 5. 3.問題設定(1/2)  擬似乱数生成器の確率モデル s  {0,1}L :鍵 z  {0,1}N :鍵系列 P ( z | s) P (s) s 擬似乱数 z 生成器 ある確率分布に 従って発生 z は s から確定的 0 P ( z | s)    既知平文攻撃 1 既知: z , P (s) , P (z | s) 未知: s 既知情報から未知 s を求める. 5
  • 6. 3.問題設定(2/2)  統計的決定理論に基づく最適な鍵推定 [Ety ’10] s  {0,1}L :鍵の推定値 ˆ 決定関数 s   (z ) ˆ 最適な決定関数  (z ) →平均誤り率最小  事後確率最大とする決定   (z )  arg max P(s | z ) s  arg max P (s, z ) (∵ベイズの定理) s 擬似乱数生成器を同時確率関数で表現 鍵推定アルゴリズムの提案 6
  • 7. 4.擬似乱数生成器(1/4) 線形フィードバックシフトレジスタ(LFSR)を用いて構成されるものが多い.  LFSR xn  {0,1}:LFSRの出力系列のnビット目 初期状態=鍵 擬似乱数系列を出力 (Nビット) xL x2 x1 xL 1 • :1対1対応,出力から鍵を求めるのは容易 → の代わりに の同時確率を考える. • 出力系列 の同時確率関数は, nビット目の値は初期状態から 7 鍵=一様と仮定 確定的に決まる(= 0 or 1 )
  • 8. 4.擬似乱数生成器(2/4)  非線形コンバイナ型乱数生成器(NCG) K個のLFSRと1個のK入力1出力非線形関数から構成される. z n  {0,1}:鍵系列のnビット目 xn1) ( LFSR(1) zn 非線形 関数f xn K ) ( LFSR(K) f : {0,1}K  {0,1}  の同時確率関数 LFSR(k)の出力系列 が偽 8 の同時確率 が真
  • 9. 4.擬似乱数生成器(3/4)  E0 4個のLFSRと1個の有限状態機械(FSM)から構成される. y n :n時点のLFSRの出力の総和  n :n時点のFSMの状態 xn1) ( LFSR(1) yn ( 4) + FSM  n 1 x n n LFSR(4) zn FSMの状態遷移関数 9
  • 10. 4.擬似乱数生成器(4/4)  の同時確率関数 LFSR(k)の出力系列 の同時確率 10
  • 11. 5.確率推論アルゴリズムに基づく鍵推定(1/5) z が与えられたもとで,同時確率を最大とする を求めたい. ( となる ) →最適 →鍵の長さの指数オーダの計算量 近似手法として,本研究では... sum-productアルゴリズムにより周辺確率を効率的に計算. →ファクターグラフ上でメッセージ伝搬による計算 なぜなら... ストリーム暗号 [Mihaljevic ’01] 符号理論 への攻撃 [Hosobuchi’06] における復号 画像処理 etc… →同時確率ではなく周辺確率を求めることが有効. 11
  • 12. 5.確率推論アルゴリズムに基づく鍵推定(2/5)  ファクターグラフ 関数の因数分解の構造を表現したグラフ. 例 g ( x1 , x2 , x3 , x4 )  f A ( x1 , x2 , x3 ) f B ( x2 , x3 , x4 ) fA fB ○:変数ノード ■:因数ノード x1 x2 x3 x4 12
  • 13. 5.確率推論アルゴリズムに基づく鍵推定(3/5)  擬似乱数生成器の同時確率関数のファクターグラフ • LFSR部分 • E0 xn2 ) ( xn3) ( x (k ) x (k ) x (k ) xn1) ( xn4 ) ( 1 2 N • NCGの非線形関数部分 yn xn1) ( n  n 1 zn xn K ) ( x ( 2) n 13
  • 14. 5.確率推論アルゴリズムに基づく鍵推定(4/5)  sum-productアルゴリズム(1/2) ファクターグラフ上でメッセージと呼ばれる値を伝搬させること で周辺確率を効率的に計算するアルゴリズム.  x f (x) :xからfへのメッセージ  f  x (x) :fからxへのメッセージ →初期値を適当に仮定  x f (x) f • 変数ノード→因数ノードの更新 x  f  x (x) n( x ) { f } n( f ) {x} • 因数ノード→変数ノードの更新 14
  • 15. 5.確率推論アルゴリズムに基づく鍵推定(5/5)  sum-productアルゴリズム(2/2) • 周辺確率の計算 最大 I 回のメッセージ更新後,以下を計算.( I は予め設定) x なし・・・真の周辺確率 →ファクターグラフにループ あり・・・近似周辺確率 の大きい方を鍵のビットとして推定 • 計算量 ファクターグラフに含まれる枝数の指数オーダ →LFSR部分の枝数が非常に多い=計算量:大 基本的に鍵の一部(Bビット)を全数探索 →前処理として[Mihaljevic ’01]の方法を用いることで枝数削減 15
  • 16. 6.シミュレーション(1/3)  シミュレーション内容 • 同じLFSRの組を用いたNCGとE0について攻撃 K 4 • パラメータ L :LFSRの長さの合計(鍵のビット数) 固定 N :観測された鍵系列長 B :全数探索にあてるビット数 変化 • それぞれ1000回ずつ攻撃を行う. 16
  • 17. 6.シミュレーション(2/3)  実験1 L  64, N  60 1.E+00 攻 1.E-01 良 撃 1.E-02 成 NCG 功 1.E-03 確 E0 率 1.E-04 random 悪 1.E-05 残りのビットを 36 40 44 48 52 56 60 ランダムに選ぶ B 計算量 小 大 17
  • 18. 6.シミュレーション(3/3)  実験2 L  128, N  80 1.E+00 攻 1.E-01 良 撃 1.E-02 成 NCG 功 1.E-03 確 E0 率 1.E-04 random 悪 1.E-05 100 104 108 112 116 120 124 B 計算量 小 大 18
  • 19. 7.考察  実験より 僅かではあるが,鍵の全数探索より少ない計算量で高い 攻撃成功確率となる.  NCGについての従来法 • 高速相関攻撃[Mihaljevic ’01] 1つのLFSRに対する攻撃 →攻撃成功確率,計算量の比較が困難 課題  E0についての従来法 提案法との比較 • 条件付相関攻撃[Yi Lu ’05] L=128に対して O (238 ) の計算量で高い攻撃成功確率. 19
  • 20. 8.まとめと今後の課題  まとめ • 擬似乱数生成器を確率モデルと見ることで,NCGとE0に対 する鍵推定アルゴリズムの提案を行った. • 最適な鍵推定方法の近似手法として,sum-productアルゴリ ズムを用いた. • 提案した攻撃法について,シミュレーションによる評価を 行った.  今後の課題 • 提案法と従来法の比較. • 他の擬似乱数生成器に対する鍵推定アルゴリズムの提案. • 他の近似アルゴリズムによる計算手法の研究. 20
  • 21. 付録1.全数探索するビット 鍵 全数探索(合計Bビット) B →LFSR1つに対して,平均 ビット K 21
  • 22. 付録2.高速相関攻撃[Mihaljevic ’01]  LFSRを“1つずつ”攻撃する LFSR 非線形 関数f LFSR LFSR 通信路と近似 評価:1つのLFSRに対しての攻撃成功確率 →全てのLFSRに対しての攻撃成功確率は? 攻撃するLFSRの順番等も考慮すると難しい 22
  • 23. 付録3.[Mihaljevic ’01]の前処理  パリティ検査行列 LFSRの出力ビット間の制約を表す. 1011010  行和計算 1の数が少ない 1101110  (GF(2)上) ものを探索 1の数が多い 追加 =枝数が多い 新たなパリティ検査行列 x1( k ) x2k ) ( xN ) (k 23