情報処理安全確保支援士(情報セキュリティスペシャリスト)試験に合格するためのサイトです。
過去問を多数引用しながら、基礎知識をしっかり学んでもらうように作ってあります。
また、情報処理安全確保支援士(情報セキュリティスペシャリスト)を楽しく学べるように工夫したいと思います。
カテゴリ:

3.暗号

(1)機密性を守るための暗号
セキュリティの3要素に「機密性」があったのを覚えていますでしょうか。これは、第三者に情報を見られないようにするという意味です。部屋の金庫に情報が隠されていれば機密性は保たれます。でも、インターネットであれば、海外を含めていろいろなプロバイダを経由しますから、誰かに盗聴されるという危険があります。
そこで、「暗号化」です。たとえば、オンラインバンキングを利用する際には、SSLという仕組みで通信を暗号化します。また、パソコンのデータに関しては、ファイル暗号化やディスク暗号化をすれば、不正な第三者にデータを読み取られるリスクが減ります。

(2)暗号に関する基本的な言葉
暗号に関する詳しい説明をする前に、平文、暗号文、暗号化、復号の4つの言葉を理解しましょう。
まず、「平文(平文)」とは、暗号化されていない普通の文章のことです。これを「暗号鍵」を用いて「暗号化」することで、「暗号文」になります。逆に、「暗号文」を「復号鍵」を用いて元の「平文」に戻すことを「復号」と言います。

暗号

暗号化方式を整理すると、以下になる 

暗号方式

仕組み

特徴

共通鍵暗号方式

暗号化の鍵と復号の鍵が共通

DES,3DES,RC4,AES

・公開鍵暗号方式にくらべて処理が高速である。

・複数人と通信する場合は鍵の管理が複雑になる。

公開鍵暗号方式

暗号化と復号の鍵が別。秘密鍵と公開鍵を利用する。

RSA、楕円曲線暗号

・処理速度は遅いが、複数人とやり取りする際に鍵の管理が簡単になる。

(ハッシュ関数)

メッセージダイジェストを作成する。

MD5,SHA-1

DESに比べて格段に処理が速い

・ハッシュされたものを復号することはできない。


11d7b807
ハッシュ関数も暗号方式の一つと考えてよいのですか・・・。
なんとなく違和感があります。




確かに他の2つと位置づけが違う。ハッシュ関数が暗号化の方式という点には疑問を持つ方が多いかもしれない。だが、たとえばパスワードはパスワードをそのまま保存するのではなく、ハッシュ関数に暗号化して保存される。これも立派な暗号化である。

1.共通鍵暗号方式の代表例
共通鍵暗号方式は、「暗号化の鍵と復号の鍵が共通」なものです。共通鍵暗号方式で利用される代表的な暗号化アルゴリズムには、DESや3DES、AES、RC4などがあります。
古代ローマのシーザ暗号では、a→d、g→jなど3文字ずらすことで暗号化していました。これも立派な暗号アルゴリズムです。暗号化する側は、「3」という鍵を用いて3文字ずらします。復号する側は、同じく「3」という鍵を使い、3つ元に戻します。

では、代表的な共通鍵暗号方式を簡単に整理します。
アルゴリズム
鍵長処理方法備考
DES56bitブロックDES(Data Encryption Standard)という言葉の通り、かつての暗号(Encryption)の標準(Standard)
3DES2-key(112bit)
3-key(168bit)
DESを3回繰り返す
AES128bit,192bit,
256bit
DESの脆弱性をカバーするために公募された暗号規格であり、Advanced Encryption Standardという言葉のとおり、次世代暗号標準という意味
※AESは、日本のNTTも公募に応じたが、結果的にRijndaelという方式が採用された。

2.鍵長とは?
AESの鍵長に関して過去問では、「米国NISTが制定したAESにおける鍵長の条件として、128ビット、192ビット、256ビットから選択する(H22秋SC午前2問4)」と述べられている。

3.段数とは?
・変換をn回実施。このnが段数。
・「鍵長によって、段数が決まる(H23春SC午前2問1)」のがAESの特徴でもある。
ちなみに、AESは鍵長128bitで18段、192と256bitで24段。

過去問を解いてみましょう。
100人の送受信者が共通鍵暗号方式で、それぞれ秘密に通信を行なうときに必要な共通鍵の総数は幾つか。(平成18年度NW午前問46)
共通鍵暗号方式であることが注意点。
公開鍵暗号方式であれば、200個だが、共通かぎの場合はもっとたくさん必要。
正解は4,950。

