ファイナンス、情報通信技術のスキル・アグリゲーション・サイト

' . iseeit.jp 情報通信技術 . '
 

暗号化アルゴリズム体験デモ

Security / Cryptography Demo

AES / RSA 暗号化アルゴリズム体験デモ

暗号化のブラックボックスを開ける。
共通鍵暗号 AES と公開鍵暗号 RSA の動作原理を、ブラウザ上で実際に動かして理解します。

AES-GCM — Web Crypto API RSA — 教育用モデル データ送信なし ブラウザ完結

このツールについて

HTTPS・パスワード保護・電子署名など、現代のセキュリティを支える2つの暗号方式を体験するデモツールです。 AES(共通鍵暗号)はブラウザ標準の Web Crypto API を使った本物の暗号化を、 RSA(公開鍵暗号)は教育用の小鍵長モデルで鍵生成の数学的過程をステップ表示します。

すべての処理はブラウザ内で完結し、入力したテキストが外部に送信されることはありません。

🔐

AES 本物の暗号化

Web Crypto API による実際の AES-GCM 暗号化・復号を体験

🔑

RSA 鍵生成を可視化

p・q・n・e・d の計算過程をステップごとに表示

📊

バイト列の変化を確認

平文・暗号文のバイト列をHEX形式で並べて比較

🔒

ローカル完結

入力テキストは外部送信なし。安全にお試しいただけます

体験デモ

AES-GCM / Web Crypto API
生成された鍵・IV(初期化ベクトル)
暗号化を実行すると表示されます
暗号文(HEX)
暗号化を実行すると表示されます
Base64 エンコード
実際のシステムでは Base64 で転送されることが多いです
復号結果
復号を実行すると表示されます

▍ 平文バイト列(HEX)
▍ 暗号文バイト列(HEX)— 同じ平文でも毎回変化します(IVのランダム性)
⚠ AES-GCM モードでは暗号化のたびに IV(初期化ベクトル)がランダム生成されるため、同じ平文・同じ鍵でも毎回異なる暗号文が生成されます。復号には暗号文と IV の両方が必要です。
RSA — 教育用モデル(小鍵長)

公開鍵 (n, e) / 秘密鍵 (n, d)
鍵生成を実行すると表示されます
暗号化・復号の計算過程
暗号化を実行すると表示されます
復号結果の確認
復号を実行すると表示されます
⚠ 本デモは教育目的で小さな素数(p・q)を使用しています。実用的なRSAは2048bit以上(600桁超)の巨大な素数を使用し、現実的な時間では素因数分解できません。

入力と出力の解説

🔐 AES — 入力・出力
入力
平文テキスト

暗号化したい任意の文字列。日本語・英数字・記号を使用可。長さは任意です。

入力
鍵長

128 / 192 / 256 bit から選択。鍵長が長いほど安全性が高く、現在の標準は 256bit です。

出力
生成された鍵・IV

暗号化のたびにランダム生成。IV(初期化ベクトル)により同じ平文でも毎回異なる暗号文になります。

出力
暗号文(HEX / Base64)

HEX は16進数表記、Base64 は実際の送信時に使われる形式。復号には暗号文と IV の両方が必要です。

出力
バイト列可視化

平文と暗号文のバイトをセルで表示。暗号化によってバイト列が完全に変わることが確認できます。

🔑 RSA — 入力・出力
入力
素数 p・q

RSA 鍵生成の基礎となる2つの素数。プリセットまたは手動入力。実用RSAでは数百桁の素数を使用します。

入力
平文数値

RSA は数値を暗号化します。n(= p × q) より小さい整数を入力します。

出力
鍵生成ステップ

n, φ(n), e, d の計算過程を順番に表示。各変数の数学的意味が確認できます。

出力
公開鍵・秘密鍵

公開鍵:(n, e) / 秘密鍵:(n, d)。公開鍵は公開してよく、秘密鍵は自分だけが持ちます。

出力
暗号化・復号の計算過程

暗号化:C = M^e mod n / 復号:M = C^d mod n の演算を明示します。

AESとRSAの比較

▍ 共通鍵暗号 vs 公開鍵暗号

項目 AES(共通鍵暗号) RSA(公開鍵暗号)
鍵の数1つ(送受信者が同じ鍵を共有)2つ(公開鍵で暗号化・秘密鍵で復号)
処理速度高速(大量データ向き)低速(少量データ向き)
鍵配送問題あり(鍵をどう安全に渡すか)なし(公開鍵は公開してよい)
安全性の根拠鍵なしの総当たり困難性素因数分解の困難性
主な用途ファイル暗号化・通信の暗号化鍵交換・電子署名・認証
TLS での役割セッションデータの暗号化共通鍵の安全な受け渡し
TLS(HTTPS)での組み合わせ: 実際の HTTPS 通信では両方を組み合わせます。RSA(公開鍵暗号)で共通鍵を安全に交換し、その後の大量データは高速な AES(共通鍵暗号)で暗号化します。RSA の「鍵配送問題を解決する力」と AES の「処理速度」を組み合わせたハイブリッド方式です。

AESとRSAの解説

▍ AES の動作原理(AES-GCM)

AES はブロック暗号です。平文を 16バイト(128bit)のブロックに分割し、各ブロックに対して以下の変換を繰り返します(256bit 鍵では14ラウンド)。

SubBytes
各バイトを S-Box という置換表で別の値に変換
ShiftRows
4×4バイトの行列の各行を左シフト
MixColumns
列ごとに行列演算で拡散
AddRoundKey
ラウンド鍵と XOR 演算
GCM モードとは: AES の動作モードの一つ。暗号化と同時に認証タグを生成し、「データが改ざんされていないか」も検証できます(認証付き暗号)。TLS 1.3 で標準的に使われています。

▍ RSA の数学的背景

RSA の安全性は「大きな数の素因数分解が現実的な時間でできない」ことに基づいています。

n = p × q 合成数(公開)。素因数分解されると破られる
φ(n) = (p-1)(q-1) オイラーのトーシェント関数(秘密)
e 公開指数。φ(n) と互いに素な整数(一般に 65537)
d = e⁻¹ mod φ(n) 秘密指数。拡張ユークリッド互除法で算出
暗号化: C = Mᵉ mod n 復号: M = Cᵈ mod n
なぜ公開鍵で暗号化して秘密鍵でしか復号できないか: e と d は「mod φ(n) において掛け合わせると 1 になる関係(逆数)」にあります。 Mᵉᵈ ≡ M (mod n) が成立するため、公開鍵(e)で変換したものを秘密鍵(d)で戻せます。 しかし d を求めるには φ(n) が必要で、φ(n) を求めるには p と q が必要です。 n を素因数分解できない限り d は計算できません。これが RSA の安全性の核心です。

▍ 実際のシステムでの使われ方

場面 AES の役割 RSA の役割
HTTPS(TLS)セッションデータの暗号化サーバー認証・共通鍵の交換
電子メール(S/MIME)メール本文の暗号化送信者の電子署名・鍵交換
ファイル暗号化ファイル内容の暗号化AES 鍵の暗号化・保護
SSH通信データの暗号化ホスト認証・ユーザー認証
パスワードマネージャー保存パスワードの暗号化マスター鍵の保護
【ご注意】
RSA デモは教育目的のため、現実的な攻撃に耐えない小鍵長(数十bit相当)を使用しています。 実用システムでは RSA 2048bit 以上を使用してください。 本ツールはセキュリティの学習・理解を目的としており、実際の暗号システムの設計・実装には専門知識が必要です。