狠狠撸

狠狠撸Share a Scribd company logo
確率推論アルゴリズムに基づく
ストリーム暗号の鍵推定に関する一考察
           飯窪 祐二   堀井 俊佑   松嶋 敏泰
    早稲田大学 基幹理工学研究科 数学応用数理専攻


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

More Related Content

What's hot (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さんの代理アップ)
MITSUNARI Shigeo
?
Effective modern C++ 勉強会 #3 Item 12
Effective modern C++ 勉強会 #3 Item 12Effective modern C++ 勉強会 #3 Item 12
Effective modern C++ 勉強会 #3 Item 12
Keisuke Fukuda
?
尝尝痴惭で游ぶ(整数圧缩とか、虫86向けの自动ベクトル化とか)
尝尝痴惭で游ぶ(整数圧缩とか、虫86向けの自动ベクトル化とか)尝尝痴惭で游ぶ(整数圧缩とか、虫86向けの自动ベクトル化とか)
尝尝痴惭で游ぶ(整数圧缩とか、虫86向けの自动ベクトル化とか)
Takeshi Yamamuro
?
贰濒骋补尘补濒型暗号文に対する任意関数演算?再暗号化の二者间秘密计算プロトコルとその応用
贰濒骋补尘补濒型暗号文に対する任意関数演算?再暗号化の二者间秘密计算プロトコルとその応用贰濒骋补尘补濒型暗号文に対する任意関数演算?再暗号化の二者间秘密计算プロトコルとその応用
贰濒骋补尘补濒型暗号文に対する任意関数演算?再暗号化の二者间秘密计算プロトコルとその応用
MITSUNARI Shigeo
?
颁++によるソート入门
颁++によるソート入门颁++によるソート入门
颁++によるソート入门
AimingStudy
?
Emcpp item41
Emcpp item41Emcpp item41
Emcpp item41
mitsutaka_takeda
?
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
Genya 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 architectures
Koji 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-0x354
Taku Miyakawa
?
たのしい関数型
たのしい関数型たのしい関数型
たのしい関数型
Shinichi Kozake
?
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 12
Keisuke Fukuda
?
尝尝痴惭で游ぶ(整数圧缩とか、虫86向けの自动ベクトル化とか)
尝尝痴惭で游ぶ(整数圧缩とか、虫86向けの自动ベクトル化とか)尝尝痴惭で游ぶ(整数圧缩とか、虫86向けの自动ベクトル化とか)
尝尝痴惭で游ぶ(整数圧缩とか、虫86向けの自动ベクトル化とか)
Takeshi Yamamuro
?
贰濒骋补尘补濒型暗号文に対する任意関数演算?再暗号化の二者间秘密计算プロトコルとその応用
贰濒骋补尘补濒型暗号文に対する任意関数演算?再暗号化の二者间秘密计算プロトコルとその応用贰濒骋补尘补濒型暗号文に対する任意関数演算?再暗号化の二者间秘密计算プロトコルとその応用
贰濒骋补尘补濒型暗号文に対する任意関数演算?再暗号化の二者间秘密计算プロトコルとその応用
MITSUNARI Shigeo
?
颁++によるソート入门
颁++によるソート入门颁++によるソート入门
颁++によるソート入门
AimingStudy
?
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
Genya 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 architectures
Koji 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-0x354
Taku Miyakawa
?

Viewers also liked (6)

katagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 cryptokatagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 crypto
trmr
?
CRYPT+YOU, UNDERSTAND TODAY!
CRYPT+YOU, UNDERSTAND TODAY!CRYPT+YOU, UNDERSTAND TODAY!
CRYPT+YOU, UNDERSTAND TODAY!
inaz2
?
Xml Security
Xml SecurityXml Security
Xml Security
Satoshi Hada
?
Katagaitai CTF勉強会 #4 Crypto
Katagaitai CTF勉強会 #4 CryptoKatagaitai CTF勉強会 #4 Crypto
Katagaitai CTF勉強会 #4 Crypto
trmr
?
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
?
katagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 cryptokatagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 crypto
trmr
?
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 Crypto
trmr
?
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
?

More from matsushimalab (20)

ma99992012id537
ma99992012id537ma99992012id537
ma99992012id537
matsushimalab
?
ma12012id536
ma12012id536ma12012id536
ma12012id536
matsushimalab
?
ma112011id535
ma112011id535ma112011id535
ma112011id535
matsushimalab
?
ma52009id421
ma52009id421ma52009id421
ma52009id421
matsushimalab
?
ma52009id420
ma52009id420ma52009id420
ma52009id420
matsushimalab
?
ma112006id337
ma112006id337ma112006id337
ma112006id337
matsushimalab
?

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