0

暗号化に関する本を読んでいるのですが、質問に行き詰まっています。私は本当に何週間もそれを解決しようとしています。しかし、全体像を理解できなかったことが問題だと思います。質問は次のようなものでした:

LFSR ベースのストリーム暗号に対して既知の平文攻撃を行います。送信された平文は次のとおりであることがわかっています。

1001 0010 0110 1101 1001 0010 0110

チャンネルをタップすると、次のストリームが観察されます。

1011 1100 0011 0001 0010 1011 0001

1- What is the degree m of the key stream generator?
2- What is the initialization vector?
3- Determine the feedback coefficients of the LFSR.
4- Draw a circuit diagram and verify the output sequence of the LFSR.

暗号と LFSR を理解するために私を助けてくれてありがとう。

4

2 に答える 2

6

Paar と Pelzi による Understanding Cryptography のことを言っているのですね。第2 章は、Springer が発行元であることを考えると、Springer のサイトでオンラインで見つけることができます。

2 番目のリストは暗号文、つまりキーストリームで XOR された平文だと思います。キーストリームは次のようになります

    1001 0010 0110 1101 1001 0010 0110
XOR 1011 1100 0011 0001 0010 1011 0001
=   0010 1110 0101 1100 1011 1001 0111

また

0010111 0010111 0010111 0010111

7 ビットのブロックにグループ化されます。定理 2.3.1「次数 m の LSFR によって生成される最大シーケンス長は (2^m)-1 である」とすると、LSFR のシーケンス長は 7 に見えるため、次数は 3 であると推測できます。次数は LSFR の内部状態をカウントし、多項式の次数を参照しません。式 (2.1) によれば、その次数は 1 少ない。

だからあなたが計算したいのは方程式の解です

p(0,0,1)=0
p(0,1,0)=1
p(1,0,1)=1

p(s_0,s_1,s2)=p_0*s_0+p_1*s_1+p_2+s_2キー ストリームの残りの部分もこの式と一致することを確認します。これを行うと、次のマトリックスになります。

0 0 1 | 0
0 1 0 | 1
1 0 1 | 1

だからp_0=1p_1=1そしてp_2=0。これはキーストリームの残りの部分と一致します。

于 2014-04-13T15:40:19.157 に答える
4

質問の情報が不十分です。複数の解決策があります。

ステップ 1 は、キー ストリームを決定することです。平文と暗号文が分かっているので、それは簡単なはずです。2つをxorするだけです。

LFSR の標準的な方法は、0 と 1 の 2 つの要素だけを持つ体で次数 m の原始多項式を使用することです。このような場合、繰り返す前のシーケンスの長さは 2^m -1 です。ここには 28 ビットがあります。したがって、意図した解決策は m = 3 にすることです。実際、キー ストリーム ブレークの 28 ビットを、最初の 7 ビットの 3 つの繰り返しインスタンスに分割できます。

m = 3 の場合、キー ストリームの最初の 3 ビットは初期化ベクトルです。これから、LFSR のタップを決定できるはずです。x^3 + x^2 + 1 と x^3 + x + 1 の 2 つの要素を持つ体に対して次数 3 の原始多項式が 2 つしかないという事実で、答えを確認できます。

情報が不十分な理由は、キー ストリームが次数 5 または次数 6 または次数 7 の LFSR の最初の 28 ビットである可能性があるためです。

追加 初期化ベクトルが 0000...01 の次数 m の LFSR があるとします。左シフトをしています。ここで、LFSR の 1 ステップを実行します。左端のビットは破棄され、残りの m-1 ビットは左にシフトされ、新しい右端のビットはすべてのタップの xor になります。したがって、初期化ベクトルが与えられると、右端のセルにタップがある場合に限り、新しい右端のビットが 1 になります。次に、別のシフトを行います。新しい右端のビットは、右端の 2 つのセルの xor の組み合わせです。前のステップから、最後のセルにタップがあるかどうかがわかります。したがって、2 つのシフトの後、右端の 2 つのセルにタップがあるかどうかがわかります。この方法を続けると、すべてのタップを決定できます。

于 2014-04-13T15:41:40.583 に答える