ハードウェアベースの暗号化とは、コンピュータのハードウェアを使用してソフトウェアを補助したり、場合によってはソフトウェアを置き換えたりして、データの暗号化を行う方法です。通常、これはプロセッサの命令セットの一部として実装されます。たとえば、AES暗号化アルゴリズム(最新の暗号)は、広く普及しているx86アーキテクチャのAES命令セットを使用して実装できます。[ 1 ]このような命令はARMアーキテクチャにも存在します。[ 2 ]しかし、暗号化モジュールが中央プロセッサから分離され、代わりにコプロセッサ、特にセキュア暗号プロセッサまたは暗号アクセラレータとして実装される、より特殊なシステムも存在します。その例として、IBM 4758やその後継機であるIBM 4764が挙げられます。[ 3 ]ハードウェアによる実装は、従来のソフトウェアによる実装よりも高速で、悪用されにくく、さらに改ざんから保護することができます。[ 4 ]
コンピュータ ハードウェアが使用される以前は、暗号化はさまざまな機械的または電気機械的な手段によって実行できました。初期の例としては、スパルタ人が使用したScytaleがあります。[ 5 ]エニグママシンは、第二次世界大戦でドイツ軍が使用したことで有名な電気機械式暗号機です。第二次世界大戦後、純粋に電子的なシステムが開発されました。1987 年に ABYSS (A Basic Yorktown Security System) プロジェクトが開始されました。[ 6 ] [ 7 ]このプロジェクトの目的は、ソフトウェアの海賊版から保護することでした。しかし、一般的にコンピュータを暗号化に適用したのは 1940 年代のブレッチリー パークに遡り、そこでコロッサス コンピュータを使用して第二次世界大戦中にドイツ軍最高司令部が使用した暗号を解読しました。しかし、暗号化にコンピュータを使用するようになったのは、それより後のことです。特に、集積回路が開発されるまで(最初の集積回路は1960年に製造された)、コンピュータは暗号化には実用的ではなかった。当時のコンピュータは、携帯可能なエニグマ暗号機[ 8 ]と比較して、建物全体のスペースを占有していたからである。マイクロコンピュータの開発によって初めて、ニッチな用途以外でコンピュータ暗号化が実現可能になった。ワールドワイドウェブの開発により、オンラインショッピングが普及するにつれて、消費者が暗号化を利用できる必要性が生じた。 [ 9 ]消費者の主な関心事は、セキュリティとスピードであった。[ 9 ]これにより、最終的に鍵アルゴリズムがプロセッサに組み込まれ、スピードとセキュリティの両方を向上させるようになった。[ 4 ]
CISC (Complex Instruction Set Computer)アーキテクチャであるX86 アーキテクチャは、通常、複雑なアルゴリズムをハードウェアで実装します。[ 10 ]暗号化アルゴリズムも例外ではありません。x86 アーキテクチャは、 NSAが極秘情報に使用するAES (Advanced Encryption Standard)アルゴリズムの重要なコンポーネントを実装しています。[ 1 ]また、このアーキテクチャには、Intel SHA 拡張機能による SHA ハッシュアルゴリズムのサポートも含まれています。[1] AESは文書の暗号化に役立つ暗号ですが、ハッシュはパスワードなどの検証に使用されます ( PBKDF2を参照)。
ARMプロセッサはオプションでセキュリティ拡張機能をサポートできます。ARMはRISC(Reduced Instruction Set Computer)アーキテクチャですが、 ARM Holdingsによって規定されたオプションの拡張機能がいくつかあります。[ 2 ] [ 12 ]
Advanced Micro Devices (AMD) のプロセッサも x86 デバイスであり、2011 年のBulldozerプロセッサ以降、 AES 命令をサポートしています。 [ 15 ] Intelと AMD の両方が提供する最新のプロセッサに暗号化命令が存在するため、これらの命令はほとんどの最新のコンピュータに存在します。[ 16 ]また、 ARM プロセッサに実装されているため、多くのタブレットやスマートフォンにも存在します。[ 16 ]
ハードウェアで暗号化を実装するということは、プロセッサの一部がそのタスクに特化していることを意味します。これにより、処理速度が大幅に向上する可能性があります。[ 4 ]特に、パイプライン処理をサポートする最新のプロセッサアーキテクチャでは、暗号化命令の実行と同時に他の命令を実行できる場合が多くあります。さらに、ハードウェアにはソフトウェアからデータを保護する方法があります。したがって、オペレーティングシステムが侵害された場合でも、データは依然として安全である可能性があります(ソフトウェアガード拡張機能を参照)。[ 17 ]
しかし、ハードウェアの実装が侵害されると、重大な問題が発生します。悪意のあるソフトウェアは、(本来)安全なはずのハードウェアからデータを取得できます。使用される方法の大きなクラスは、タイミング攻撃です。[ 18 ]これは、オペレーティングシステム内のソフトウェアのバグよりも解決がはるかに困難です。Microsoftは、 Windows Updateを通じてセキュリティ問題に定期的に対処しています。同様に、Mac OS XやLinux 、 iOS、Android、Windows Phoneなどのモバイルオペレーティングシステムにも定期的なセキュリティ更新プログラムがリリースされています。しかし、ハードウェアは別の問題です。プロセッサのマイクロコード(低レベルのソフトウェア)を更新することで問題が解決できる場合もあります。しかし、ハードウェアを交換するか、 Spectre エクスプロイトのようにハードウェア実装のパフォーマンス上の利点を軽減するオペレーティングシステムの回避策によってのみ解決できる問題もあります。[ 19 ]