共通鍵暗号と公開鍵暗号

    • 基本情報技術者試験
Computer technology isometric icon, server room, digital device set, element for design, pc laptop, mobile phone with smartwatch, cloud storage, flat vector

この記事でわかること

  • 共通鍵暗号と公開鍵暗号の違いを、「鍵の数」と「速さ」で説明できるようになります
  • 「誰の、どちらの鍵で暗号化するのか」で迷わなくなります
  • AES・RSA・SHA-256 のような略語が、どの仲間なのかを見分けられるようになります

暗号化とは「鍵を持っている人だけが読める形にすること」

もとの文章を平文(ひらぶん)、読めなくしたものを暗号文といいます。平文を暗号文に変えることが暗号化、暗号文を平文に戻すことが復号です。

用語意味
平文もとの、そのまま読める文章やデータ
暗号文第三者が読めない形に変換されたデータ
暗号化平文 → 暗号文 に変換すること
復号暗号文 → 平文 に戻すこと
暗号化・復号のときに使う秘密の値

ここで意外に思われるのが、暗号のアルゴリズムそのものは公開されているということです。AESもRSAも、仕様は誰でも読めます。それでも安全なのは、鍵を知らなければ現実的な時間内に元に戻せないからです。

つまり暗号の安全性は、「やり方の秘密」ではなく「鍵の秘密」で成り立っています。この鍵の扱い方の違いが、これから見る2つの方式を分けます。

共通鍵暗号方式 ― 速い。ただし鍵の渡し方に困る

暗号化と復号に同じ鍵を使う方式です。代表がAES(その前の世代がDES)。

最大の長所は速いこと。同じ強度で比べたとき、公開鍵暗号よりも処理が軽く済みます。だから、データベースまるごとの暗号化や、通信の中身のように「量が多いもの」に向いています。

弱点は2つあります。1つめは鍵配送問題。相手と同じ鍵を持たないと通信できませんが、その鍵をどうやって安全に渡すのかという問題が残ります。平文のまま送るのは論外で、これは弱点であって推奨される方法ではありません。

2つめは、人数が増えると鍵が爆発すること。n人が互いに秘密の通信をするには、n(n−1)/2 個の鍵が必要です。

人数必要な鍵の数
3人3個
10人45個
100人4,950個

100人の組織で5,000個近い鍵を配って管理する、というのは現実的ではありません。

公開鍵暗号方式 ― 遅い。ただし鍵を配る必要がない

ペアになった2つの鍵を作る方式です。片方が公開鍵(誰に見られてもよい)、もう片方が秘密鍵(本人だけが持つ)。性質はシンプルで、片方の鍵で暗号化したものは、ペアのもう片方の鍵でしか復号できません。

そして試験で一番間違えやすいのが、どちらの鍵で暗号化するのかです。

やりたいこと暗号化に使う鍵復号に使う鍵
内容を秘密にして送りたい受信者の公開鍵受信者の秘密鍵
送信者が本人だと示したい(ディジタル署名)送信者の秘密鍵送信者の公開鍵

覚え方はこれだけです。「鍵をかけるのは、開けてほしい人の公開鍵」。

受信者の公開鍵でかけた鍵は、対応する秘密鍵を持つ受信者本人しか開けられません。公開鍵は世界中に配ってかまわないので、鍵を安全に渡す悩みが消えます。鍵の数も1人あたり2個、つまりn人でも2n個で済みます。100人なら200個です。

代表的なアルゴリズムがRSAで、安全性の根拠は「とても大きな数の素因数分解が、現実的な時間ではできない」ことです。同じ強度をより短い鍵長で実現する楕円曲線暗号(ECC)もあります。

弱点は遅いこと。大きな数の計算を伴うため、共通鍵暗号に比べて暗号化・復号に時間がかかります。動画や大きなファイルをまるごと公開鍵暗号で処理するのは現実的ではありません。

ここまでを1枚の表にまとめます。試験ではこの表の1行がそのまま選択肢になります。

共通鍵暗号方式公開鍵暗号方式
使う鍵暗号化と復号で同じ鍵公開鍵と秘密鍵のペア
鍵の数(n人)n(n−1)/2 個2n 個
速さ速い遅い
代表AES、DESRSA、楕円曲線暗号
得意なこと大量データの暗号化鍵を安全に届けること
弱点鍵配送問題、鍵の数が増える処理が重い

「速さなら共通鍵、鍵の配りやすさなら公開鍵」。この一行を覚えておけば、選択肢の大半は切れます。

試験に出る、もう一歩

ハイブリッド暗号。共通鍵は速い、公開鍵は鍵を配らなくていい。この2つは組み合わせて使われます。データ本体は共通鍵暗号で速く暗号化し、そのとき使った共通鍵だけを公開鍵暗号で安全に相手へ送る。SSL/TLSがまさにこの形です。

鍵長とブルートフォース攻撃。AES-256の「256」は、鍵の長さが256ビットという意味です。1ビットは0か1の2通りなので、鍵の候補は2の256乗通り。総当たりで最悪すべて試すと、試行回数の最大値は2の256乗回になります。ビット長は「2の累乗」に読み替える、と覚えてください。

危殆化(きたいか)。計算機の性能向上や新しい解読手法の発見によって、それまで安全とされていた暗号の強度が失われることを危殆化といいます。ハッシュ関数で「同じ値になるデータの組」が現実的な時間で見つかってしまう、といった事例が該当します。鍵が漏れた、証明書の期限が切れた、というのは危殆化ではありません。

最後に、選択肢で必ず並べられる略語の仲間分けを確認しておきます。

略語仲間
AES / DES共通鍵暗号方式
RSA / 楕円曲線暗号(ECC)公開鍵暗号方式
DH(Diffie-Hellman)鍵交換の方式
DSAディジタル署名の方式
SHA-256ハッシュ関数(復号できない・一方向)
PKI公開鍵を証明書で管理する仕組みの総称

あなたのIT知識を
もっと深めませんか?

ITすきま教室では、IT関連の資格取得や教養を身につけるための記事講座・動画講座を数多く取り揃えています!

関連記事

企業研修や情報授業、イベント司会まで講師・講演を依頼してみませんか?

ITすきま教室では講師や講演のご依頼もお受けしております。
YouTubeチャンネル運営のほか、ナレーターや司会業としても活動してきた経験から、分かりやすく満足度の高い講義をご提供します!

講師ご依頼特設ページへ

チャンネル登録者数10万人突破!YouTube好評運用中!

解説が分かりやすいと沢山の方からご好評をいただいており、IT資格勉強コンテンツで日本トップの登録者数を集めています。すきま時間を使って勉強して資格合格や成績アップを目指しましょう!

Youtubeチャンネルはこちら

単語帳BOT

X(旧Twitter)で関連用語を3時間に1度つぶやきます!
すきま時間の学習にお役立てください!

ITすきま教室のLINEスタンプができました!

ITすきま教室の公式LINEスタンプができました!
ポップなTechnologyをテーマに、
ボケたり、ツッコんだり、使い勝手を意識して
プログラミングの世界を表現しています!

LINEストアへ
アプリで効率良く学習!
ITすきま教室が本になりました!