フェンス暗号化・復号化アルゴリズムをC言語で詳しく解説

フェンス暗号化・復号化アルゴリズムをC言語で詳しく解説

Palisade 暗号化および復号化アルゴリズムは、平文内の文字を並べ替えることによって暗号文を生成する、順列ベースの暗号化アルゴリズムです。このアルゴリズムでは、平文の文字が行に分割され、これらの行が交互に結合されて暗号文が形成されます。同様に、復号化プロセスでは、暗号文の文字を再配置して元の平文を生成します。この記事では、C 言語を使用してフェンスの暗号化および復号化アルゴリズムを実装する方法を詳しく説明します。

1. アルゴリズム原理

フェンス暗号化アルゴリズムの主なアイデアは、平文を行に従って配置し、その行を結合して暗号文を作成することです。具体的な操作手順は以下の通りです。

(1) 平文文字が複数行に配置されている;
(2) 各行から交互に文字を取り出して新しい行を形成している;
(3) 新しい行を暗号文の行として使用している。

例えば、平文が「HELLO WORLD」で3行に並んでいるとすると、以下のようにフェンスに変換されます。

H . お。R .
E. L . W 。D.
L . お。

ここで、各ピリオドはスペースを表します。交互配置後の暗号文は「HO RLELDLO W」となる。

復号化するときも、同様の手順に従う必要があります。暗号文の長さと行数に応じて列数を計算し、暗号文の文字をフェンスに埋め込み、最後に平文の文字を列順に読み取ります。

2. アルゴリズムの実装

まず、フェンスを表す構造体を定義する必要があります。

typedef struct {
   
    
    
    char

Guess you like

Origin blog.csdn.net/qq_33885122/article/details/132504978