1

私は基本的な暗号化のための優れた転置方法を開発しようとしてきました(実際には使用されません)

これは法案に適合しますか?

for (int k = 0; k < Plaintext.Length; k++) //transpose
{
     Swapchars(ResultArray, k, (key.length * k) % Plaintext.Length); 
}

ありがとう!

4

1 に答える 1

1

これはキーの長さのみを使用し、キーの内容は使用しません。したがって"aaa""bbb"キーは同じ方法で暗号化されます。

キーコンテンツを組み込む簡単な方法は次のとおりです(このコードはもちろん教育的であることに注意してください。実際の暗号ではありません)。

var mulConstant = key.Sum(c => (int)c); //derive constant from key contents
for (int k = 0; k < Plaintext.Length; k++) //transpose
{
     Swapchars(ResultArray, k, (mulConstant * k) % Plaintext.Length); 
}

を掛ける代わりに、key.Lengthキー全体に依存するすべてのキー文字の合計を使用します。文字を変更すると、キー全体が変更されます。

まだ明らかな弱点があります。キー"ab""ba"は同じ方法で暗号化します。

于 2012-12-09T15:36:09.217 に答える