暗号化

1.暗号を評価する団体

CRYPTREC(Cryptography Research and Evaluation Committees)

暗号技術を安全性実装性の点で評価し、暗号リストを作っている団体。総務省、経済産業省、NICT、IPAが運営に関与している。

NICT
国立研究開発法人情報通信研究機構。総務省所管。

CRYPTREC暗号リスト

電子政府における調達のために参照すべき暗号のリスト。3つのリストを覚える

電子政府推奨暗号リスト
安全性・実装性能が確認され市場での利用実績も十分であるため、利用を推奨する暗号リスト。
推奨候補暗号リスト
安全性・実装性能は確認されているが、市場での利用実績が十分ではない。今後電子政府推奨暗号リストに載る可能性がある暗号リスト。
運用監視暗号リスト
リスクが高まり利用を推奨することはできないが、互換性維持のため継続利用を容認する暗号のリスト。

2.共通鍵暗号方式

共通鍵暗号方式の実装

共通鍵の数:n人参加の場合は?→n(n-1)/2

DES(Data Encryption Standard)

平文を64ビットごとに分割し、それをさらに半分に分割する。56ビットのキーを使用して転置と換字を16回繰り返し、平文全体を暗号化する。IBMが作成し、1977年にNISTが標準暗号として採用した。56ビットのキーは1977年当時では安全とされたが、CPUの進化により安全ではなくなったため、AESが開発された。

DESのように平文を分割して暗号化する仕組みをブロック暗号という。ブロック暗号には利用モードというものがある。細かい論点だが、出題実績あり。

ECB(Electronic CodeBook)モード

もっとも単純なモードで、平文をそのまま暗号化する。各ブロックで並列に処理が可能なため、高速な暗号化が可能。しかし同じブロックが存在する場合は同じ暗号文となる等、解析される危険性があるため非推奨となっている。

CBC(Cipher Book Chaining)モード

暗号化する平文のブロックと、そのひとつ前の暗号化ブロックを使用して暗号化を行う方式。最初の平文ブロックにはひとつ前の暗号化ブロックが存在しないため、初期化ベクトル(IV)を使用する。

CFB(Cipher FeedBack)モード

暗号化する平文ブロックとひとつ前の暗号化ブロックをさらに暗号化した値の排他的論理和をとり、その値を暗号化する方式。CBCモード同様に、最初の平文ブロックにはひとつ前の暗号ブロックが存在しないため、初期化ベクトル(IV)を使用するが、初期ベクトルも暗号化され鍵ストリームと呼ばれるビット列になっている。暗号化時の並列処理は不可能だが、復号時は可能。

OFB(Output-FeedBack)モード

初期ベクトル(IV)を暗号化して生成した鍵ストリームと平文ブロックの排他的論理和をとることにより暗号文ブロックを生成する。暗号化・復号時ともに並列処理が不可能。

CTR(Counter)モード

1ずつ増加していくカウンタを暗号化して鍵ストリームを生成し、平文ブロックと排他的論理和をとることにより暗号文ブロックを生成する。並列処理が可能で、近年利用が増えてきている方式。

TripleDES

DESを3回繰り返して暗号化する方式。DES鍵は2つ使用し、16*3=48回暗号化を行っているため解読難度が上がっているが暗号アルゴリズム的にはDESのままであるため、脆弱性は残っている。

AES

DESの後継としてNISTが規格化した方式。鍵長は3種類あり、ラウンド数(変換段数)が異なっている。鍵長が選べる点が出題のポイントとなっている。

鍵長 ラウンド数
128ビット 10段
192ビット 12段
256ビット 14段

RC4

ロナルド・リベスト氏が考案し、1994年に何者かによって漏洩された暗号技術。1bitずつ暗号化をしていくストリーム暗号(流れ暗号)という技術が使われている。鍵長は可変。広く普及しており、WEPなどでも使用されているが、脆弱性が指摘されていて現在では推奨されていない。

CRYPTREC暗号リストの掲載

電子政府推奨暗号リスト
  • AES
  • Camellia
  • Kcipher-2
運用監視暗号リスト
  • RC4

3.公開鍵暗号方式

仕組み

公開鍵と秘密鍵の鍵ペアを作成し、公開鍵を広く配布し秘密鍵は流出しないように厳重に管理する。暗号化する際は宛先の公開鍵を入手して暗号化する。

管理鍵数

2n

公開鍵暗号方式の実装

RSA

大きな数値の素因数分解の困難さを利用した方式。ロナルド・リベスト、アディ・シャミア、レオナルド・エーデルマンの3氏の名前の頭文字をとって名付けられた。RSA暗号は計算量を安全の根拠としているため、コンピュータの計算能力が向上すると、将来的に解読されてしまう可能性がある。

鍵長
1024ビット
非推奨
2048ビット
推奨

楕円曲線暗号(Ellicptic Curve Cryptography:ECC)

楕円曲線上の離散対数問題という数学上の問題を安全性の根拠とした暗号方式。 ビクター・ミラーとニール・コブリッツにより1985年に考案された。

ECDSA(Ellicptic Curve Digital Signature Algorithm)

楕円曲線暗号を用いた署名方式のこと。

ECDHE(Ellicptic Curve Eiffie-Hellman key Exchange)

楕円曲線DH鍵交換。楕円曲線暗号を使用した鍵交換アルゴリズム。DHはDiffie-Hellman鍵交換といい、その中でも特に楕円曲線暗号を使うものをDCDHEという。

Diffie-Hellman鍵交換

共通鍵を公開鍵暗号方式で共有する具体的な方法となるアルゴリズム。1976年に考案され、ハイブリット方式による暗号化を実現する方法として使用されている。

CRYPTREC暗号リストの掲載

公開鍵暗号方式については、署名・守秘・鍵共有の3つのカテゴリーに分かれている。電子政府推奨暗号リストにあるものは以下となる。

署名
  • DSA
  • ECDSA
  • EdDSA
  • RSA-PSS
  • RSASSA-PKCS1-v1_5
守秘
  • RSAOAEP
鍵共有
  • DH
  • ECDH