プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

対称鍵暗号とは?情報セキュリティにおける基本概念と4つの動作モードを解説

対称鍵暗号の基本概念

対称鍵暗号(共通鍵暗号)とは、メッセージの暗号化と復号に同一の鍵を使用する暗号方式です。このデータ符号化の手法は、過去数十年にわたって政府機関や軍事組織間の秘密通信を実現する手段として広く活用されてきました。

対称鍵暗号は、「共有鍵暗号」「秘密鍵暗号」「単一鍵暗号」「ワンキー暗号」「プライベートキー暗号」など、さまざまな名称で呼ばれることもあります。この方式では、送信者と受信者の双方が同じ鍵を共有している必要があります。そのため、このアプローチにおける最大の課題は鍵の安全な配布(鍵配送問題)だと言えます。

ストリーム暗号とブロック暗号の違い

対称鍵暗号方式は、一般的に「ストリーム暗号」と「ブロック暗号」の2種類に分類されます。

ストリーム暗号は、1ビット(バイトやコンピュータワード)単位でデータを処理し、フィードバック構造を採用することで鍵が絶えず変化する仕組みを持っています。

一方、ブロック暗号は、その名の通り一度に1ブロックのデータを暗号化し、各ブロックに同じ鍵を使用します。一般に、ブロック暗号では同じ平文ブロックは同じ鍵を使えば常に同じ暗号文ブロックへ変換されますが、ストリーム暗号では同じ平文でも異なる暗号文に変換される点が大きな特徴です。

ブロック暗号の4つの動作モード

ブロック暗号は、以下の複数のモードのいずれかで動作します。

ECBモード(Electronic Codebook:電子符号表)

最もシンプルな適用方法で、共有鍵を使用して平文ブロックを暗号化し、暗号文ブロックを作成します。同一の平文ブロックは常に同じ暗号文ブロックを生成します。かつては最も広く利用されていたモードですが、ブルートフォース攻撃(総当たり攻撃)に対して脆弱であるという重大な欠点があります。

CBCモード(Cipher Block Chaining:暗号ブロック連鎖)

暗号方式にフィードバック構造を導入したモードです。CBCでは、平文を暗号化する前に、直前の暗号文ブロックとの排他的論理和(XOR)を取ります。この仕組みにより、同一の平文ブロックが同じ暗号文になることはありません。

CFBモード(Cipher Feedback:暗号フィードバック)

ブロック暗号を自己同期型ストリーム暗号として実装するモードです。CFBモードでは、ブロックサイズより小さい単位でデータを暗号化できるため、対話型端末の入力を暗号化するなど、特定のアプリケーションで有用性を発揮します。

例えば1バイトCFBモードを使用する場合、入力された各文字はブロックと同じサイズのシフトレジスタに格納され、暗号化された上でブロックとして送信されます。受信側では、暗号文を復号した後、ブロック内の余分なビットが破棄されます。

OFBモード(Output Feedback:出力フィードバック)

概念的には同期式ストリーム暗号と同等のブロック暗号実装です。OFBは、平文および暗号文のビットストリームの両方から独立した内部フィードバック構造を使用することで、同じ平文ブロックが同じ暗号文ブロックになることを防ぎます。

  1. 現代ブロック暗号の構成要素とは?Dボックス・Sボックス・循環シフトを徹底解説

    現代ブロック暗号とは現代のブロック暗号とは、mビットの平文ブロックを暗号化し、mビットの暗号文ブロックを復号する暗号方式です。暗号化および復号の処理にはKビットの鍵が使用され、復号アルゴリズムは暗号化アルゴリズムの逆操作として機能します。また、暗号化と復号の両方で同じ鍵が用いられます。ブロック暗号は、nビットの平文ブロックを入力としてnビットの暗号文ブロックを出力します。取り得る平文ブロックの組み合わせは複数存在するため、暗号化を可逆(=復号が可能)にするためには、それぞれの平文ブロックが一意の暗号文ブロックへ対応しなければなりません。このような変換は「可逆変換」または「非特異変換」と呼ばれま

  2. 情報セキュリティにおける公開鍵暗号システムの基本原理を解説

    公開鍵暗号システムとは公開鍵暗号(Public Key Cryptography)は、情報の機密性を確保するための不可欠な手段となっています。特に、秘密裏に通信を行いたい利用者同士が暗号鍵を交換する「鍵配布」の仕組みにおいて、その重要性が際立っています。また、デジタル署名の機能も備えており、ユーザーが鍵に署名することで本人性を検証できる点も大きな特徴です。この公開鍵暗号の考え方は、共通鍵暗号(対称鍵暗号)に関わる2つの難しい課題を解決しようとする試みから生まれました。第一の課題は鍵配布の問題です。共通鍵暗号における鍵配布では、以下のような要件が必要でした。通信を行う両者が、あらかじめ何らかの方