ARMベースの3DES暗号化アルゴリズムの実装(1)

ARMベースの3DES暗号化アルゴリズムの実装(1)

暗号化アルゴリズムは主にソフトウェアとハ​​ードウェアを通じて実装されます。ソフトウェア実装には柔軟性と利便性という利点がありますが、暗号化速度が制限されるという欠点もあります。暗号化アルゴリズムを実装するためにハードウェアを使用することは、実際のアプリケーションで考慮する必要がある問題です。現在、これを実装するためにハードウェア FPGA がよく使用されています。この実験方法は、処理速度が速いという特徴がありますが、システムの複雑さに対する要件が高くなります。

組み込みマイクロプロセッサには、実装が簡単、システム統合性が高い、サイズが小さい、持ち運びが簡単など、多くの利点があります。そのため、組み込みマイクロプロセッサに基づく暗号化アルゴリズムのハードウェア デバイスを開発する必要があります。ここでは、ARM プロセッサに基づく3DESのハードウェア実装方法を提案します。

3DESアルゴリズムの原理

DES は、米国国立標準局によって公布されたデータ暗号化アルゴリズムであり、20 年以上にわたって世界的な公開暗号化標準として使用されてきました。コンピュータの処理速度の向上に伴い、DES アルゴリズムはいくつかのセキュリティ上の脅威に直面しています。DES は 56 ビットのキーを使用しますが、かつて誰かが網羅的な検索方法を使用して DES に対してキー検索攻撃を実行しました。

近年、差分攻撃や線形攻撃の方式が提案されていますが、その実装には超高速コンピュータのサポートが必要です。 DES アルゴリズムの差分攻撃や線形攻撃への対処能力を高めるために、一連の改善スキームが提案されており、キーの長さを増やすことは実現可能なアプローチです。

キーの長さを増やすために、ブロック暗号をカスケードして、異なるキーの作用で平文のグループを複数回暗号化することができます。その中で最も効果的な方法は、暗号化キーの長さを 128 ビットまで拡張できるトリプル DES 暗号化を使用することです。これにより、暗号化の強度を向上させながら、現在のさまざまな攻撃に対処するのに十分です。

DES は、64 ビット ブロックでデータを暗号化するブロック暗号化アルゴリズムです。 64 ビットの平文シーケンスが暗号化アルゴリズムの入力として使用され、16 ラウンドの暗号化後に 64 ビットの暗号文シーケンスが得られます。暗号化キーは 64 ビットで、実際の長さは 56 ビットです。DES アルゴリズムの機密性はキーに依存します。 DES は 64 ビットのプレーンテキスト ブロックで動作します。

まず、初期置換 IP を使用して、64 ビットの平文をそれぞれ 32 ビットの長さの左半分と右半分に分割します。この初期置換は、16 ラウンドの暗号化プロセスの前に 1 回だけ実行されます。最初の順列操作の後、結果として得られる 64 ビットのシーケンスは、関数 f と呼ばれる 16 ラウンドの暗号化操作にかけられます。操作中、入力データはキーと結合されます。 16 ラウンドの操作の後、左側と右側の部分が結合されて 64 ビットの出力シーケンスが得られ、最後に IP-1 で並べ替えられて最終的な暗号化結果が得られます。このプロセスを図 1 に示します。

[[33999]]

暗号化の各ラウンドで、関数ファクトリの操作には次の 4 つの部分が含まれます。

まず、キーシーケンスがシフトされ、シフトされた 56 ビットのキーシーケンスから 48 ビットが選択されます。

次に、32 ビットの入力シーケンスの右半分が拡張順列によって 48 ビットに拡張され、48 ビットのラウンド キーと XOR されます。

さらに、XOR演算後に得られた48ビットのシーケンスは、8つのSボックスを介して32ビットのシーケンスに置き換えられます。

最後に、32 ビット シーケンスに順列 P を適用して順列変換を実行し、32 ビットの出力シーケンスを取得します。関数ファクトリの出力と入力シーケンスの左半分の間の XOR 演算の結果は、新しいラウンドの暗号化プロセスの入力シーケンスの右半分として使用され、現在の入力シーケンスの右半分は、新しいラウンドの暗号化プロセスの入力シーケンスの左半分として使用されます。

