公開日:2007年9月26日
独立行政法人情報処理推進機構
セキュリティセンター
本ページの情報は2007年9月時点のものです。
記載の資料は資料公開当時のもので、現在は公開されていないものも含みます。
ファイル内のデータや、ネットワーク上を流れるデータについて、その秘匿性(confidentiality)やインテグリティ(integrity)を確保するためのセキュリティ機能には暗号技術等が利用される。
暗号技術には、共通鍵暗号技術の他、公開鍵暗号技術があるが、今日の暗号技術は、両者を組み合わせて統合的に利用されることが一般化していることに加えて、ハッシュ関数や擬似乱数生成技術も組み合わされて利用されることがある。(例えば、今日のセキュア・プロトコルは、鍵交換機能には擬似乱数生成技術と組み合わされて公開鍵暗号技術が使われており、暗号化機能には共通鍵暗号技術暗号機能が利用されている。)
また、各暗号技術分野には、複数のアルゴリズムが考案されており、それぞれに安全性や実装性の観点から特徴をもつ。
要件が求めるセキュリティ機能を設計する際には、その要件に適合する暗号技術をアルゴリズム名のレベルで意識して選択する必要がある。その際には、「CRYPTREC暗号リスト」を参照していただきたい。
参考資料:
一方、今日のソフトウェア開発環境においては、暗号技術について、多くのライブラリ関数が提供されている。アプリケーション・ソフトウェアを開発する場合、暗号技術や擬似乱数生成技術をスクラッチから開発する必要は無い。ソフトウェアを開発する観点からは、APIについての知識を深めておく必要がある。
セキュリティ関連のAPIについては、IPAのサイトにはセキュリティ関連APIについての調査があるので、参考になる。
参考資料:
各暗号アルゴリズムの安全性には技術的な有効期限がある。例えば、今日、ハッシュ関数として、まだ使われているMD5については、その衝突困難性は容易に再現可能なものとなってしまっている。このように、暗号技術の安全性は、新たな解読方法の発見や、CPUの能力の向上によって、変化するのでCRYPTRECやNISTのサイトをチェックすることが奨められる。
また、このような暗号アルゴリズムや、ハッシュ関数を実装するソフトウェアについては、交換可能性を確保するように留意する必要がある。
参考資料:
擬似乱数生成ロジックにおいては、最初に投入されるシード(種)の選択が重要であり、これに基づいて撹拌・平滑化が行われる必要がある。アプリケーション・ソフトウェアを開発する際にも必要とされることがあるが、安直な実装が散見される。
乱雑性については、その検定が行われているので、参照されたい。
参考資料:
また、最近では、CPUが命令としてもつ擬似乱数生成機能を利用するためのライブラリ関数が提供されているので、吟味して利用することができる。
参考資料: