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)

ブログ    

推薦する

...

...

南京大学人工知能学院が人材募集開始:年俸は40万元から

3月6日、南京大学は人工知能学院の正式な設立を発表した。一流の人工知能基礎研究拠点と人材育成拠点の構...

Python 転移学習: 機械学習アルゴリズム

機械学習は、非常に幅広い領域をカバーする人工知能の人気のあるサブフィールドです。その人気の理由の 1...

私の国のAI技術は世界をリードしており、人工知能時代のリーダーになるでしょう。アメリカは今回も準優勝になるのでしょうか?

ロボット時代の到来はそう遠くないかもしれない。少し前に、清華大学は「華志兵」という名のヒューマノイド...

「顔を見る」時代において、顔認識は「マーケティング」の共犯者にはなり得ない

315ガラはカメラの顔認識の悪用の問題を暴露し、懸念を引き起こした。これはまた、問題を浮き彫りにする...

コンピュータビジョンのための 9 つのオープンソース データセット

[[420140]] [51CTO.com クイック翻訳]オープンソースデータセットを使用してトレー...

GraphAlign: グラフマッチングによるマルチモーダル 3D オブジェクト検出のための正確な特徴アライメント

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

安全な生産を守り、ロボット、IoTなどの技術サポートを提供します。

近年、世界的な工業化の加速を背景に、製造業、建設業、化学業などの産業を中心に労働災害や死亡者数が増加...

ベクトルインデックスの概念を解明する

ChatGPT が一般公開されて以来、LLM (大規模言語モデル)、RAG (検索拡張生成)、ベクタ...

...

清華大学の趙明国氏:AIチップ+ロボット、アルゴリズムのボトルネックを突破

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

ICLR 2020 におけるナレッジグラフ研究の包括的な概要

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

DataCanvas Jiuzhang YunjiがCOOL NEWSをリリースし、企業が独立したAIを構築できるよう支援

[51CTO.comからのオリジナル記事] 人工知能の応用が深まるにつれ、データの価値はますます顕著...

...