4.ブロック暗号とストリーム暗号
(1)暗号の仕組みの違い
ブロック暗号とストリーム暗号の言葉の定義などは、試験には出ないと思いますので、参考程度に聞いて下さい。
ストリーム暗号は、ビット単位で暗号しますが、ブロック暗号は、ある程度の塊(ブロック)で暗号処理をします。だから、ブロック暗号です。
代表例は以下です。
・ブロック暗号:DES、3DES、AES
・ストリーム暗号:RC4
(2)利用モード
「利用モード」という言葉があります。まずは過去問(H27秋午後Ⅱ)を見てみましょう。 
Uさん:幾つかの暗号化製品の説明書に“暗号の利用モード”や“CBCモード”という記述がありました。これは何でしょうか。
R主任:利用モードとは,ブロック暗号アルゴリズムを用いてブロック長よりも長いデータを暗号化する際に使われる技術のことだ。CBCモードは,よく使われる利用モードの一つだよ。
情報セキュリティスペシャリスト試験を目指す女性SE

ブロック長より長いデータを暗号化するとき、何か問題があるのですか?
ブロック単位で暗号化するから、同じ部分は同じ暗号になります。よって、それらの頻度などから暗号が解かれやすくなるのです。そこで、単純なブロック単位の暗号(ECB:Electronic Codebook)ではなく、前のブロックの暗号情報を使って暗号化する(CBC:Cipher Block Chaining)が、DESやAESで利用されています。

共通鍵暗号方式のデメリットは何か?
dcf52feb
公開鍵暗号ですが、そもそも公開鍵暗号はなぜ必要なのですか?共通鍵暗号方式では何か問題があるのでしょうか?
デメリットは例えば以下です。
① 鍵の安全な受け渡し
インターネットで共通鍵を安全に渡すのはとても難しい。
② 鍵の数が増え、管理が大変

たとえば、海外の友達と共通の鍵を使って暗号化通信をするとします。でも、その鍵をどうやって送ればいいのでしょうか?インターネットを使えば、誰かに盗聴される可能性があるから危険です。だからといって、郵便は面倒ですよね。
そこで、公開鍵暗号方式が登場しました。たとえば、Aさんが秘密鍵と公開鍵を作ります。秘密鍵はAさんが保有し、公開鍵はみんなに公開します。すると、誰もがAさんの公開鍵をつかって暗号化することができます。そして、その暗号を解くことができるのは、公開鍵のペアである、Aさんの秘密鍵だけです。つまり、Aさん以外に中身を見られることなく通信をすることができるのです。
次の図をもとに、解説をします。
公開鍵暗号方式の仕組み_情報セキュリティスペシャリスト試験 
共通鍵方式で鍵を共有するのは大変です(図①)。そこで、暗号化する鍵をみなさんに公開します(図②)。送信者は公開鍵で暗号化します(図③)。受信者は自分の秘密鍵で復号するのです(図④)。

公開鍵暗号方式の仕組み
公開鍵暗号方式の一つであるRSAは、大きな素数の素因数分解の困難さを使っている。素数というのは、大きな数になれば、それが素数かどうかの判断もかなり難しい。