上記のプロセスは 16 回繰り返され、16 ラウンドの DES 暗号化操作が実行されます。

Bi が i 回目の計算結果であると仮定すると、Bi は 64 ビットのシーケンス、Li と Ri はそれぞれ Bi の左半分と右半分、Ki は i 回目の 48 ビットのキー、f は置換、順列、およびキー XOR 演算を実装する関数です。暗号化の各ラウンドの具体的なプロセスは次のようになります。

[[34000]]

上記操作の詳細なプロセスを図 2 に示します。

[[34001]]

3DES 暗号化アルゴリズムでは、暗号化プロセスで 2 つの異なるキー K1 と K2 を使用して、パケット メッセージに対して DES 暗号化を 3 回実行します。まず、最初のキーを使用して DES 暗号化を実行し、次に 2 番目のキーを使用して最初の結果に対して DES 復号化を実行し、最後に最初のキーを使用して 2 番目の結果に対して DES 暗号化を実行します。

[[34002]]

復号化プロセスでは、まず最初のキーを使用して DES 復号化を実行し、次に 2 番目のキーを使用して最初の結果に対して DES 暗号化を実行し、最後に最初のキーを使用して 2 番目の結果に対して DES 復号化を実行します。

[[34003]]

DESアルゴリズムのキー長は56ビット、トリプルDESアルゴリズムのキー長は112ビットです。暗号化の強度が大幅に強化され、さまざまな攻撃にうまく対処できます。現在、実行可能な攻撃方法はありません。3DESを使用した暗号化システムは、大きな実用価値を持っています。詳細については、ARMベースのハードウェア実装をお読みください。

【編集者のおすすめ】

  1. データ暗号化の詳細な分析
  2. 事前共有キーの生成と交換
  3. PKIの基礎入門(1)
  4. パスワードを解読するにはどれくらい時間がかかりますか?
  5. 情報セキュリティの核心:暗号技術
  6. ウィキリークスの機密情報の新たな窃盗手法を暴露

<<:  エッセンス共有サイトのランキングアルゴリズムのまとめ

>>:  ARMベースの3DES暗号化アルゴリズムの実装(2)

ブログ    
ブログ    
ブログ    

推薦する

人工知能アルゴリズム: 遺伝的アルゴリズム

この本の最初の 2 章では、進化アルゴリズムをやや抽象的な意味で定義しています。スコアリング、選択、...

舌先にAI:人工知能技術が食卓に並ぶ

世界中の食べ物は、まさに世界の花火のボウルに過ぎません。人工知能は、新しい技術科学として、日常生活に...

AlphaFold2の最初の公開PyTorchバージョンが複製可能になりました。コロンビア大学のオープンソースで、1,000以上のスターが付いています。

ちょうど今、コロンビア大学のシステム生物学助教授であるモハメッド・アルクライシ氏が、AlphaFol...

人工知能には自由意志があるのでしょうか?

[[388433]]伝統的な哲学的観点では、「自由意志」は人間だけが持つ特別な能力であり、この能力...

量子コンピューティングはどのようにして AI の「兄弟技術」になるのでしょうか?

[[254920]]画像出典: Visual China過ぎ去ったばかりの 2018 年を振り返っ...

マスクのロボットが進化した!新たなスキルが解き放たれ、エンドツーエンドのニューラルネットワークが実現

マスク氏のロボットの大いなる進化。 1年前に初めて舞台に立ったときは動きが少しぎこちなかったが、今で...

...

企業セキュリティのための AI 生体認証

生体認証技術は、市場に登場した最新の AI イノベーションのおかげで、特に 2021 年には長年にわ...

メディア分野における人工知能の革新は期待に値する

過去 30 年間にわたり、この種のイノベーションの歴史に残る例は数多くありました。ウェブサイト上のメ...

Pytorch Geometric を使用したリンク予測コードの例

PyTorch Geometric (PyG) は、グラフ ニューラル ネットワーク モデルを構築し...

マスターカードがAIを活用して詐欺を阻止し、誤ったチャージバックを削減する方法

【51CTO.com クイック翻訳】チェックアウト時に銀行カード取引が拒否されると、イライラしたり恥...

ロボットがお届けする素敵なショッピング旅行

[[373854]]最近、北京にショッピングモールがオープンした。オープン当日、客を出迎えたのは「人...