情報処理安全確保支援士 - SE娘の剣 -

左門至峰による情報処理安全確保支援士試験に合格するためのサイトです。 過去問を引用しながら、試験に出る基礎知識を体系的かつ詳細に整理します。

共通鍵暗号

1.共通鍵暗号方式の種類

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

では、代表的な共通鍵暗号方式を簡単に整理します。

アルゴリズム     鍵長 処理方法    備考
DES 56bit ブロック DES(Data Encryption Standard)という言葉の通り、かつての暗号(Encryption)の標準(Standard)
3DES 2-key(112bit)
3-key(168bit)
同上 DESを3回繰り返す
AES 128bit,192bit,
256bit
同上 DESの脆弱性をカバーするために公募された暗号規格であり、Advanced Encryption Standardという言葉のとおり、次世代暗号標準という意味

※AESは、日本のNTTも公募に応じたが、結果的にRijndaelという方式が採用された。

(2)鍵長とは?
AESの鍵長に関して過去問では、「米国NISTが制定したAESにおける鍵長の条件として、128ビット、192ビット、256ビットから選択する(H22秋SC午前2問4)」と述べられている。
では、128ビットと256ビットの鍵では、どちらが安全でしょうか?
情報セキュリティスペシャリスト試験を目指す女性SE

たぶん、256ビットです。
理由は長いから。
そうですね。解読する側から考えてみましょう。
鍵のパターンが極端な話、2ビットであれば、4パターンしかありません。総当たりをすれば、簡単に復号できます。
256ビットにすると、2の128乗だけ鍵のパターンが増えます。解読が難しくなります。

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

情報処理安全確保支援士試験ではありませんが、過去問を解いてみましょう。

過去問(平成18年度NW午前問46)
100人の送受信者が共通鍵暗号方式で、それぞれ秘密に通信を行なうときに必要な共通鍵の総数は幾つか。






共通鍵暗号方式であることが注意点。
公開鍵暗号方式であれば、200個だが、共通かぎの場合はもっとたくさん必要。
正解は4,950。

2.ブロック暗号とストリーム暗号

(1)暗号の仕組みの違い
ブロック暗号とストリーム暗号の言葉の定義などは、情報処理安全確保支援士試験には出ないと思います。ただ、言葉そのものは問われますので、中身を何となくでいいので確認しておきましょう。
ストリーム暗号は、ビットやバイト単位で暗号しますが、ブロック暗号は、ある程度の塊(ブロック)で暗号処理をします。だから、ブロック暗号です。
代表例は以下です。
・ブロック暗号:DES、3DES、AES
・ストリーム暗号:RC4

[参考]
過去問(H29秋NW午後Ⅱ問2)では、以下の記載があります。
「WEPでは, 1バイト単位の[ f:ストリーム ]暗号であるRC4を使用」
「AESはブロック暗号なので,暗号化するメッセージを一定サイズのブロック単位に分割して処理する」

