問題タブ [feistel-cipher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
673 参照

postgresql - PostgreSQL で Feistel 暗号を復号化する

このFeistel Cipherを使用して、データベース内の一連のフィールドを更新しました。ドキュメントによると、暗号を元に戻して元の値を取得できます。必要に応じて値を元に戻すにはどうすればよいですか?

元の暗号関数は次のとおりです。

0 投票する
2 に答える
1762 参照

java - Java のマルチラウンド Feistel ネットワーク

一部の学生のものについては、Java で Feistel ネットワークを実装する必要があります。

次のように、3回の手動ラウンドから始めました。

10ラウンドしたい場合、これを10回コピーして変数を調整する必要がありますが、これを行うより良い方法はありますか? 手遅れかもしれませんが、解決策が思い浮かびません...

0 投票する
3 に答える
5716 参照

java - Java での Feistel 暗号の小規模な実装

Feistel Cipher の小さな実装をしようとしています。これは私が試してきたことです:

ラウンド関数scrambleは次のとおりです。

最初に平文の左半分と右半分を暗号化してから、復号化ラウンドを実行しようとしています。したがって、最終的に、配列の値は [1,2,3] と [4,5,6] になるはずです (平文に戻る)。8 のキー入力を使用して、復号化後に [15, 13, 0] と [8, 12, 1] の値を取得しています。これのどこが間違っているのですか?

簡単にするために、ファイルからの読み取り/バイト配列の使用とは対照的に、キーとして定数を使用し、整数の入力を使用しています。

編集:

ループのカウントが正しくありませんでした。「暗号化ループ」を次のように変更しました。

ループはラウンド 1、2、3 (暗号化) および 3、2、1 (復号化) をカウントするようになりました。ただし、復号化しても正しい平文は得られません。