Я пытаюсь сделать небольшую реализацию шифра Feistel. Это то, что я пытался: < /p>
int[] left = {1,2,3};//left half of plaintext
int[] right = {4,5,6};//right half of plaintext
int temp[];//temp for swapping values
//encrypt the plaintext (left and right arrays)
for(int r = 0; r < 3; r++) {//the number of rounds
for(int i = 0; i < right.length; i++){
right = left ^ (scramble(right, KEY, r));
}
temp = left;
left = right;
right = temp;
}
//swap left and right array before decryption
temp = left;
left = right;
right = temp;
for(int r = 3; r > 0; r--) {//start from the last round
for(int i = 0; i < right.length; i++) {
right = left ^ (scramble(right, KEY, r));
}
//again, swap arrays to do the next round
temp = left;
left = right;
right = temp;
}
< /code>
Круглый функция, Scramble < /code> IS: < /p>
private static int scramble(int character, int key, int roundNumber) {
return (int) Math.pow(2 * roundNumber * key, character) % 15;
}
< /code>
Я пытаюсь сначала зашифровать левые и правые половины открытого текста, а затем запустить его через раунды расшифровки - так что к концу значения массива должны быть [ 1,2,3] и [4,5,6] (обратно в открытый текст). Используя ключ 8, после дешифрования я получаю значения [15, 13, 0] и [8, 12, 1]. Где я ошибаюсь с этим? /Использование байтовых массивов. Изменил «цикл шифрования» на: < /p>
for(int r = 1; r < 4; r++) {//the number of rounds
for(int i = 0; i < right.length; i++){
right = left ^ (scramble(right, KEY, r));
}
temp = left;
left = right;
right = temp;
}
< /code>
Петли теперь считаются раундами 1,2,3 (шифрование) и 3,2,1 (дешифрование). Однако дешифрование все еще не приводит к правильному открытому тексту.
Подробнее здесь: https://stackoverflow.com/questions/403 ... er-in-java
Небольшая реализация шифра Фейстеля в Java ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Дешифруя с помощью шифра потока с использованием той же клавиши шифра потока
Anonymous » » в форуме Python - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Небольшая проблема со сборкой APK с использованием expo/eas-cli в React Native.
Anonymous » » в форуме JAVA - 0 Ответы
- 84 Просмотры
-
Последнее сообщение Anonymous
-