IT初心者のための基本情報ではじめる 暗号化 入門 ~セキュリティ分野 2

この連載は、これから IT の勉強をはじめる人を対象としたものです。 基本情報技術者試験の出題分野ごとに、仕組み、主要な用語、および過去問題を紹介します。 受験対策としてだけでなく、 IT の基礎知識を幅広く得るために、ぜひお読みください。
今回は、セキュリティ 分野 その 2 として 暗号化 の分野を取り上げます。
もくじ
暗号化に関する用語
前回の連載でも説明しましたが、「セキュリティ」という言葉の語源は「心配事から離れる」という意味であり、 JIS では「情報セキュリティ」という用語を「情報の機密性、完全性及び可用性を維持すること」と定義しています。
今回のテーマである暗号化の目的は、情報が盗まれるという心配事から離れ、情報の機密性を維持することです。 コンピュータの利用において、ネットワークで伝達される情報自体が物理的に盗まれることを防げませんが、情報が暗号化されていれば内容がわからないので、盗まれたことになりません。
以下に、暗号化に関する基本的な用語を示します。これらの用語が、これ以降の説明の中で登場します。
- 平文
- 暗号化される前のデータ
- 暗号文
- 暗号化された後のデータ
- 暗号化
- 平文を暗号文にすること
- 復号
- 暗号文を平文にすること
- 鍵
- 暗号化と復号の計算で使われる数値
- 暗号アルゴリズム
- 暗号化と復号の計算手順
平文を暗号文にすることを「暗号化」と言いますが、暗号文を平文にすることは「復号化」ではなく「復号」と言います。 「化」が付かないのは、復号は元に戻るのであって、化けるのではないからです。
「復号」と似た言葉に「解読」がありますが、両者を混同しないようにしましょう。 復号は鍵を知っている人が、暗号を平文にすることです。 解読は、鍵を知らない人が、試行錯誤して暗号を平文にすることです。
暗号化の技法
暗号化の技法の種類
暗号化の技法には、大きく分けて「共通鍵暗号方式」と「公開鍵暗号方式」があります。それぞれ、以下に示した特徴があります。
- 暗号化と復号で同じ値の鍵(共通鍵)を使う。
- 計算がシンプルなので処理が速いが、鍵をネットワークで送れない。
- 暗号化と復号で異なる値の鍵(公開鍵と秘密鍵)を使う。
- 計算が複雑なので処理が遅いが、暗号化の鍵をネットワークで送れる。
label 共通鍵暗号方式
label 公開鍵暗号方式
共通鍵暗号方式の例
共通鍵暗号方式の有名な例として、古代ローマの政治家であるシーザー(紀元前 100 年~紀元前 44 年)が使った「シーザー暗号」があります。 平文を 3 文字ずらして暗号文にして、暗号文を逆方向に 3 文字ずらして平文にします。
たとえば、「 DOG 」という平文を暗号化すると、
D → E → F → G
O → P → Q → R
G → H → I → J
とずらして「 GRJ 」という暗号文になり、「 GRJ 」という暗号文を復号すると、逆方向にずらして「 DOG 」という平文になります。
この技法は、暗号化と復号で同じ 3 という鍵を使っているので、共通鍵暗号方式です。
公開鍵暗号方式の例
公開鍵暗号方式の代表的な例として、「 RSA 暗号」があります。 RSA は、この技法の考案者である 3 人( Rivest 氏、 Shamir 氏、 Adleman 氏)の名前の頭文字です。
平文を、公開鍵でべき乗し、除数で割った余りを求めて暗号化し、暗号文を、秘密鍵でべき乗し、除数で割った余りを求めて復号します。
たとえば、除数を 55 、公開鍵を 3 、秘密鍵を 7 (実用的な RSA 暗号では、もっと桁数が多い数値が使われます)とした場合には、 1 文字ごとに以下の計算をします。 ここで、 Mod は、割り算の余りを求める演算子だとします。
- label 暗号化
- 平文の 1 文字の 3 乗 Mod 55 → 暗号文の 1 文字
- label 復号
- 暗号文の 1 文字の 7 乗 Mod 55 → 平文の 1 文字
この技法は、暗号化に 3 、復号に 7 という異なる鍵を使っているので、公開鍵暗号方式です。 公開鍵と秘密鍵は、あるルール(かなり複雑なルールなので説明は省略します)に従ってペアで作成します。 公開鍵で暗号化した暗号文は、それとペアになる秘密鍵だけで復号できます。
共通鍵暗号方式と公開鍵暗号方式の長所と短所
共通鍵暗号方式と公開鍵暗号方式には、それぞれ長所と短所があります。
共通鍵暗号方式は、計算が単純なので処理が速くなりますが(長所)、鍵をネットワークで送ることができません(短所)。 暗号文と鍵の両方を入手されてしまったら、誰にでも復号ができてしまうからです。
それに対して、公開鍵暗号方式は、計算が複雑なので処理が遅くなりますが(短所)、暗号化の鍵をネットワークで送れます(長所)。 暗号文と暗合化の鍵の両方を入手されても、復号の鍵(暗号化の鍵とは別の値です)がなければ復号できないからです。
暗号化の鍵は、ネットワークで公開されているのも同然なので「公開鍵」と呼びます。復号の鍵は、暗号文の受信者だけが知っているものなので「秘密鍵」と呼びます。
共通鍵暗号方式と公開鍵暗号方式の長所を組合せて使う技法もあり、これを「ハイブリッド暗号方式」と呼びます。 ハイブリッド暗号方式では、最初に 1 回だけ、遅い公開鍵暗号方式を使って共通鍵を暗号化して送り、それ以降は、速い共通鍵暗号方式を使います。
暗号化の過去問題
暗号化の分野の過去問題を 3 問ほど紹介しましょう。
暗号化の目的に関する問題
最初は、暗号化の目的に関する問題です。 電子メールを暗号化することよって得られるセキュリティ上の効果を考えてください。
手順に示す電子メールの送受信によって得られるセキュリティ上の効果はどれか。
- 送信者は,電子メールの本文を共通鍵暗号方式で暗号化し(暗号文),その共通鍵を受信者の公開鍵を用いて公開鍵暗号方式で暗号化する(共通鍵の暗号化デー夕)。
- 送信者は,暗号文と共通鍵の暗号化データを電子メールで送信する。
- 受信者は,受信した電子メールから取り出した共通鍵の暗号化データを,自分の秘密鍵を用いて公開鍵暗号方式で復号し、得た共通鍵で暗号文を復号する。
〔手順〕
- ア
- 送信者による電子メールの送達確認
- イ
- 送信者のなりすましの検出
- ウ
- 電子メールの本文の改ざんの有無の検出
- エ
- 電子メールの本文の内容の漏えいの防止
共通鍵を公開鍵で暗号化して送るのですから、これはハイブリッド方式の暗号化です。
暗号化のセキュリティ上の効果は、情報が盗まれるという心配事から離れることなので、選択肢の中では「電子メールの本文の内容の漏えいの防止」が適切です。 したがって、正解は、選択肢エです。
共通鍵暗号方式と公開鍵暗号方式の特徴に関する問題
次は、共通鍵暗号方式と公開鍵暗号方式の特徴に関する問題です。 選択肢の中ら、共通鍵暗号方式の特徴であるものを選んでください。
共通鍵暗号方式の特徴はどれか。
- ア
- 暗号化通信に使用する場合,鍵を相手と共有する必要があり,事前に平文で送付することが推奨されている。
- イ
- 暗号化通信をする相手が1人の場合,使用する鍵の個数は公開鍵暗号方式よりも多い。
- ウ
- 同じ程度の暗号強度をもつ鍵長を選んだ場合,公開鍵暗号方式と比較して,暗号化や復号に必要な時間が短い。
- エ
- 鍵のペアを生成し,一方の鍵で文書を暗号化すると,他方の鍵でだけ復号することができる。
- 選択肢ア
- 「鍵を相手と共有する必要があり」が共通鍵暗号方式の特徴ですが、それを「事前に平文で送付する」は不適切です。 暗号化せずに平文で送ったら、共通鍵の値を知られてしまうからです。
- 選択肢イ
- 1 対 1 で暗号化通信するときに、共通鍵暗号方式では同じ値の共通鍵が 1 つだけ必要であり、公開鍵暗号方式では公開鍵と秘密鍵の 2 つの鍵が必要なので、「公開鍵暗号方式よりも多い」が不適切です。
- 選択肢ウ
- 「同じ程度の暗号強度をもつ鍵長」が同じ程度の桁数の鍵という意味であり、この場合には、計算が単純な共通鍵暗号方式の方が「公開鍵暗号方式と比較して、暗号化や復号に必要な時間が短い」ので、適切です。
- 選択肢エ
- 「鍵のペアを生成」「一方の鍵で暗号化」「他方の鍵だけで復号」が、共通鍵暗号方式ではなく公開鍵暗号方式の特徴なので、不適切です。
したがって、正解は、選択肢ウです。
公開鍵暗号方式の鍵の使い方に関する問題
最後は、公開鍵暗号方式の鍵の使い方に関する問題です。 暗号化された通信において、誰が鍵のペアを作り、どのように公開鍵と秘密鍵を使うかに注目してください。
X さんは, Y さんにインターネットを使って電子メールを送ろうとしている。 電子メールの内容を秘密にする必要があるので,公開鍵暗号方式を使って暗号化して送信したい。 そのときに使用する鍵はどれか。
- ア
- X さんの公開鍵
- イ
- X さんの秘密鍵
- ウ
- Y さんの公開鍵
- エ
- Y さんの秘密鍵
公開鍵暗号方式では、公開鍵で暗号化して、秘密鍵で復号します。 秘密鍵の値は、受信者だけが知っています。 公開鍵と秘密鍵は、ペアで作るので、受信者が作ることになります。
この問題では、 X さんが送信者で、 Y さんが受信者です。 したがって、
Y さんが公開鍵と秘密鍵をペアで作成し、
X さんが Y さんの公開鍵で暗号化し、
Y さんが Y さんの秘密鍵で復号します。
正解は、選択肢ウです。
今回は「セキュリティ」その 2 として「暗号化」に関する基本的な用語、技法、および過去問題を紹介しました。
次回は、「開発技術」の分野を取り上げます。
それでは、またお会いしましょう!
label 関連タグ免除試験を受けた 74.9% の方が、 科目A免除資格を得ています。
※独習ゼミは、受験ナビ運営のSEプラスによる試験対策eラーニングです。

