暗号化チュートリアル

⚡ スマートサマリー

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

  • 🔐 核となるアイデア: 暗号化は平文を暗号文に変換し、復号化は秘密鍵を使ってそれを元に戻す。
  • 🧩 3つの分野: 暗号化は意味を隠し、暗号解読はそれを解読する。そして暗号学はその両方を網羅する。
  • 📐 アルゴリズムファミリー: ハッシュ関数、対称暗号、公開鍵暗号は、それぞれ異なる問題を解決する。
  • 現在の基準: AESとSHA-2は引き続き承認されているが、MD5、SHA-1、RC4は脆弱性があるとみなされている。
  • 🧪 実践練習: CrypTool 1は、RC4暗号化と24ビット鍵の総当たり攻撃を実演します。
  • 🔮 今後は: NISTは2024年8月に初のポスト量子標準を発表した。

暗号化チュートリアル

情報はビジネス、政府、軍事作戦において極めて重要な役割を果たしており、情報が不正に利用されると、収益の損失、あるいはそれ以上の深刻な事態を招く可能性があります。安全な通信を確保するため、組織は暗号技術を用いて情報を暗号化し、人間が判読できない形式に変換した後、再び元の形式に戻します。

この記事では、暗号化とネットワークセキュリティについて解説し、暗号化の仕組みと、情報が不正な手に渡らないようにする方法を学びます。

暗号化とは何ですか?

暗号学とは、情報を人間が判読できない形式に変換し、再び元の形式に戻すことによって、情報の真の意味を隠す技術の研究および応用である。

例えば、「I LOVE APPLES」を送る場合、各文字をアルファベット順で3番目に続く文字に置き換えて「K NQXG CRRNGU」とします。受信者がこれを読むには、下図のように3文字戻します。

暗号化と復号化では、各文字を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を開きます。

サンプルテキストが置き換えられる前のCrypTool 1のメインウィンドウ

  • 上記のフレーズでテキストを置き換えてください。

置換フレーズを含む CrypTool ドキュメント

ステップ 3) テキストを暗号化する

  • 暗号化/復号化メニューをクリックしてください。

CrypToolの暗号化/復号メニューで対称暗号化が選択されています。

  • 「対称型(モダン)」をポイントし、次に「RC4」を選択します。

CrypTool RC4キー入力ダイアログ

ステップ4)暗号化キーを選択する

  • 鍵長として24ビットを選択してください。
  • 値を00 00 00に設定してください。
  • 「暗号化」をクリックすると、以下のストリーム暗号が生成されます。

CrypToolで表示されるRC4ストリーム暗号の結果

ストリーム暗号の攻撃

ステップ5)分析を開始する

  • 「分析」メニューをクリックしてください。

CrypToolの分析メニューで、対称暗号化が最新の状態で強調表示されています。

  • 「対称暗号化(最新)」を選択し、次に「RC4」を選択します。

CrypToolのRC4ブルートフォース解析ダイアログ

  • 24ビットの秘密鍵を想定しているため、鍵長として24ビットを選択します。
  • [スタート]ボタンをクリック。

CrypToolのブルートフォース解析の進行状況ウィンドウ

  • 注意: 処理時間は、使用する機械の処理能力と鍵の長さに依存します。鍵が長いほど時間がかかるため、現代の鍵は128ビット以上になっています。

ステップ6)結果を分析する

  • 分析が完了すると、候補キーは以下のように順位付けされて表示されます。

CrypToolによる総当たり攻撃の結果をエントロピー順にランク付け

  • 注意: エントロピー値が低いほど通常は正しい結果を示すが、高い値でも正しい場合がある。
  • 意味が通じる行を選択し、「選択を確定」をクリックしてください。

よくあるご質問

対称暗号化は共通の鍵を1つ使用し、高速であるため、大量のデータを保護できます。非対称暗号化は公開鍵と秘密鍵のペアを使用するため、鍵の配布の問題を解決し、デジタル署名を可能にします。

いいえ。暗号化は鍵を使えば可逆的ですが、ハッシュ化は固定長のダイジェストへの一方向変換です。パスワードシステムがソルト付きハッシュを保存するのは、まさに元の値を復元できないようにするためです。

ソルトとは、各パスワードハッシュの横に保存される固有のランダムな値のことです。これにより、同じパスワードでもハッシュ値が異なるため、事前に計算されたレインボーテーブルによる攻撃を無効化し、攻撃者は各アカウントを個別に解析する必要が生じます。

デジタル証明書は、公開鍵を検証済みの身元情報に紐付け、認証局によって署名されます。ブラウザは、ウェブサイトへの暗号化された接続を信頼する前に、その署名を確認します。

大型量子コンピュータはRSA暗号と楕円曲線暗号の鍵を破る可能性がある一方、対称暗号はより大きな鍵を必要とするだけである。NISTはこれに対し、2024年にポスト量子暗号規格を公表することで対応し、早期に移行を開始できるようにした。

機械学習は、強力な最新の暗号を解読するものではありません。むしろ、サイドチャネル攻撃の分析、大規模な脆弱な鍵や再利用された鍵の検出、脅威検出時の異常な暗号化トラフィックの特定などに利用されます。

Copilotは定型コードの記述を効率化しますが、古いアルゴリズムやハードコードされたキーを提案することがよくあります。提案はすべて下書きとして扱い、手作業で作成したコードよりも検証済みのライブラリを優先し、キー処理についてはレビュー担当者に確認してもらいましょう。

セキュリティエンジニア、侵入テスト担当者、フォレンジックアナリストはこれを日常的に使用しており、これはセキュリティの完全な領域を形成しています。 CISSP認定ほとんどの役割は、アルゴリズムを設計するのではなく、検証済みのライブラリを設定することです。