(2)利用モード
「利用モード」という言葉があります。まずは情報処理安全確保支援士試験の過去問(H27秋午後Ⅱ問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

3.暗号化のアルゴリズムって、どれも似たようなものではないの?

8412ebbb

暗号化の脆弱性って、DESだろうがAESだろうが、普通に使っている分にはどっちでも安全ではないの?
アルゴリズム1:3文字ずらす a→d、g→jなど。(これは古代ローマのシーザ暗号のことである)
・アルゴリズム2:対応表に基づいて変換。たとえばa→3、g→cなどと決められた対応表に基づいて暗号化する。

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

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

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

4.DH(Diffie-Hellman)法

DH(Diffie-Hellman)法は、すごい方式である。
具体的に言うと、私と成子ちゃんが、皆がいる前で秘密の会話をすることができる。
以前は絶対に不可能と言われていたらしいが、これを実現したのがディフィーさんとヘルマンさん。
この方式の仕組みを知ったとき、私は感動してしまった。
すごいと思わないかい?
2
今のインターットの世界なら当たり前でしょ。
事前に鍵を共有するなり、公開鍵証明書を準備すればいいのだから。
いや、事前に鍵や証明書を準備することなく、いきなり会話できる。しかも秘密の会話だ。
以下は過去問(H19SV午後2問2)であるが、IPsecでもDHを使っている。その仕組みが解説されている。

過去問(H19SV午後2問2)
dh
(中略)
次に,処理手順2では,暗号化で用いる共有鍵が生成されます。鍵交換パラメタは,鍵共有アルゴリズムである[ e ]アルゴリズムに使用されます。鍵交換パラメタPは,ノートPCがランダムに生成した一時鍵情報pから計算された値で,鍵交換パラメタQは,VPN装置がランダムに生成した一時鍵情報qから計算された値です。鍵交換パラメタP,Qからは,一時鍵情報p,qは計算できません。鍵交換パラメタQと一時鍵情報pを組み合わせて[ e ]アルゴリズムで計算した値は,鍵交換パラメタPと一時鍵情報qを組み合わせて[ e ]アルゴリズムで計算した値と一致します。この値を[ e ]アルゴリズムの出力値と呼びます。この出力値を計算すると,ノートPCが保持していた一時鍵情報pや,VPN装置が保持していた一時鍵情報qは,直ちに削除されます。一方,処理手順2で交換した乱数と事前共有鍵を利用して,マスク鍵が生成されます。また,マスク鍵と[ e ]アルゴリズムの出力値などを使用して,セッション鍵が計算されます。

設問2
(1)本文中の[ e ]に入れる適切な字句を答えよ。
(3)攻撃者は,フェーズ1終了後に事前共有鍵と送受信されたすべてのデータを入手できたとしても,セッション鍵を計算できない。その理由を35字以内で述べよ。






この、空欄[ e ]に入るのがDHだ。そして、それが有効に機能している理由が問われている。
正解は以下
(1) DH 又は Diffie-Hellman
(3)一時鍵情報pや一時鍵情報qを攻撃者が入手できないから

別の過去問(H17年秋FE午後問3)では、DHに関する詳しい仕組みがある。

過去問(H17年秋FE午後問3)
問3 暗号通信に関する次の記述を読んで,設問に答えよ。

 安全でない通信経路を利用する2者が,秘密の共通かぎを安全に共有する方式としてDiffie-Hellman法(以下,DH法という)が知られている。DH法で利用者Aと利用者Bが共通かぎ瓦を共有するまでの手順は,次のとおりである。
(1)素数pと,pよりも小さいある自然数αが公開されていて,利用者Aと利用者Bがともに知ることができる。
1
ここで,x mod y は整数xを整数yで割った余り(剰余)である。
DH法によるかぎ共有を利用して,図に示すように,安全でない通信経路を利用する2者間で機密情報を送信する仕組みを作る。まず,利用者Aと利用者BはDH法を使って,共通かぎ尺を共有する。次に,利用者Aは平文を共通かぎ尺を使って暗号化して送信する。利用者Bは受信した暗号文を共通かぎ尺を使って復号して,元の平文を得ることができる。
2

設問 次の記述中の[   ]に入れる正しい答えを,解答群の中から選べ。
 DH法は,目的が[ a ]に限定されたアルゴリズムであるが,この方式の安全性はほかの公開かぎ暗号と同じく計算の一方向性に基づいている。すなわち,  DH法において,素数pの値が十分に大きい場合,秘密かぎから公開かぎを求めるのは容易であるが,公開かぎから秘密かぎを求めるのは非常に困難である。
反対に,素数pの値が小さい場合には,かぎの値が小さくなるので公開かぎから秘密かぎを短時間で求めることも可能であり,安全性に問題がある。例えば,利用者Aと利用者Bが使う通信経路上に通信を傍受している第三者Cがいて,公開されている素数pが7、aが5であることに加え,利用者Aが送った公開かぎYAが6,利用者Bが送った公開かぎYBが3であることを知ったとする。このとき,共通かぎKの値は,[ b ]であることが容易に分かる。
 また,DH法は,通信経路上の第三者Cが,利用者Aから送られる情報を,にせの情報にすりかえて利用者Bに送信する中間者攻撃に対して,弱いことが知られている。中間者攻撃を防ぐためには公開かぎに信頼できる第三者によるディジタル署名をつけるなどの対策が必要である。さらに,第三者Cが暗号文を傍受してそれを手掛かりとして共通かぎ尺を見つけるリスクもあるので,継続的な通信の安全性を高めるための対策として,共通かぎKの値が十分に大きいものを使うだけでなく,[ c ]も有効である。

a, cに関する解答群
ア 共通かぎKの更新間隔の短縮
イ 公開かぎYA,YBの交換回数の削減
ウ 公開かぎの交換
エ 秘密かぎによる情報の復号
オ 秘密の共通かぎの共有
力 より大きな値の素数pの使用






正解は以下だ
a オ
b 6
c ア

5.余談

(1)Excelファイルにかけたパスワードは解ける?

601a33a7

いつも4桁のパスワードをかけてますが、大丈夫ですかね?
まあ、社内ならいいかもしれないけど。
Excelのパスワードを解くツールがネットで数千円で売ってるよ。
「それって犯罪行為では?」と思う人も多いだろう。ただ、表向きはというか、自分が忘れた場合にパスワードを回復するツールとして売られている。

(2)鍵は安全なの?それとも危険?

11d7b807
インターネットの鍵は
「有名な数学者が何日もかけないと解けないくらい安全」だそうです。
これって安全なのか危険なのかよくわからないです。
納得しがたいかもしれませんが、安全ということになります。計算量的安全性と言われ、その計算量が何十年などの膨大な計算がかかることが安全性の根拠である。ただし、暗号解読技術の向上や、コンピュータの処理能力の大幅向上により、古いアルゴリズムではこの安全性が脅かされていることであろう。

一方で、パスワード解読サービスが数万円程度で実施されている。
つまり、数時間や数日で解けるということ。これは一般的に7ケタ以下のパスワードはツール等で解けてしまう。これは安全ではありません。

ちなみに、暗号解読で有名なのは、エニグマの解読であろう。ナチスのドイツが使っていたエニグマ(enigma)暗号。これを機械を使って短時間に解読できるようにしたのが数学者チューリング。