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
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
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