RSA 暗号とは?
RSA 暗号は、公開鍵暗号方式 の一種で、1977年に Ron Rivest、Adi Shamir、Leonard Adleman によって考案されました。
その名前は、3人の発明者の名字の頭文字(Rivest, Shamir, Adleman)に由来しています。
基本概念
-
公開鍵と秘密鍵のペア
- 公開鍵:誰でも利用できる鍵。暗号化に使われる。
- 秘密鍵:鍵の持ち主だけが知っている鍵。復号に使われる。
-
非対称暗号方式
一方の鍵で暗号化したデータは、もう一方の鍵でのみ復号できる仕組みです。
RSA の仕組み
RSA 暗号では、主に以下の3つのステップで鍵の生成、暗号化、復号が行われます。
1. 鍵の生成
-
大きな素数 p と q を選ぶ
秘密にされる2つの大きな素数を用意します。 -
n の計算
n = p * q
ここで求められたn
は、公開鍵と秘密鍵の両方で使われるモジュラス(法)となります。 -
オイラーの φ 関数の計算
φ(n) = (p - 1) * (q - 1)
-
公開指数 e の選定
e
は1 < e < φ(n)
の範囲で、かつe
とφ(n)
が互いに素(最大公約数が1)である必要があります。
よく使われる値はe = 65537
です。 -
秘密指数 d の計算
d
はe * d ≡ 1 (mod φ(n))
を満たす値、すなわちe
の逆元として計算されます。
これにより生成される鍵は、
-
公開鍵:
(n, e)
-
秘密鍵:
(n, d)
2. 暗号化
送信者は、受信者の公開鍵 (n, e)
を用いて、メッセージ M
を暗号化します。
暗号文 C
は以下の式で求められます:
C = M^e mod n
※ここで、M
は暗号化可能な形(通常は数値に変換)に変換されたメッセージです。
3. 復号
受信者は、自身の秘密鍵 (n, d)
を使い、暗号文 C
を復号して元のメッセージ M
を取り出します。
復号の式は以下の通りです:
M = C^d mod n
この計算により、元のメッセージ M
が正しく復元されます。
RSA の安全性
RSA 暗号の安全性は、大きな整数の素因数分解が非常に困難であるという数学的な性質に基づいています。
具体的には、n = p * q
の n
を構成する素因数 p
と q
を求めることが、現代の計算技術では非常に時間がかかる(実質的に不可能に近い)ため、秘密鍵が守られるとされています。
また、鍵の長さ(通常は2048ビット以上)が安全性に直結するため、十分なビット数の鍵が推奨されています。
RSA の応用例
-
SSL/TLS
インターネット上の安全な通信(HTTPSなど)で、セッション鍵の交換に使われます。 -
電子署名
デジタル署名を生成することで、送信者の認証やデータの改ざん防止に利用されます。 -
暗号化メール
公開鍵暗号を利用してメール内容の機密性を保つシステムで使用されます。
まとめ
RSA 暗号は、公開鍵と秘密鍵を用いる非対称暗号方式で、以下の特徴があります:
- 安全性:大きな整数の素因数分解が困難なため、高いセキュリティが実現される。
- 鍵のペア:一方の鍵で暗号化し、もう一方の鍵でのみ復号できる仕組み。
- 応用範囲の広さ:インターネットのセキュリティ、電子署名、暗号化メールなど、多岐にわたる用途で利用されている。
このように、RSA 暗号は現代の情報セキュリティにおいて非常に重要な役割を果たしています。