RSA・ECCとは(全体像)
公開鍵暗号は、鍵が2つで1組(ペア)になっている暗号方式。誰にでも配ってよい公開鍵と、自分だけが持つ秘密鍵があり、かける役と開ける役が別の鍵になる。
たとえば、公開鍵で暗号化したものはペアの秘密鍵でしか開けられない。共通鍵暗号(AESなど)が「同じ鍵を内緒で共有」だったのに対し、公開鍵暗号は「鍵を配っても安全」なのが大きな利点だ。
その代表がRSAとECC。何を「難しい計算」として安全の土台にするかが違う。
詳しく:RSAとECCを比べて押さえる
ここが心臓部。2つの公開鍵暗号は、安全の根拠と鍵の長さで見分ける。
RSAとECCの違い
| RSA | ECC(楕円曲線暗号) | |
|---|---|---|
| 安全の根拠 | 大きな数の素因数分解が難しい | 楕円曲線上の計算が難しい |
| 鍵の長さ | 長め(最低2048ビット・1024は非推奨) | 短くて済む(256ビットでRSA 3072相当) |
| 向いている場面 | 昔から広く普及 | 短い鍵で軽い・モバイルやIoT向き |
言葉を噛み砕いておく。
- 素因数分解 … 大きな数を「どの素数の掛け算でできているか」に分けること。とても大きな数だと、これがほぼ解けないほど大変になる。RSAはこの難しさで守っている。
- ECCが短い鍵で済む … ECCは少ない桁でも強いので、ECC 256ビットでRSA 3072ビットくらいの強さになる。鍵が短いと計算が軽く、スマホやIoT機器に向く。
- Ed25519 … ECCを使った署名の方式で、速くて実装も安全。SSHの鍵などでいまの推奨になっている。
- 鍵交換(ECDHなど) … 内緒の共通鍵を安全に作る手順。前方秘匿性(あとで秘密鍵が漏れても過去の通信は守られる性質)を持てる。
わかりやすく言い換えると
つまり、公開鍵暗号は「開いた南京錠」を配るしくみにたとえるとスッと入る。
自分は、誰でも閉められる開いた南京錠(公開鍵)をみんなに配っておく。相手はその南京錠で箱を閉めて送ってくる。でも、開けられる鍵(秘密鍵)は自分しか持っていない。だから鍵を配っても安全、というわけだ。
RSAは「とても大きな数のばらし方がわからない」という難しさで守る老舗。ECCは別の難しさを使い、同じ強さをもっと短い鍵で実現する新しいやり方。だからスマホなど軽さが大事な場面で人気がある。
試験のツボ
🔴 一番出る:公開鍵暗号の基本
①公開鍵暗号=かける鍵(公開鍵)と開ける鍵(秘密鍵)が別々
②共通鍵暗号(同じ鍵)と対になる
🔴 次に出る:RSAとECCの違い
①RSA=素因数分解が根拠・鍵は長め(最低2048ビット)
②ECC=短い鍵で同等の安全・モバイル向き(署名はEd25519が現代推奨)
🟡 押さえると安定:RSAの1024ビットは非推奨(最低2048)。ECCはRSAより弱いわけではない
よくある間違い
①「公開鍵暗号は、かける鍵と開ける鍵が同じ」→ ✗ 公開鍵暗号は鍵が2つ(ペア)。同じ鍵を使うのは共通鍵暗号(AESなど)。
②「ECCはRSAより安全性が低い」→ ✗ ECCは短い鍵でRSAと同等の安全性。鍵が短い=弱い、ではない。
③「RSAは1024ビットでも安全」→ ✗ 1024ビットは非推奨。いまは最低2048ビットが目安。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(公開鍵暗号の基本)
RSA・ECCなどの公開鍵暗号に関する次の記述のうち、正しいものはどれか。
- 公開鍵暗号はかける鍵と開ける鍵がまったく同じ方式で、AESと同じしくみに分類されるものとされている
- 公開鍵暗号は鍵をいっさい使わず、データをただ並べ替えるだけで秘密を守る方式であるとされているのが実情だ
- 公開鍵暗号は暗号化のときだけ鍵を使い、復号のときは鍵を使わずに元へ戻せる便利な方式とされているものだ
- 公開鍵暗号はかける鍵(公開鍵)と開ける鍵(秘密鍵)が別々の方式で、RSAやECCがその代表例にあたる
解答は 4 である。
公開鍵暗号は、かける鍵(公開鍵)と開ける鍵(秘密鍵)が別々の方式。RSAやECCがその代表だ。鍵を配っても、開けられるのは秘密鍵を持つ本人だけ、という点が利点になる。
選択肢1は「同じ鍵」が誤りで、それは共通鍵暗号(AES)の説明。選択肢2の「鍵を使わない」、選択肢3の「復号で鍵を使わない」も誤りだ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 同じ鍵を使うのは共通鍵暗号 |
| 2 | ✗ | 鍵を使わない方式ではない |
| 3 | ✗ | 復号にも鍵(秘密鍵)を使う |
| 4 | ✓ | 公開鍵と秘密鍵が別々でRSA・ECCが代表 |
オリジナル問題2(RSAとECCの違い)
RSAとECCの違いに関する次の記述のうち、正しいものはどれか。
- RSAは大きな数の素因数分解の難しさを根拠とし、ECCは短い鍵でRSAと同等の安全性を出せる暗号である
- ECCはRSAよりつねに安全性が低く、鍵が短いぶんだけ簡単に破られてしまう方式であるとされているものだ
- RSAもECCもまったく同じ計算を根拠としており、鍵の長さや向いている場面にも違いはないとされている
- ECCは鍵を長くしないと使えず、モバイルやIoTのような軽さが必要な場面にはまったく向かないとされている
解答は 1 だ。
RSAは大きな数の素因数分解の難しさを根拠とし、ECCは別の難しさを使って短い鍵でRSAと同等の安全性を出せる。鍵が短いので、ECCはモバイルやIoTに向く。
選択肢2は「ECCは安全性が低い」が誤りで、短い鍵でも同等。選択肢3は「同じ計算・違いなし」が誤り。選択肢4は「ECCは鍵を長くしないと使えない」が誤りだ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | RSA=素因数分解・ECC=短い鍵で同等で正しい |
| 2 | ✗ | ECCは短い鍵でも同等の安全性 |
| 3 | ✗ | 根拠も鍵長も違う |
| 4 | ✗ | ECCは短い鍵で軽く、モバイル向き |
オリジナル問題3(推奨される鍵長と署名)
公開鍵暗号の鍵長や署名に関する次の記述のうち、正しいものはどれか。
- RSAは1024ビットがいまも十分に安全であり、それより長い鍵にする必要はまったくないものとされている
- 公開鍵暗号は鍵の長さをいくら短くしても安全性は変わらないため、RSAは8ビットで使うのが標準とされる
- RSAの1024ビットは非推奨で最低2048ビットが目安とされ、署名ではEd25519が現代の推奨になっている
- 署名にはECBモードを使うのが現代の標準で、Ed25519やRSAは署名にはいっさい使われないとされているのだ
解答は 3 だ。
RSAの1024ビットは非推奨で、いまは最低2048ビットが目安。署名では、ECCを使ったEd25519が速くて安全なので、現代の推奨になっている。
選択肢1は「1024で十分」が誤り。選択肢2の「8ビットで標準」は明らかに誤り。選択肢4のECBは共通鍵暗号AESのモードの話で、署名の標準ではない。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 1024ビットは非推奨で2048以上が目安 |
| 2 | ✗ | 8ビットでは安全ではない |
| 3 | ✓ | 2048以上・署名はEd25519推奨で正しい |
| 4 | ✗ | ECBはAESのモードで署名の標準ではない |
まとめ
押さえどころ
- 🔴 公開鍵暗号 = かける鍵(公開鍵)と開ける鍵(秘密鍵)が別々。共通鍵暗号(同じ鍵)と対。代表はRSA・ECC。
- 🔴 RSA=素因数分解が根拠・鍵は長め/ECC=短い鍵で同等の安全・モバイル向き。署名はEd25519が現代推奨。
- 🟡 RSAの1024ビットは非推奨(最低2048)。ECCはRSAより弱いわけではない。
次に学ぶ
- AES・共通鍵暗号 ── かける鍵と開ける鍵が同じ、公開鍵暗号と対になるしくみ。
- TLS 1.3(HTTPS) ── 公開鍵暗号と鍵交換を使って、ウェブ通信を安全につなぐしくみ。
- VPN詳細(WireGuard) ── ECC(Curve25519)が使われる、通信を守る代表的なしくみ。
執筆: SikakuQuest編集部