プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

情報セキュリティにおけるFeistel暗号とは何ですか?


Feistel暗号は、ブロック暗号ベースのアルゴリズムと構造の構築に使用される暗号化アプローチです。 Feistelネットワークは、情報のブロックに一連の反復暗号を実装し、大量のデータを暗号化するブロック暗号用に設計されることがよくあります。

Feistelネットワークは、データブロックを2つの同じ部分に分割し、複数のラウンドで暗号化を使用することによって動作します。各ラウンドは、主要な関数またはキーから派生した順列とシーケンスを実装します。ラウンド数は、Feistelネットワークを実装する暗号ごとに異なります。

Feistel暗号は、暗号の現在のプライベート状態を2つの部分に分割し、暗号化または復号化の各ラウンドで個々の部分でのみ機能するマルチラウンド暗号です。

Feistelは、製品暗号の概念を使用して概念ブロック暗号を近似できることを提案しました。これは、最終結果または製品がどのコンポーネント暗号よりも暗号的に優れているような方法で、2つ以上の単純な暗号を順番に実行することです。 。

この方法の本質は、キー長がkビットでブロック長がnビットのブロック暗号を作成し、2nではなく合計2kの変換を可能にすることです。理想的なブロック暗号で利用可能な変換。

Feistelは、置換と置換を交互に行う暗号の使用を提案しました。これらの方法は次のように定義されています-

置換-各平文コンポーネントまたはコンポーネントのセットは、対応する暗号文コンポーネントまたはコンポーネントのセットによって一意に復元されます。

順列-プレーンテキストコンポーネントの順序は、その順序の順列によって再保存されます。つまり、要素がシーケンスに表示される順序が変更されるのではなく、要素がシーケンスに挿入、削除、または置換されることはありません。

Feistel暗号は、暗号の各ラウンドへの入力として容易になる鍵スケジュールとして知られています。主要なスケジュールには2つの選択肢があります。

1つ目は、暗号の各ラウンドのキー(または「ラウンドキー」)が、2つのパーティによって共有される秘密キーに含まれていることです(結果として、共有秘密キーが高くなります)。

もう1つの方法は、共有秘密鍵を「鍵拡張」関数への入力として使用することです。この関数は、前の丸鍵または鍵生成アルゴリズムの現在の内部状態に対して何らかの操作を実行して、次の丸鍵を作成します。

>

K関数は、暗号化の各ラウンドで元の秘密鍵を丸い鍵に変換します。この関数は、暗号化関数のキースペースをサポートするように選択する必要があります。

64ビットの秘密鍵が必要であるが、同様の時点で有効な鍵空間が32ビットに縮小する場合、攻撃者は暗号文を復号化するために32ビット鍵の空間を検索するだけで済みます。


  1. 情報セキュリティにおける多表式換字式暗号とは何ですか?

    多表式暗号は、いくつかの置換アルファベットを使用した、置換に基づく任意の暗号です。多表式置換暗号では、平文の文字は、テキストへのインストールに基づいて異なる方法で暗号化されます。 1対1の対応ではなく、各文字とその代替文字の間には1対多の関係があります。 たとえば、「a」はテキストの先頭では「d」として暗号化できますが、中央では「n」として暗号化できます。多表式暗号には、基本言語の文字頻度を隠すという利点があります。したがって、攻撃者は個々の文字の頻度を静的に使用して暗号文を分割することはできません。 最初の多表式暗号は、1467年にレオンバッティスタアルベルティによって導入されたアルベル

  2. 情報セキュリティにおける公開鍵暗号システムとは何ですか?

    公開鍵暗号システムとは、メッセージが1つの鍵で暗号化され、2番目の鍵などでのみ復号化できることです。強力な公開鍵システムとは、アルゴリズムと1つの鍵の両方を制御しても有益な情報が得られないシステムです。もう一方のキーであるため、メッセージを復号化する方法は示されていません。 公開鍵暗号方式では、ネットワークで使用可能な公開鍵を使用して秘密鍵を計算することはできません。このため、公開鍵はネットワークで完全に利用できます。 ユーザーがターゲットユーザーの公開鍵を使用してメッセージを暗号化する場合、そのメッセージはターゲットユーザーの秘密鍵によってのみ復号化されます。さらに、メッセージがユーザー