ベリサイン社の何重にも厳格なセキュリティが施された部屋の奥の奥に金庫がある。そこには何がしまってあるか?
なんと、素数である。素数はそれほど、暗号にとって大事なのである。(出典は、DVDの「リーマン予想・天才たちの150年の闘い ~素数の魔力に囚われた人々~ (NHKエンタープライズ)」より。
リーマン予想・天才たちの150年の闘い ~素数の魔力に囚われた人々~ [DVD]リーマン予想・天才たちの150年の闘い ~素数の魔力に囚われた人々~ [DVD]
著者:ドキュメンタリー
販売元:NHKエンタープライズ
(2010-05-28)


(1)暗号の仕組みの違い
ブロック暗号とストリーム暗号の言葉の定義などは、試験には出ないと思いますので、参考程度に聞いて下さい。
ストリーム暗号は、ビット単位で暗号しますが、ブロック暗号は、ある程度の塊(ブロック)で暗号処理をします。だから、ブロック暗号です。
代表例は以下です。
・ブロック暗号:DES、3DES、AES
・ストリーム暗号:RC4
(2)利用モード
「利用モード」という言葉があります。まずは過去問(H27秋午後Ⅱ問2)を見てみましょう。 
Uさん:幾つかの暗号化製品の説明書に“暗号の利用モード”や“CBCモード”という記述がありました。これは何でしょうか。
R主任:利用モードとは,ブロック暗号アルゴリズムを用いてブロック長よりも長いデータを暗号化する際に使われる技術のことだ。CBCモードは,よく使われる利用モードの一つだよ。
情報セキュリティスペシャリスト試験を目指す女性SE

ブロック長より長いデータを暗号化するとき、何か問題があるのですか?
ブロック単位で暗号化するから、同じ部分は同じ暗号になります。よって、それらの頻度などから暗号が解かれやすくなるのです。そこで、単純なブロック単位の暗号(ECB:Electronic Codebook)ではなく、前のブロックの暗号情報を使って暗号化する(CBC:Cipher Block Chaining)が、DESやAESで利用されています。

さて、この問題をもう少し見てみましょう。お時間があるときに、実際の問題にチャレンジしてください。
Uさん:利用モードは他にもあるのですか。
R主任:図6に代表的な利用モードがまとめられているので見てごらん。ブロック暗号アルゴリズムの利用時には,暗号化の目的や利用方法に合わせて,適切な利用モードを選ぶ必要がある。例えば,③ディスクやファイルの暗号化にECBモードをそのまま用いるのは,セキュリティ上の問題がある。
 利用モードによって,ランダムアクセス時の性能が大きく異なる場合もある。例えば,512バイトの平文Pを,ブロック長が128ビットのブロック暗号アルゴリズムで暗号化した暗号文Cがあり,この暗号アルゴリズムでは平文と暗号文の長さは同じとする。平文Pにおいて1,025ビット目から始まる1ブロック分のデータを修正した場合,平文Pの修正に対応して暗号文Cを修正するためには,暗号化処理を,ECBモードでは[ i ]回,CBCモードでは[ j ]回実行しなければならない。
 また,別の暗号文C’で,513ビット目から始まる1ブロック分のデータを復号するためには,暗号化処理又はその逆処理を,ECBモードでは[ k ]回,CBCモードでは[ l ]回,OFBモードでは[ m ]回実行する必要がある。
 複数ブロックの並列処理は,[ n ]の場合,暗号化時は不可能だが,復号時は可能だ。[ o ]の場合は,鍵ストリームに相当するデータを事前に計算することができる。
 ただし,一部の利用モードは,特定の攻撃に弱いので注意が必要だ。
情報セキュリティスペシャリスト_cbc_ECB_OFB


11d7b807
メールもパソコンのデータも何でも暗号化しろって、かなりうるさい時代になりましたね。これまでは暗号なんて無縁だったんですけど。なんで急に暗号化する必要がでてきたんですか?



たしかにそう。でも、暗号自体はかなり昔から使われていた。暗号というのは、日常として当たり前の技術であり、暗号化しないほうが不自然なのかもれない。
特に戦争は暗号でのやりとりが大事だったようで、日本でも真珠湾攻撃の「ニイタカヤマノボレ」は有名だよね。

「暗号解読(新潮文庫)」には「第一次大戦では膨大な量のメッセージが無線で飛び交い、しかもそのすべてが傍受されるようになったのだ。暗号解読者の頭は、たえまなく流れ込んでくる暗号文ではちきれそうだった。第一次大戦中にフランス軍が傍受したドイツ軍の通信文は、一億語に及ぶと推定されている。」と述べられており、暗号技術が戦争において重要な位置づけであったようだ。

まず、「鍵」がつく言葉には①秘密鍵、②共通鍵、③公開鍵の3つがある。
この中で「暗号方式」となるのは、②の共通鍵暗号方式と③の公開鍵暗号方式の2つだ。
②の共通鍵暗号方式で使用する鍵が①の秘密鍵であり、③の公開鍵暗号方式で使用する鍵が①秘密鍵と③公開鍵である。
以下に整理する。
方式共通鍵暗号方式公開鍵暗号方式
使用する鍵秘密鍵秘密鍵
公開鍵
共通鍵暗号方式は、暗号化する鍵と復号する鍵が同じ(共通)だから「共通」鍵と言われる。

では、どちらのほうが鍵が少ないか。
過去問では、「公開鍵暗号方式によって、n人が相互に暗号を使って通信する場合、異なる鍵は全体で幾つ必要になるか。ここで、公開鍵、秘密鍵をそれぞれ一つと数える(H21AP春午前問39)」という問いがある。この問題を共通鍵暗号方式と公開鍵暗号方式の2パターンで考えてほしい。
これは、数学の問題であるが、じっくり考えて答えてほしい。

たとえば、n=3とすると、以下のようになる。
共通鍵と公開鍵_情報セキュリティスペシャリスト試験
答えは、
共通鍵暗号方式 n(n-1)/2
公開鍵暗号方式 2n
n=10とすると、45対20である。やはり、公開鍵暗号方式のほうが鍵の数が少なくて済む。

「非常に大きな数の素因数分解が困難なことを利用した公開鍵暗号方式(H23春FE午前問42)」は何か?
これを開発したのはMITの助教授であったロナルド・リベスト(Ronald Rivest)、アディ・シャミア(Adi Shamir)、レオナルド・エーデルマン(Lenonard Adleman)の3人の名前。3人の頭文字をとってRSAとしています。
ロナルド・リベスト(Ronald Rivest)はRC4の開発者でもある(はず)。
RSAは公開鍵暗号方式のスタンダード。RSAの問題点であった処理の複雑さを、楕円曲線暗号は改善しています。ただ、セキュリティ強度は不明です。
(1)仕組み
 シンプルな仕組みであるが、それでも解説しようとすると数ページに及ぶため基本原理のみ説明します。 
 整数を1乗2乗3乗していくと次の結果になります。今回は2と7を紹介。
暗号化
文字
1乗2乗
3乗
4乗
5乗
6乗
7乗
8乗
9乗

2
2
4
8
16
32
64
128
256
512
7
7
49
343
2401
16807
117649
823543
5764801
40353607

これを見ると、1乗、5乗、9乗の1桁目は全て同じである。
この原理は、全ての数についてあてはまる。
ということは、暗号化するときは3乗し、復号するときは1乗すればよい。
(※結果の値は、1桁目のみ)
2→(3乗)→6→(1乗)→2
7→(3乗)→1→(1乗)→7
3が秘密鍵で1が公開鍵である。これが暗号化に使う鍵と復号に使う鍵が異なる公開鍵暗号の仕組みである。
15863853

でもこんなに簡単な仕組みだったら誰でも1乗して復号できますね。




そう。実際にはもっと大きな数(例えば128ビット)で行われるので大丈夫。
例えば、13×17を例にすると、同じ数字になる間隔は192です。
※これは、(13-1)×(17-1)=192で求められるようです。
なので、復号する側は、何乗すればいいかを192回試す必要があり、かなり大変です。

2桁×2桁程度でも大変そうなので、128ビットだったらとても計算できないですね。
たしか、素因数分解の難しさを利用しているって聞きましたが。

13×17という素因数分解ができれば、同じ数字になる間隔が (13-1)×(17-1)=192と割り出せてしまいます。だから、素因数分解の難しさが大前提になります。

以上、ほんの一部だけ説明しました。
詳しい内容まで踏み込む必要はありません。雰囲気を感じていただくだけでいいです。

8412ebbb

暗号化の脆弱性って、DESだろうがAESだろうが、普通に使っている分にはどっちでも安全ではないの?



アルゴリズム1:3文字ずらす a→d、g→jなど。(これは古代ローマのシーザ暗号のことである)
・アルゴリズム2:対応表に基づいて変換。たとえばa→3、g→cなどと決められた対応表に基づいて暗号化する。

このように、暗号化の仕組みがアルゴリズムで、アルゴリズムが分からないと復号もできない。

いくら鍵が長くても、上記のような単純なアルゴリズムだと解読される。WEPなどは、アルゴリズムが単純だから、いくら鍵長を長くしてもダメ。
たとえば、奇数文字は3文字、偶数文字は5文字ずらすというアルゴリズムにするだけでもかなり仕組みは強化される。これなら、同じaという文字でも暗号化するとdになったりfになったりするので、解読されにくい。
確かにDESだろうがAESだろうが、ある程度の限られた世界で普通に使っている分にはセキュリティはかなり高い。ただ、WEPのような方式だと、ツールによって簡単に解読されてしまうので、そういうのは避けなければならない。

他の事例を紹介する。
日本軍と米軍の暗号化技術は、大きな違いがあったようだ。堀栄三さんの「大本営参謀の情報戦記」(文藝春秋)を引用すると、日本陸軍の暗号に関しては、「暗号解読の硬さでは比類がないものだったが、多数の人員と複雑な仕事を必要」とある。一方、米軍に関しては、「彼らは「キー」を日々変更するだけで、一人で暗号作業が出来る仕組みになっていたから、日本の手仕事式暗号作業とは、能率の点で大きな隔りがあった」と述べられている。
 ここから分かるように、暗号化の仕組みによって、処理速度や解読の難易度が変わってくる。暗号化してしまえば、その仕組みは何でもいいというわけではない。

プロ野球ダイジェスト(プロ野球ニース)の特徴を言え
 ※ハッシュ関数を意識して
ダイジェストの放送時間は決まっている
試合がどんなに長くても、短くても、ダイジェストの放送時間は(だいたい)決まっている。
放送時間の枠があるので、たとえば、1試合あたり1分とか2分とか。

同じ試合のダイジェストは同じ
プロ野球ファンの人は、好みの球団が勝つと、プロ野球ニースをハシゴする人がいる。しかし、その内容は各局でほとんど同じだ。同じ試合からできるダイジェスト版は(ほぼ)同じである。

ダイジェストから本当の試合は見れない
ダイジェストで放送されなかったシーンなどを知りたい人もいるだろう。でも、それは絶対に不可能だ。本当の試合からダイジェスト版は作れるが、ダイジェスト版から本当の試合を作ることはできない。
ハッシュ関数_情報セキュリティスペシャリスト試験
ハッシュ関数は、ハッシュ値(メッセージダイジェスト)を作成するもので、プロ野球のダイジェスト版が短時間での内容であるのと同様に、メッセージダイジェストは文書の短編版です。ハッシュ関数にはMD5やSHA-1がありますが、これらの危殆化の問題があり、SHA-2などが利用されるようになっています。
※hashとは、「細切れにする」などの意味があります。

特徴は以下だ。上記のプロ野球のダイジェスト版と特徴が似ているのが分かる。
 どんな長さのデータも必ず固定長になる
 同じメッセージからは同じハッシュ値が出力される
 ハッシュ値から元のメッセージを求めることはほぼ不可能
この3つ目の特徴から、暗号としての機能を持つ。

過去問(H24春AP午前)を見ましょう。
問38 ディジタル署名などに用いるハッシュ関数の特徴はどれか。
ア 同じメッセージダイジェストを出力する異なる二つのメッセージが,容易に求められる。
イ メッセージが異なっていても,メッセージダイジェストは同じである。
ウ メッセージダイジェストからメッセージを復元することは困難である。
エ メッセージダイジェストの長さはメッセージの長さによって異なる。
先ほどの特徴を理解していれば、簡単だったことでしょう。正解はウです。アは、メッセージダイジェストからメッセージを求めるのはほぼ不可能です。イはメッセージが異なれば、メッセージダイジェストも異なります。エは、メッセージダイジェストの長さは、常に同じです。

もう一問、以下の問題を解こう。
セキュアハッシュ関数SHA-256を用いて、32ビット、256ビット、2048ビットの三つの長さのメッセージからハッシュ値を求めたとき、それぞれのメッセージのハッシュ値の長さはどれか(H22SC春午前Ⅱ問1)
答えは当然ながら全て256ビットである。

ハッシュ関数の機能は、暗号だけでしょうか。それだけではありません。改ざん検知としても利用されます。その手順の理解を含めて、以下の過去問(H24秋AP午前)を解きましょう。 
問38 手順に示すハッシュ関数とメッセージダイジェストの処理を行うことで得られるセキュリテイ上の効果はどれか。ここで,メッセージダイジェストは安全な方法で保護され,改ざんや破壊がされていないものとする。
〔手順〕
(1)送信者Aは,電子メールの本文からハッシュ関数を用いて,メッセージダイジェストを作成する。電子メールの本文とメッセージダイジェストを別々に受信者Bに送信する。
(2)受信者Bは受信した電子メールの本文からハッシュ関数を用いて,メッセージダイジェストを作成する。その作成したメッセージダイジェストと,受信したメッセージダイジェストを比較する。
ア 電子メールの改ざんの有無の確認
イ 電子メールの誤送信の防止
ウ 電子メールの送達確認
エ 電子メールの盗聴の防止
答えはアです。

以下の問題を考えよう。
「160ビットの出力データを生成し、改ざんの検出に利用するアルゴリズム(H21春SC午前2問6)」は何か。
この問題の正解はSHA-1である。

このページのトップヘ