グーグルで検索した後、このトピックに関する情報はほとんど見つかりませんでした。私が見つけた唯一の部分的な答えはマイクロソフトによるものでした: Microsoft_AES_Technical_Factsheet
各メッセージにランダムなデータを追加することにより、同じ文字が何度も入力されても、各メッセージは一意になります。これにより、周波数分析が追跡する同一のメッセージを見つけられなくなります。
それは理にかなっていますが、私は知りたいと思っています:
A)信号にノイズを発生させずにメッセージにランダムデータを追加する方法、および
B)他のメーカーが周波数分析をどのように防ぐか。たとえば、Logitechについては何も見つかりませんでした。
それは単に「ノイズを追加する」だけの業界標準ですか、それで実装すると安全に想定できますか?
ブロック暗号が標準のAESとして、または軽量ブロック暗号が Prince として使用されていると想定します。軽量で消費電力を削減できる可能性が高いです。ブロック暗号には 操作モード が必要です。
ECBモードの場合:_m1=m2
_の場合に限り、E(m1) = E(m2)
。したがって、キーk
を押した後、もう一度それを押すと、暗号化は同じになります。通常のテキストを入力すると、言語を知ることにより、オブザーバは順列暗号のようにキーを押すと推測し、データを見ることができます。興味深いことに、このモードでは、接続されたPCでさえ暗号化を解除する必要がなく、そのまま使用できます。
CBCモードでは、ランダムなIV
が暗号化ごとに生成され、暗号化はc=E(m xor IV)
として実行されます。 IVは暗号化ごとにランダムに生成されるため、各文字の暗号化は毎回異なります。このように、ランダム化は 頻度攻撃 を防ぐことができます。
パディングによりランダム化することも可能です。つまり、ブロック暗号のブロックサイズが8バイトの場合、ランダムに7バイトを生成し、それをキーストロークのバイナリ値に追加できます。ここでは、キーボードは256の異なる値しか送信できないと想定されています。暗号化。ランダムパディングサイズは、デバイスに応じて調整できます。