PCI DSSでは,どのような暗号を使うべきか規定している。用語解説(Glossary)に,暗号方式の設定推奨例についての記述がある。
暗号標準アルゴリズムはISOやANSIのような一般的に知られた標準に準拠した強力な設定に留意すること。 例:AESキー長 128ビットで設定 Triple-DES 2個または3個の別々のキーを用いるよう設定 RSAキー長 1024 ビットで設定 ElGamalキー長 1024 ビットで設定 (原文英文,著者和訳) |
暗号方式は一般的に,暗号鍵と復号鍵の取り扱いの違いから,下記のように分類される(表6)。
暗号鍵と復号化鍵の関係 | 代表的な暗号方式 | 特徴 |
---|---|---|
共通鍵方式(暗号化も復号化も同一鍵で行う) | DES*1,TDES*2,AES*3 | 処理時間が短い。 鍵の受け渡しが煩雑 |
公開鍵方式(暗号化と復号化は別の鍵で行う) | RSA*4,PGP*5,ElGamal*6,RC4*7 | 鍵の受け渡しが簡単。 処理時間が長い |
*2 Triple Data Encryption Standard:DESの発展型、変換処理を3回繰り返す方式
*3 Advanced Encryption Standard:アメリカ合衆国の新暗号規格、DESの後継規格
*4 RSA:1977に発明された暗号方式、開発者3人の頭文字からRSAと命名
*5 Pretty Good Privacy:署名も可能、RFC1991に規格が定義されている
*6 ElGamal:1984年Taher Elgamalが発表、離散対数の応用暗号
*7 RC4:疑似乱数を発生させて暗号化を行う
PCI DSSでは,ISOやANSIといった一般的な標準の記述を参照し,一般に知られている暗号方式に充分な強度を持たせて使用することを推奨している。ここでは,日本国内の暗号研究機関であるCRYPTECの基準を併記し,日本国内でPCI DSSを適用する場合,同時に検討する設定値の例として表7に示す。
暗号方式 | PCI DSS用語解説(Glossary)の推奨値 | CRYPTRECの推奨値 |
---|---|---|
AES | 128bit以上の鍵長を使用 | 128bit鍵長を使用する |
TDES | 2種または3種の独立した鍵を使用 | 3種の独立した鍵を利用する |
RSA | 1024bit以上の鍵長を使用 | RSA-OAEPを推奨する |
ElGamal | 1024bit以上の鍵長を使用 | 推奨対象外 |
暗号方式検討時の注意点
ITで使用される暗号は,数学的なロジックを基に暗号化・復号化を実現していることが多い。一般的に,数学的なロジックを基に暗号化されているデータは,実用的な時間内で解読できないことをもって暗号強度が十分であると認識されている。その一方で,コンピュータの計算速度のさらなる向上は,従来の暗号解読時間を飛躍的に短縮しているのも事実である。しかも,既存の暗号方式が破られたからと言って,すぐに新しい暗号方式を開発できるものではない。
そこでIT先進国である米国では,既存の暗号方式が時代遅れになる前に,推奨暗号方式を改める方針を打ち出している。現在使われている多くの暗号方式と鍵長の組み合わせは,2010年をもって米国の推奨暗号方式リストから対象外となってしまう。そのため,既存の暗号方式を実装しているセキュリティ製品は,2010年までに規格の変更を余儀なくされている。つまり,米国の推奨暗号方式は2010年に大きく刷新される予定である。それに起因する大きな製品規格変更問題は「2010年問題」と呼ばれている。このような観点も含め,将来性を考慮した暗号方式の検討を行う必要がある。