02. 暗号技術の基礎

公開鍵暗号方式(RSA, ECC)の数学的仕組みを優しく解説

2025年12月9日

Kenta Banno

元CIOの窓際サラリーマン(50代)。プライム上場企業の片隅で、情報処理安全確保支援士の合格を目指して奮闘中! 現在はAI(Gemini/Claude)を「壁打ち相手」として徹底活用し、日々の学習の備忘録とアウトプットを兼ねて記事を投稿しています。同じ資格を目指す初学者の参考になれば嬉しいです。

セキュリティの世界において、最大の革命の一つと言われるのが「公開鍵暗号方式」の発明です。

前回学んだ「共通鍵暗号」には、「鍵を相手に送らなければならないが、送る途中で盗まれたら終わり」というジレンマ(鍵配送問題)がありました。これを魔法のように解決したのが公開鍵暗号です。

しかし、その仕組みを理解しようとすると、「素因数分解」や「楕円曲線」といった難解な数学の壁が立ちはだかります。ここで挫折してしまう方も多いのではないでしょうか。

安心してください。情報処理安全確保支援士試験対策として必要なのは、複雑な計算ができることではありません。「どんな数学的な性質を利用して、なぜ安全だと言えるのか」というイメージを掴むことです。

今日は、公開鍵暗号の代表格であるRSAとECC(楕円曲線暗号)について、数式は極力使わず、その「数学的な仕掛け」を直感的に解説します。

公開鍵暗号の基本アイデア「2つの鍵」

共通鍵の悩みを解決する逆転の発想

共通鍵暗号が「家の鍵(開け閉めが同じ鍵)」だとしたら、公開鍵暗号は「南京錠」のようなものです。