IT初心者のための アルゴリズムとデータ構造入門 ~ 基本情報ではじめるコンピュータ科学の基礎理論(4)
update
IT初心者のための 論理回路 入門 ~ 基本情報ではじめるコンピュータ科学の基礎理論(3)
update
IT初心者のための 2進数 入門 ~ 基本情報ではじめるコンピュータ科学の基礎理論(2)
update
IT初心者のための基本情報ではじめる ストラテジ 入門
update
IT初心者のための基本情報ではじめる サービスマネジメント 入門 ~マネジメント分野 2
update
IT初心者のための基本情報ではじめる プロジェクトマネジメント 入門 ~マネジメント分野 1
update
IT初心者のための基本情報ではじめる 開発技術 入門
update
IT初心者のための基本情報ではじめる 暗号化 入門 ~セキュリティ分野 2
update
IT初心者のための基本情報ではじめる セキュリティ 入門 ~セキュリティ分野 1
update
IT初心者のための基本情報ではじめる OSI基本参照モデル 入門 ~ネットワーク分野 2
update
『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”
大手電気メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。
主な著作物
- 「プログラムはなぜ動くのか」(日経BP)
- 「コンピュータはなぜ動くのか」(日経BP)
- 「出るとこだけ! 基本情報技術者」 (翔泳社)
- 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
- 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数