情報の盗聴や改ざんを防止するために、情報の暗号化は必要不可欠な技術です。暗号化と一言で言っても、様々なアルゴリズムが存在しており、過去には安全と思われていたアルゴリズムでも、現在では解読のリスクがあるものも少なくありません。そのため安全に使える暗号化アルゴリズムをリストにして利用してもらうために、「CRYPTREC暗号リスト」が作成されました。
今回はCRYPTREC暗号リストの概要と暗号化アルゴリズムの必要性、さらに暗号化アルゴリズムの選択方法について徹底解説します。
この記事の目次
CRYPTREC暗号リストとは
CRYPTREC暗号リストとはCRYPTRECが選定した推奨暗号化リストのことです。CRYPTRECは「Cryptography Research and Evaluation Committees」の略であり、暗号化技術の安全性の評価と監視を行い、暗号技術の適切な実装と運用方法の調査と検討を行うプロジェクトのことです。
CRYPTREC暗号リストは、以下の3つから構成されています。
- 電子政府推奨暗号リスト
- 推奨候補暗号リスト
- 運用監視暗号リスト
これらは2003年2月20日に策定した電子政府推奨暗号リストを改定したものです。それでは、この3つの暗号リストの詳細について見ていきましょう。
CRYPTREC暗号リストの種類
CRYPTREC暗号リストに掲載されている3種類の暗号化リストは安全性、実装性、利用実績の評価と検討によって策定されたものです。1つずつ詳しく見ていきましょう。
電子政府推奨暗号リスト
電子政府推奨暗号リストは、CRYPTRECによって安全性と実装性能が確認された暗号技術であり、市場における利用実績が十分であるか、今後の普及が見込まれると判断された暗号技術のリストです。電子政府推奨暗号リストは具体的には以下です。
技術分類 | 暗号技術 |
---|---|
公開鍵暗号 | DSA、ECDSA、RSA-PSS、RSASSA-PKCS1-v1_5、RSA-OAEP、DH、ECDH |
共通鍵暗号 | AES、Camellia、KCipher-2 |
ハッシュ関数 | SHA-256、SHA-384、SHA-512 |
暗号利用モード | CBC、CFB、CTR、OFB、CCM、GCM |
メッセージ認証コード | CMAC、HMAC |
エンティティ認証 | ISO/IEC 9798-2、ISO/IEC 9798-3 |
推奨候補暗号リスト
推奨候補暗号リストは、CRYPTRECによって安全性と実装性能が確認され、今後、電子政府推奨暗号リストに掲載される可能性がある暗号技術のリストです。推奨候補暗号リストは具体的には以下です。
技術分類 | 暗号技術 |
---|---|
公開鍵暗号 | PSEC-KEM |
共通鍵暗号 | CIPHERUNICORN-E、Hierocrypt-L1、MISTY1、CIPHERUNICORN-A、CLEFIA、Hierocrypt-3、SC2000、Enocoro-128v2、MUGI、MULTI-S01 |
ハッシュ関数 | SHA-512/256、SHA3-256、SHA3-384、SHA3-512、SHAKE128、SHAKE256 |
メッセージ認証コード | PC-MAC-AES |
認証番号 | ChaCha20-Poly1305 |
エンティティ認証 | ISO/IEC 9798-4 |
運用監視暗号リスト
運用監視暗号リストとは、解読されるリスクが高まるなどの理由で推奨すべき状態でなくなったとCRYPTRECによって確認された暗号技術のうち、互換性の維持のために継続利用を容認するもののリストです。互換性維持以外の目的での利用は推奨されません。運用監視暗号リストは具体的には以下です。
技術分類 | 暗号技術 |
---|---|
公開鍵暗号 | RSAES-PKCS1-v1_5 |
共通鍵暗号 | 3-key Triple DES、128-bit RC4 |
ハッシュ関数 | RIPEMD-160、SHA-1 |
メッセージ認証コード | CBC-MAC |
CRYPTREC暗号リスト改定の背景
CRYPTREC暗号リストの前身である、電子政府推奨暗号リストは2003年に10年間安心して利用できる暗号技術という観点で選定された暗号リストでしたが、以下の理由により改定を余技なくされました。
- 選定から10年が経過したこと
- 暗号解析技術や計算機の発展により安全性が低下したこと
- 暗号が利用されるシーンがふえたこと
これら3つの理由により、2013年に新しく「電子政府推奨暗号リスト」を改訂した「CRYPTREC暗号リスト」が作成されました。
CRYPTREC暗号リストは、2003年に策定された電子政府推奨暗号リストとは異なり、安全性だけでなく、調達容易性や国産暗号の普及促進などの視点から、「電子政府推奨暗号リスト」、「推奨候補暗号リスト」、「運用監視暗号リスト」の3つから構成されるようになりました。
暗号アルゴリズムの実装が必要な理由
オンラインショッピングや動画配信など、様々な目的でインターネットを活用する場面が増えてきました。このようなオンラインサービスを安全に利用するために、私たちは個人情報やクレジットカード番号、そしてパスワードなどの重要情報を、それぞれのオンラインサービスに保存する必要があります。
重要情報を安全にやり取りするために、暗号アルゴリズムの実装が必要となります。もし重要情報が悪意のある第三者に漏洩したとしても、暗号化されていれば情報の中身を読み取られるリスクは格段に低くできるからです。
情報のやり取りに暗号化というルールを設けることによって、情報の保護が可能となり、インターネットを安全に使うことが可能になるのです。これが暗号アルゴリズムの実装が求められる最大の理由です。
暗号アルゴリズムの選び方
「CRYPTREC暗号リストの種類」で暗号アルゴリズムには、様々な種類があることを紹介しましたが、実際に利用するためには、どの暗号アルゴリズムを選択すれば良いのでしょうか。暗号アルゴリズムの選択方法のポイントを紹介します。
標準化されたアルゴリズムから選択しよう(FIPS 、電子政府推奨暗号リスト)
安全な暗号アルゴリズムを選択するための指針の一つとして、標準化されたアルゴリズムから選択するという方法があります。標準化されたアルゴリズムとは、具体的には「FIPS認定アルゴリズム」あるいは「電子政府推奨暗号リスト」に掲載されているアルゴリズムです。
FIPSとは「Federal Information Processing Standards」と綴り、日本語では「連邦情報処理規格」と訳されます。アメリカ国立標準技術研究所(NIST)が発行している標準規格です。このように公的な機関で標準化されているアルゴリズムであれば、現状では安全であると言えるでしょう。
標準化されていないものでも第三者評価は必要
状況によっては、標準化されていないアルゴリズムの使用が要求されることもあるでしょう。そのような時は、標準化とまでは行かなくても、できるだけ第三者によって評価されているアルゴリズムを選択しましょう。
例えば、CMVP(Cryptographic Module Validation Program)と呼ばれる、第三者が暗号製品やモジュールを評価する制度があります。CMVPとは日本語では「暗号モジュール評価プログラム」と訳され、アメリカのNISTとカナダのCSE(Communication Security Establishment)との共同で確立された評価制度です。
日本国内にも、JCMVP(Japan Cryptographic Module Validation Program)が情報処理推進機構によって運営されています。暗号モジュール試験及び認証制度 (JCMVP)のWebサイト内では、暗号アルゴリズム確認登録簿が随時更新されており、安全なアルゴリズムと危険なアルゴリズムのリストを閲覧できます。
安全性を失ったアルゴリズムに注意(DES、MD5、SHA-0など)
安全だと思われていたアルゴリズムでも、時間の経過とともに安全性が失われることがあります。例えば、DES、MD5、SHA-0などは長期間安全と思われていましたが、アルゴリズムに重大な欠陥が含まれていることや、計算機の性能向上などの理由で、現在では解読される危険性が高いアルゴリズムとして知られています。
安全性を失ったアルゴリズムは、可能な限り使用しないように注意し、もし危険なアルゴリズムが含まれているシステムが運用されている場合は、システムの入れ替えなども検討しなければなりません。
まとめ
CRYPTREC暗号リストの概要や暗号アルゴリズムの選び方について紹介しました。安全な暗号と危険な暗号をリストにすることで、安全な暗号化の利用を推奨し、インターネット上で安全な情報のやり取りに役立てることができます。
暗号アルゴリズムを実際に自分で実装する機会は、それほど多くないと思います。しかし、例えば何らかのWebサービスを利用したい時に、使用されている暗号アルゴリズムが安全なものかどうか、予めチェックする際にCRYPTREC暗号リストが役に立つでしょう。