暗号鍵関連の各種変数について
「ECDSA鍵をGitHubで使う方法」で SP 800-57 第一部が Rev.4 になってるのを見て一瞬「ふぁ!」となったが,よく考えたら今年始めに書いた「最初の SHA-1 衝突例」では既に Rev.4 を参照していたのだった。 でも古い記事を見返したら結構 Rev.3 のままになってるので,このさい全部アップデートすることにした。
この記事は将来の記事で再利用するための snippet 置き場として使うことにする。 表のレイアウトの関係で携帯端末で見ている人は見づらいかもしれないけど,そこはご容赦。
参照資料
ここで参照する資料は,米国 NIST の Special Publication (SP) 800-57 Part 1 で正式タイトルは「Recommendation for Key Management Part 1: General (鍵管理における推奨事項 第一部:一般事項)」となっている(日本語訳は IPA によるもの)。
なお,ひとつ前の Rev.4 については IPA による日本語訳 があるので参考にどうぞ。
セキュリティ強度と鍵長の関係
最初はセキュリティ強度と鍵長の関係を示す表。 単位は全てビットである。
Security
StrengthSymmetric
key
algorithmsFFC
(DSA, DH,
MQV)IFC
(RSA)ECC
(ECDSA,
EdDSA, DH,
MQV) $\le 80$ 2TDEA $L=1024$
$N=160$ $k=1024$ $f = 160\text{ - }223$ $112$ 3TDEA $L=2048$
$N=224$ $k=2048$ $f = 224\text{ - }255$ $128$ AES-128 $L=3072$
$N=256$ $k=3072$ $f = 256\text{ - }383$ $192$ AES-192 $L=7680$
$N=384$ $k=7680$ $f = 384\text{ - }511$ $256$ AES-256 $L=15360$
$N=512$ $k=15360$ $f=512+$ SP 800-57 Part 1 Revision 5
5.6.1.1)
Symmetric key algorithms は共通鍵暗号アルゴリズム全般を指す。 たとえば AES とか。 IFC (Integer Factorization Cryptosystems) は素因数分解問題ベースの公開鍵暗号アルゴリズムで RSA がこれに該当する。 FFC (Finite Field Cryptosystems) は離散対数問題ベースの公開鍵暗号アルゴリズムで Diffie-Hellman や ElGamal, DSA などがこれに該当する。 ECC (Elliptic Curve Cryptosystems) は離散対数問題でも特に楕円曲線上の離散対数問題ベースの公開鍵暗号アルゴリズムを指す。 たとえば ECDH や ECDSA など。
IFC では $k$,FFC では $L$,ECC では $f$ が鍵長を示す。 たとえばセキュリティ強度が128ビットなら
- AES 128bit
- ElGamal, DSA 3072bit
- RSA 3072bit
- ECDH, ECDSA 256bit
の組み合わせで「ベストマッチ キター!」となる。
セキュリティ強度と Hash 関数の関係
次はセキュリティ強度とHash 関数の関係を示す表。
Security
StrengthDigital Signatures and Other
Applications Requiring Collision
ResistanceHMAC, KMAC,
Key Derivation Functions,
Random Bit Generation
$\le 8$0
SHA-1
$112$
SHA-224, SHA-512/224, SHA3-224
$128$
SHA-256, SHA-512/256, SHA3-256
SHA-1, KMAC128
$192$
SHA-384, SHA3-384
SHA-224, SHA-512/224, SHA3-224
$\ge 256$
SHA-512, SHA3-512
SHA-256, SHA-512/256, SHA-384, SHA-512, SHA3-256, SHA3-384, SHA3-512, KMAC256
SP 800-57 Part 1 Revision 5
5.6.1.2)
考え方は先程の暗号鍵長のときと同じ。 ただし Hash 関数の場合は使用目的ごとに要求されるアルゴリズムが異なるので注意が必要である。
セキュリティ強度と有効期限
こちらはセキュリティ強度の有効期限を表したものだ。
Security Strength
Through
20302031 and
Beyond$\lt 112$ Applying Disallowed
Processing Legacy use $112$ Applying Acceptable Disallowed
Processing Legacy use $128$ Applying/Processing Acceptable Acceptable $192$ Acceptable Acceptable $256$ Acceptable Acceptable SP 800-57 Part 1 Revision 5
5.6.3)
各用語はそれぞれ
用語 | 意味 |
---|---|
Applying | 適用 |
Processing | 処理 |
Acceptable | 許容 |
Legacy use | 許容(レガシー使用のみ) |
Disallowed | 禁止 |
という意味だ。 例を挙げると,セキュリティ強度112ビットの暗号スイート(Cipher Suites)を適用する場合は2030年までは許容するけど2031年以降は禁止。 すでに暗号化されているデータを復号したい場合でも2031年以降はレガシー・システムしか許容しない,ということになる。
たとえば ssh 認証は「適用」なので,いまだ多くの人が使ってる(かもしれない) RSA 2048ビットの鍵は2031年以降は使用禁止となるわけだ。 まぁ,そんな先まで同じシステムで同じ鍵を使い続けるかどうかは分からないが(なので今使ってる鍵を慌てて新調する必要はない。新規に作成するなら128ビット強度の鍵をお勧めするが)。
なお,これは各アルゴリズムに危殆化要因となる脆弱性等がない場合の話である。 したがって暗号製品を使うシステムの管理者やセキュリティ管理者は常に暗号関係のトピックに耳を澄ませておくべきであろう。
OpenPGP で利用可能なアルゴリズム
この項は「OpenPGP で利用可能なアルゴリズム」に移動した。
パスワードの強度
これは NIST ではなく IPA の資料だが,文字種と文字数の組み合わせによるパスワードの強度についても上げておこう。 出典は以下。
利用する文字種類数と内訳
パスワード長
種類数
数字
文字
シンボル
4文字
8文字
12文字
16文字
10種 0-9 なし なし 1円未満
($2^{13.3}$)1円未満
($2^{26.6}$)約35円
($2^{39.9}$)約35万円
($2^{53.2}$)36種 0-9 a-z なし 1円未満
($2^{20.7}$)約100円
($2^{41.4}$)約1.65億円
($2^{62.0}$)約276兆円
($2^{82.7}$)62種 0-9 a-z
A-Zなし 1円未満
($2^{23.8}$)約7,500円
($2^{47.6}$)約1,120億円
($2^{71.5}$)約165京円
($2^{95.3}$)94種 0-9 a-z
A-Z! " # $ %
& ' ( ) =
~ | - ^ `
¥ { @ [
+ * ] ; :
} < > ? _
, . /1円未満
($2^{26.2}$)約21万円
($2^{52.4}$)約16.5兆円
($2^{78.7}$)約129,000京円
($2^{104.9}$)情報漏えいを防ぐためのモバイルデバイス等設定マニュアル 解説編
2.4.2.2項より)
測定基準は以下の通り。
ブックマーク
参考図書
- 暗号技術入門 第3版 秘密の国のアリス
- 結城 浩 (著)
- SBクリエイティブ 2015-08-25 (Release 2015-09-17)
- Kindle版
- B015643CPE (ASIN)
- 評価
SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。
- 暗号化 プライバシーを救った反乱者たち
- スティーブン・レビー (著), 斉藤 隆央 (翻訳)
- 紀伊國屋書店 2002-02-16
- 単行本
- 4314009071 (ASIN), 9784314009072 (EAN), 4314009071 (ISBN)
- 評価
20世紀末,暗号技術の世界で何があったのか。知りたかったらこちらを読むべし!