ストリーム暗号とは?仕組みや用途は?
ストリーム暗号101:定義、用途&比較
ストリーム暗号は、バイト単位で動作する暗号化技術で、平文を適切な鍵がなければ誰にも読めないコードに変換します。
ストリーム暗号は線形なため、同じ鍵でメッセージを暗号化・複合化できます。それをクラックするのは難しくはなるものの、ハッカーはそれでもクラックしてきました
そのため、専門家は、ストリーム暗号を広範囲に使用するのは安全ではないと感じています。それでもなお、多くの人々がインターネットを通じて情報を伝えるテクノロジーに依存しています。
ストリーム暗号の仕組み
すべての暗号方式は、データにスクランブルをかけ、外部者からデータを隠すことを意図しています。ただし、ストリーム暗号は、他の暗号とは異なり、メッセージをグループ分割してブロック単位で暗号化するのではなく、メッセージ内のデータの各ビットに対して機能します。
ストリーム暗号は、以下に依存しています。
- プレインテキスト エンコードするメッセージが必要です。
- キーストリーム平文の文字が、ランダムな文字列に変換されます。数字、文字、記号のいずれでも構いません。
- 暗号文 これはエンコードされたメッセージのことです。
鍵の生成は、複雑な数学的プロセスです。それでも、大半のコンピューターは各ステップを数秒で実行できます。
平文のビットがストリーム暗号に入ると、暗号は数式で各ビットを操作します。出来上がったテキストは完全にスクランブルされ、受信者は適切な鍵がないと読むことができません。
正しい鍵を使用すると、受信者はストリーム暗号を介して暗号文をプッシュバックし、文字化けしたデータを平文に戻すことができます。
ストリーム暗号には主に2つのタイプがあり、それぞれ動作がわずかに異なります。
- 同期式ストリーム暗号: 秘密鍵はキーストリームを生成し、平文と暗号テキストの両方から独立して生成されます。
- 自己同期式ストリーム暗号:秘密鍵を使用しますが、ハッキングをより困難にするための 別形式のランダム化が含まれています。
自由に使えるツールはストリーム暗号だけではありません。ブロック暗号を使用することもできます。ブロック暗号は、メッセージを断片に分割し、各断片を暗号化アルゴリズムで処理します。
ストリーム暗号の用途
第二次世界大戦についての映画を見たことがあれば、ストリーム暗号の威力を目にしたことがあるかもしれません。ドイツ当局は、軍隊に指示を送信するためにこの技術を使用し、イギリスの専門家はコードの解読に何年も費やしました。
ドイツ軍は タイプライターのように見える複雑な機械を使っていました。キー上にある26個のランプにより、シンプルな暗号化を行いました。各ランプは変換された文字を表します。ドイツ軍はキーを定期的に変更しました。ボタンを1回押すとエニグマを更新し、新しいコードでメモを打つことができました。
オンラインモデルでは、エニグマ(本物のサウンド付)を楽しむことができます。そのシミュレーションで「Welcome」という単語をタップすると、エンコードされたメッセージ「4JOTSXI」が返されました。
歴史は非常に興味をそそります。しかし、誤解しないでください。ストリーム暗号は、戦争が終わっても廃れることはなかったのです。事実、現在でも多くの人がこのテクノロジーを使用しています。
ストリーム暗号には、次のような多くの利点があります。
- 速度この暗号化方式は、通常、ブロック暗号を含む他の暗号化形式よりも高速です。
- 複雑性が低い ストリーム暗号を最新のプログラムに組み込むのは簡単なため、開発するのに複雑なハードウェアは不要です。
- 連続性 企業によっては、ほんのわずかな短文でやり取りするところもあります。ビット単位の処理により、ストリーム暗号を使用すると、すべてが完了するのを待つ代わりに、準備ができたときに情報を送信できます。
- 使いやすさ ストリーム暗号は 対称暗号化ツールであるため、企業は公開鍵と秘密鍵に煩わされることはありません。また、最新のストリーム暗号の基礎となる数学的概念により、コンピューターは使用する適切な復号化キーを決定できます。
ストリーム暗号は実装が簡単なため、多くの人や組織が使用しています。実際、 ほとんどのウェブブラウザとウェブサイトはこのテクノロジーを使用しています。
保護されたウェブサイトに接続すると、そのサイトからコンピューターにSSL証明書が送信されます。そのドキュメントは暗号化されており、ほとんどのサイトはその通信にストリーム暗号を使用しています。
ストリーム暗号の作成の詳細
ストリーム暗号の根底には、数学的概念があります。これらの概念は、平文内の情報をどのように置き換えるかを規定し、文字化けしたメモをもう一度読み取り可能な状態に変換する方法を説明します。
ほとんどのストリーム暗号は、線形帰還シフトレジスタ (リニアフィードバックシフトレジスタまたはLFSR) と呼ばれるものに依存しています。これらは簡単に実装できますが、強力なセキュリティコンポーネントではありません。開発者は、以下を使用してセキュリティを強化しようとします。
- 非線形結合関数これらのシステムは、使用される数学の線形性を排除し、コードの解読をやや難しくします。
- クロック制御関数 この関数は、状況に応じて出力を変更する時刻要素を組み込んでいます。
- フィルター開発者は計算に別の要素を追加し、そのフィルターを機密にします。
将来の開発者たちは、ストリーム暗号のセキュリティを強化し、ハッカーらに自分たちの作業を帳消しにされないようさらに多くの方法を考え出すかもしれません。
ストリーム暗号はハッカーに対して安全か?
私たちが第二次世界大戦で学んだように、創造力を駆使して根気強く取り組めば、精緻なストリーム暗号でさえも解読は可能です。どんな暗号化形式も、何が何でも侵入する気でいる人に対して100%安全ではありません。
ハッカーフォーラムを読むと、ハッカーのほとんどがストリーム暗号はかなり簡単に反転できるものとみなしていることがわかります。暗号をいじってみてエンコード方法がわかれば、同じツールを使ってプロセスを反転することができます。
ストリーム暗号でセキュリティを確保する最善の方法は、鍵は一度だけしか使わないことです。また、各鍵は、使用したことがある他の鍵とは無関係でなければいけません。そうすれば、攻撃者が1つのキーを解読したとしても、システムの残りのセキュリティは維持できます。
人気のあるストリーム暗号
ストリーム暗号全体の話になると、よくRC4が話題に上ります。これは世界で最も人気のあるストリーム暗号であり、広く使用されています。
RC4暗号は次のように機能します。
他にもたくさんのオプションがあります。ウィキペディアには、コスト、速度、複雑さの異なる25種類のストリーム暗号が掲載されています。
適切な暗号化方法を選択することは、堅牢なセキュリティ