想像してみてください。あなたは遠くの友人に秘密の手紙を送りたいとします。

  1. まず、友人から「開いた状態の南京錠(公開鍵)」だけを送ってもらいます(鍵本体は友人が持ったままです)
  2. あなたはその南京錠を使って、手紙を入れた箱に鍵をかけます(暗号化
  3. 鍵のかかった箱を友人に送ります

この箱は、南京錠をかけたあなた自身でさえ開けることはできません。開けられるのは、その南京錠の「鍵本体(秘密鍵)」を持っている友人だけです。

「公開鍵」と「秘密鍵」の役割分担

公開鍵暗号方式では、ペアとなる2つの鍵を使います。

公開鍵(Public Key):

  • 役割: データを「暗号化」するための鍵。南京錠そのもの
  • 扱い: 名前通り、世界中に「公開」してOK。誰に盗まれても問題ありません

秘密鍵(Private Key):

  • 役割: 暗号文を「復号」するための鍵。南京錠を開ける鍵本体
  • 扱い: 自分専用。絶対に他人に見せてはいけません

「誰でも暗号化できるけれど、復号できるのは持ち主だけ」という非対称な関係を作るのがポイントです。このため、公開鍵暗号は「非対称鍵暗号」とも呼ばれます。

なぜこれで「鍵配送問題」が解決するの?

答えはシンプルです。「守るべき秘密の鍵を、配送していないから」です。

ネットワークを通じて相手に送るのは「公開鍵(盗まれても良い鍵)」だけです。一番大事な「秘密鍵」は、作成した本人の手元から一歩も外に出ません。

例えば、オンラインショッピングの場合を考えてみましょう。Amazonのような大手サイトは、自分の公開鍵を世界中のユーザーに配布しています(Webブラウザが自動的に取得します)。あなたがクレジットカード番号を入力すると、その情報はAmazonの公開鍵で暗号化されて送信されます。途中で誰かに盗聴されても、暗号文しか見えません。そして、その暗号文を復号できるのは、Amazonが厳重に管理している秘密鍵だけです。

これにより、共通鍵暗号の最大の弱点であった「鍵を安全に送る方法がない」という問題が根本的に解決したのです。

公開鍵暗号の処理速度という課題

ただし、公開鍵暗号にも弱点があります。それは「処理速度が非常に遅い」ことです。共通鍵暗号と比べて、数百倍から数千倍も時間がかかります。

そのため、実際のシステムでは「公開鍵暗号で共通鍵を安全に交換し、本体のデータは共通鍵暗号で暗号化する」というハイブリッド方式が使われています。これについては次回詳しく解説します。

FREE PDF
SC午後記述
テンプレート集
登録特典
メール講座 登録で無料プレゼント
「知っているのに書けない」を、型で解消するPDF
設問の文末から解答の「型」を割り出し、そのまま当てはめて書く。SC午後の記述で手が止まらなくなる1冊です。
設問6タイプ分類頻出7テーマ減点10パターン時間配分&見直し
無料でPDFを受け取る →

+おまけ:毎日1通の無料メール講座つき。登録した日が「1日目」、図解と論理で16週間かけて基礎も固まります。

登録無料·いつでも配信停止

RSA暗号の仕組み(素因数分解の壁)

安全性の根拠は「計算の難しさ」

では、どうやって「暗号化は簡単だけど、復号は難しい」という状況を作っているのでしょうか。ここで数学の出番です。

現在最も有名な公開鍵暗号であるRSA暗号は、「大きな数の素因数分解は非常に難しい」という数学的な性質を利用しています。

RSAという名前は、開発者であるRivest、Shamir、Adlemanの3人の頭文字から付けられました。1977年に発表されて以来、40年以上にわたってインターネットセキュリティの基盤を支えてきた歴史ある暗号方式です。

「掛けるのは簡単、戻すのは困難」

直感的なイメージで説明します。

絵の具を想像してください。「赤」と「青」の絵の具を混ぜて「紫」を作るのは一瞬で簡単にできます(掛け算)。しかし、出来上がった「紫」の絵の具を見て、「これを元の赤と青に完全に分離してください」と言われたらどうでしょうか?これは非常に困難です(素因数分解)。

RSA暗号では、これと同じことを数字で行います。

  • 2つの巨大な素数(例えば数百桁の数)を掛け合わせて、さらに巨大な数(N)を作るのは、コンピュータなら一瞬です
  • しかし、その巨大な数(N)だけを見て、「どの素数同士を掛けたのか?」を割り出す(素因数分解する)には、現在のスーパーコンピュータでも数年から数万年かかると言われています

この「元に戻す(復号する)ことの圧倒的な難しさ」が、RSA暗号の安全性の盾となっています。

素数とは何か?

補足として、「素数」について簡単に説明しておきます。素数とは、1とその数自身以外では割り切れない数のことです。例えば、2、3、5、7、11、13などです。4は2で割り切れるので素数ではありません。

小さな数では素数を見つけるのは簡単ですが、数百桁の巨大な素数を見つけるのは、それだけでも大変な計算です。そして、その巨大な素数2つを掛け合わせた数を元の2つの素数に分解するのは、さらに困難なのです。

RSA暗号の現状と未来

RSAは長年セキュリティの主役でしたが、コンピュータの性能向上に伴い、安全性を保つために必要な鍵の長さ(ビット数)がどんどん長くなってきています。現在は2048ビット以上が推奨されており、より高度なセキュリティが求められる場合は4096ビットが使われることもあります。鍵が長くなると、その分計算処理も重くなります。

また、遠い将来「量子コンピュータ」が実用化されると、素因数分解が簡単に解けてしまう可能性が指摘されています。量子コンピュータは、従来のコンピュータとは全く異なる原理で動作し、特定の種類の計算を劇的に高速化できるとされています。このため、次世代の「耐量子計算機暗号」の研究も世界中で進められています。

ECC(楕円曲線暗号)の仕組み(新しい数学の力)

RSAより「短くて強い」次世代のエース

RSAに代わって、現在主流になりつつあるのがECC(Elliptic Curve Cryptography:楕円曲線暗号)です。

ECCの最大のメリットは、「RSAよりも短い鍵長で、同等の安全性を確保できる」ことです。例えば、RSAの2048ビットと同じ強度を、ECCならわずか224ビット程度で実現できます。

鍵が短いということは、計算が速く、通信データ量も少なく済むことを意味します。そのため、処理能力が限られるスマートフォンIoT機器での利用に非常に適しています。バッテリー消費も少なく抑えられるため、モバイル環境では特に有利です。

楕円曲線ってなに?(イメージで掴む)

ECCは「楕円曲線」という複雑なグラフ上の点の性質を利用しますが、その仕組みを直感的に言うと「グラフ上のすごろくゲーム」のようなものです。

  1. 特殊な形のグラフ上にスタート地点の点(P)を置きます
  2. あるルールに従って、グラフ上を「点P → 点2P → 点3P…」とジャンプ(移動)していきます
  3. これを「秘密の回数(例えば1億回)」繰り返して、ゴール地点の点(Q)に到達します

この時、次のような特徴があります。

  • スタート点(P)とジャンプ回数から、ゴール点(Q)を計算するのは簡単です(暗号化)
  • しかし、スタート点(P)とゴール点(Q)だけを見て、「何回ジャンプしたか?」を逆算するのは非常に困難です

これが「楕円曲線上の離散対数問題」と呼ばれる難問です。この「逆算の難しさ」を安全性の根拠としています。RSAの素因数分解よりも、さらに解くのが難しい問題を利用しているため、短い鍵でも安全なのです。

なぜ「楕円曲線」と呼ぶのか?

「楕円曲線」という名前から、楕円形を想像するかもしれませんが、実際にはもっと複雑な曲線です。数学的には「y² = x³ + ax + b」という形の方程式で表される曲線のことを指します。この曲線が持つ独特な性質(点の加法と呼ばれる特殊な演算)が、暗号技術に利用されています。

身近な利用シーン

ECCはその効率の良さから、現代のインターネットを支える多くの場所で使われています。

Webサイトのセキュリティ(SSL/TLS): ブラウザのアドレスバーに鍵マークがついている通信(HTTPS)の多くでECCが使われています。Google、Facebook、Amazonなどの大手サイトは、すでにECCを標準的に採用しています。

ビットコイン(ブロックチェーン): 仮想通貨ビットコインでは、所有者の署名などにECCの技術(具体的にはsecp256k1という楕円曲線)が使われています。

スマートフォンのアプリ: LINEやWhatsAppなどのメッセージングアプリでも、エンドツーエンド暗号化にECCが使われています。

RSAとECCの使い分け

現在のシステムでは、RSAとECCが併存しています。RSAは歴史が長く、多くのシステムで実装されているため、互換性の観点から引き続き使われています。一方、新しいシステムや、処理能力が限られるモバイル環境では、ECCが選ばれることが多くなっています。

学んだ知識を定着させよう

ここまでの内容が、なんとなくイメージできたでしょうか? 「数式はわからなくても、安全性の理由が言える」状態がゴールです。理解度を確認するための簡単なクイズです。

【演習】公開鍵暗号方式(RSA, ECC)理解度チェック(全10問・詳細解説付き)

まとめ

今日は、少し難解な「公開鍵暗号方式」の数学的仕組みについて、イメージ中心に解説しました。

  • 公開鍵暗号の基本: 「暗号化する公開鍵」と「復号する秘密鍵」のペアを使う。これで鍵配送問題を解決した。
  • RSA暗号: 「巨大な数の素因数分解は困難である」という性質を利用。歴史があるが、鍵が長くなりがち。
  • ECC(楕円曲線暗号): 「グラフ上の点の移動回数を逆算するのは困難(離散対数問題)」という性質を利用。短くて強い、現代の主流。

ここまで、共通鍵と公開鍵、2つの暗号方式を学んできました。

「共通鍵は速いけど、鍵を渡せない(鍵配送問題)」

「公開鍵は鍵を渡せるけど、処理が遅い」

それぞれの長所と短所が見えてきたと思います。

では、実際のインターネット通信(SSL/TLSなど)では、どうしているのでしょうか?実は、「共通鍵の速さ」と「公開鍵の便利さ」をいいとこ取りした方法を使っているのです。

次回は、その巧妙な仕組みである「ハイブリッド暗号方式」について解説します。ここまでの知識がパズルのように組み合わさる、暗号技術のクライマックスです。どうぞお楽しみに!

FREE PDF
SC午後記述
テンプレート集
登録特典
メール講座 登録で無料プレゼント
「知っているのに書けない」を、型で解消するPDF
設問の文末から解答の「型」を割り出し、そのまま当てはめて書く。SC午後の記述で手が止まらなくなる1冊です。
設問6タイプ分類頻出7テーマ減点10パターン時間配分&見直し
無料でPDFを受け取る →

+おまけ:毎日1通の無料メール講座つき。登録した日が「1日目」、図解と論理で16週間かけて基礎も固まります。

登録無料·いつでも配信停止
自社のセキュリティ対策に不安はありませんか?
BKサクセスでは、専任の情シスがいない中小企業様向けに、伴走型のセキュリティ対策支援を行っています。
まずは無料相談から、お気軽にご連絡ください。
✉️ セキュリティ対策について相談する(無料)

▼ 本気で難関資格を狙うなら、攻略法から

  • この記事を書いた人

Kenta Banno

元CIOの窓際サラリーマン(50代)。プライム上場企業の片隅で、情報処理安全確保支援士の合格を目指して奮闘中! 現在はAI(Gemini/Claude)を「壁打ち相手」として徹底活用し、日々の学習の備忘録とアウトプットを兼ねて記事を投稿しています。同じ資格を目指す初学者の参考になれば嬉しいです。

-02. 暗号技術の基礎