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)

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

ドローンの応用シナリオに関する簡単な説明

技術の発展に伴い、ドローンの応用シナリオは絶えず拡大しています。ドローンが様々な業界で活用されている...

プログラマーの 95% が決して使用しない「アルゴリズム」を勉強する必要はないのでしょうか?

私はほぼ 10 年間コードを書いてきましたが、挿入ソートや赤黒木を書いたことはなく、再帰を使用したこ...

自然言語処理 (NLP) はコンピューター ビジョン (CV) よりも開発が遅く、より困難です。

[[248743]] 1. 先を行くNLP NLP 開発の歴史は非常に古く、コンピュータが発明され...

...

スマートグリッドの重要性は何ですか?

スマートグリッドは私たちにとってどのような意義があるのでしょうか?実際のところ、私たちはスマートグリ...

動物や人間には学習の臨界期があり、ディープニューラルネットワークにも臨界期がある。

[[409851]] 0 はじめにこの記事で議論されている問題は、ICLR 2019の記事「CRI...

AIガバナンスがトップに躍り出るには

人工知能(AI)技術は現在、広く利用されています。 AI ガバナンスが重要なのは、AI はより大きな...

AIインテリジェンスを活用して企業の効率性を向上させる方法

人工知能はさまざまな分野から深い注目を集めており、人工知能分野のディープラーニングとインテリジェント...

AIエージェント、起動!復旦 NLP チームが 86 ページのレビューを発表: インテリジェント社会はすぐそこ

9 月 19 日、Jim Fan は Fudan NLP チームからの LLM ベースのエージェント...

1080ti だけで、リモートセンシング画像内のピクセルレベルでターゲットを見つけることができます。コードデータセットがオープンソース化されました!

長すぎて読めないこの論文では、新しいタスクである方向リモートセンシング画像セグメンテーション (RR...

ディープラーニングのこれらの落とし穴に遭遇したことがありますか?ニューラルネットワークのよくある落とし穴11選とその対処法

ニューラルネットワークがうまく動作しない場合はどうすればいいでしょうか?この記事の著者は、データの前...

清華大学の卒業生は大きな貢献をしました! Google、14のタスクで初の大規模一般医療モデルSOTAをリリース

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

初心者向けの機械学習アルゴリズムトップ10

機械学習モデルは全部でいくつありますか?分かりません。誰も数えたことがありません。すべての変種を含め...