暗号化チュートリアル
⚡ スマートサマリー
暗号化は、情報を人間が読み取れない形式に変換することで情報を保護します。正しい鍵を持つ者だけが元の形式に戻すことができます。このページでは、暗号化の機能、用途、アルゴリズム、そしてCrypToolを使った実践的な演習について解説します。

情報はビジネス、政府、軍事作戦において極めて重要な役割を果たしており、情報が不正に利用されると、収益の損失、あるいはそれ以上の深刻な事態を招く可能性があります。安全な通信を確保するため、組織は暗号技術を用いて情報を暗号化し、人間が判読できない形式に変換した後、再び元の形式に戻します。
この記事では、暗号化とネットワークセキュリティについて解説し、暗号化の仕組みと、情報が不正な手に渡らないようにする方法を学びます。
暗号化とは何ですか?
暗号学とは、情報を人間が判読できない形式に変換し、再び元の形式に戻すことによって、情報の真の意味を隠す技術の研究および応用である。
例えば、「I LOVE APPLES」を送る場合、各文字をアルファベット順で3番目に続く文字に置き換えて「K NQXG CRRNGU」とします。受信者がこれを読むには、下図のように3文字戻します。

情報を人間が読めない形式に変換することを、 暗号化、それを反転させることは 解読暗号化された結果は、 暗号.
復号には、正当な受信者のみが知っている秘密鍵が使用されます。鍵が必要なため、攻撃者が暗号文を傍受した場合でも通信の安全性が維持されます。鍵がなければ、通信は成り立ちません。
暗号の特徴
暗号システムは、以下の特性に基づいて評価される。
| 機能 | その意味 |
|---|---|
| アルゴリズム | 変換を実行する公開された数学的手順。 |
| 機密性 | 保護されたデータを読み取ることができるのは、鍵の所有者のみです。 |
| Integrity | データの変更はすべて検出可能です。 |
| 多角的な視点で挑む | このシステムは、さまざまな鍵のサイズと脅威レベルに合わせて調整されます。 |
| 相互運用性(インターオペラビリティ) | 異なるシステムやベンダー間で、保護されたデータがやり取りされる。 |
| 認証 | メッセージの発信元は証明できる。 |
| 拡張性 | データ量が増加しても、パフォーマンスは維持される。 |
| キー管理 | 鍵は安全に生成、保管、ローテーション、および廃棄されます。 |
暗号化のアプリケーション
そうした特性は、人々が意識することなく日常的に利用するサービスとなる。
| 用途 | 暗号化技術はどのように使われるのか |
|---|---|
| TLS暗号化 | ブラウザとウェブサイト間の通信を保護します。 |
| パスワードの保存 | 読み取り可能なパスワードの代わりに、ソルト付きハッシュを保存します。 |
| オンラインバンキング | 取引の安全性を確保し、銀行の認証を行います。 |
| Cryptocurrency | トランザクションに署名し、ブロックをハッシュ値でリンクします。 |
| 暗号化メール | メッセージの内容を転送中および保管中に非公開に保ちます。 |
| Digiタル署名 | 作成者と文書が改ざんされていないことを証明する。 |
| 安全なメッセージング | デバイス間でエンドツーエンド暗号化を適用します。 |
| E-コマース | 決済時のカード情報を保護します。 |
暗号解析とは何ですか?
暗号解読とは、暗号化に使用された鍵を使わずにメッセージを解読する技術である。数学的解析とアルゴリズムを用いて暗号を解読し、システムへの侵入手段としてだけでなく、防御面ではアルゴリズムの保護レベルを測定するためにも用いられる。
暗号解読攻撃の成否は、以下の要素に左右される。
- 利用可能な時間
- 利用可能なコンピューティング能力
- 利用可能なストレージ容量
以下は、一般的に議論されている暗号解読攻撃です。
- ブルートフォース攻撃 — 平文または鍵の考えられるすべての組み合わせを試行し、それぞれを暗号化して元の暗号と比較します。
- 辞書攻撃 — 単語リストを使用して、平文または鍵のいずれかに一致させます。これは主に、 暗号化されたパスワードを解読する.
- レインボーテーブル攻撃 ―暗号文を事前に計算されたハッシュ値と比較して一致するものを探す。保存されている各パスワードにソルトを付加することで、この手法は無効になる。
暗号学とは何ですか?
暗号学は、暗号技術と暗号解読を組み合わせた包括的な分野である。どちらの要素も重要であり、アルゴリズムは暗号解読者が解読を試み、失敗した場合にのみ信頼される。
Encryption Algorithms
以下のアルゴリズムは、セキュリティ関連の作業において繰り返し登場します。現在も承認されているものと、レガシーシステムでのみ使用されているものに注目してください。
- MD5 MD5はMessage-Digest 5の略で、128ビットのハッシュ値を生成します。MD5はハッシュ関数ではなく、 暗号化そのため、設計上、逆算することはできません。また、衝突耐性がなく(異なる入力から同じハッシュ値が生成される可能性がある)、パスワードや署名には適していません。
- SHA —セキュアハッシュアルゴリズムの略で、このアルゴリズム群はメッセージの要約表現(メッセージダイジェストと呼ばれる)を生成します。
- SHA-0160ビットのハッシュ値を生成する。重大な欠陥があったため廃止され、SHA-1に置き換えられた。
- SHA-1160ビットのハッシュ値を生成します。2017年に実際に衝突が発生する事例が実証されたため、NISTはデジタル署名での使用を禁止しました。したがって、使用は避けてください。
- SHA-2SHA-256とSHA-512を含む6つの関数群で、それぞれ32ビットワードと64ビットワードで動作します。どちらも引き続き承認されています。
- SHA-3: 2015年に標準化され、以前はKeccakとして知られていたこのアルゴリズムは、SHA-2のバックアップとして異なる内部設計を使用しています。
- AES — Advanced Encryption Standard(AES)は、現在、保存時および転送時のほとんどのデータを保護する対称ブロック暗号であり、128ビット、192ビット、および256ビットの鍵長が用いられています。AESはDESに取って代わり、新しいシステムのデフォルトとなっています。
- RC4 — かつてSecure Sockets Layer(SSL)やWired Equivalent Privacy(WEP)で一般的に使用されていたストリーム暗号。これらのプロトコルはどちらも廃止されており、RFC 7465は2015年にTLSのすべてのバージョンでRC4の使用を禁止した。ここでは教育的な例として残されている。
- フグ — 鍵付き対称ブロック暗号で、歴史的にはパスワードやファイルの暗号化に用いられてきた。64ビットのブロックサイズを持つAESは、現代においてより優れた選択肢となっている。
将来を見据え、NISTは2024年8月に初のポスト量子暗号規格(鍵交換用のML-KEM、署名用のML-DSAおよびSLH-DSA)を発表した。これらは、現在使用されている公開鍵暗号アルゴリズムを徐々に置き換えていく予定である。
ハッキング活動:CrypToolを使用して暗号を作成する方法
このCrypToolを使った実践演習では、RC4を使ってシンプルな暗号を作成し、鍵が24ビットであることが分かっているという前提で、総当たり攻撃でそれを復元します。目的は、短い鍵と脆弱な暗号では、真の保護が得られない理由を示すことです。
RC4 ストリーム暗号の作成
ステップ1)CrypToolをダウンロードしてインストールします
CrypTool 1 は、暗号学のためのオープンソースの教育ツールです。現在、活発な開発は CrypTool 2 に移行していますが、リリース 1.4.42 は引き続き動作します。 Windows そして、以下の画面と一致します。ダウンロードはこちらから cryptool.org.
ステップ2)CrypToolを開き、テキストを置き換えます
暗号化するフレーズは 時間は豊富だがお金は少ない子どもの決意を決して過小評価してはいけないキーは00 00 00です。
- CrypTool 1を開きます。
- 上記のフレーズでテキストを置き換えてください。
ステップ 3) テキストを暗号化する
- 暗号化/復号化メニューをクリックしてください。
- 「対称型(モダン)」をポイントし、次に「RC4」を選択します。
ステップ4)暗号化キーを選択する
- 鍵長として24ビットを選択してください。
- 値を00 00 00に設定してください。
- 「暗号化」をクリックすると、以下のストリーム暗号が生成されます。
ストリーム暗号の攻撃
ステップ5)分析を開始する
- 「分析」メニューをクリックしてください。
- 「対称暗号化(最新)」を選択し、次に「RC4」を選択します。
- 24ビットの秘密鍵を想定しているため、鍵長として24ビットを選択します。
- [スタート]ボタンをクリック。
- 注意: 処理時間は、使用する機械の処理能力と鍵の長さに依存します。鍵が長いほど時間がかかるため、現代の鍵は128ビット以上になっています。
ステップ6)結果を分析する
- 分析が完了すると、候補キーは以下のように順位付けされて表示されます。
- 注意: エントロピー値が低いほど通常は正しい結果を示すが、高い値でも正しい場合がある。
- 意味が通じる行を選択し、「選択を確定」をクリックしてください。









