Я реализую шифрование DES на Java с использованием BigIntegers.
Я смещаю бинарные ключи влево с помощью Java BigIntegers, выполняя метод BigInteger.leftShift(int n). Тональность N (Kn) зависит от результата сдвига Kn-1. Проблема, с которой я сталкиваюсь, заключается в том, что я распечатываю результаты после создания каждого ключа, и сдвиг не является ожидаемым результатом. Тональность разделена на 2 Cn и Dn (левый и правый соответственно).
Я специально пытаюсь сделать это: «Чтобы сделать сдвиг влево, переместите каждый бит на одну позицию влево, за исключением первого бита, который циклически перемещается в конец блока».
Кажется, что буквы О на конце прибавляются в зависимости от смены. Не уверен, как это исправить.
Полученные результаты:
c0: 11110101010100110011000011110
d0: 11110001111001100110101010100
c1: 111101010101001100110000111100
d1: 111100011110011001101010101000
c2: 11110101010100110011000011110000
d2: 11110001111001100110101010100000
c3: 1111010101010011001100001111000000
d3: 1111000111100110011010101010000000
c4: 111101010101001100110000111100000000
d4: 111100011110011001101010101000000000
c5: 11110101010100110011000011110000000000
d5: 11110001111001100110101010100000000000
c6: 1111010101010011001100001111000000000000
d6: 1111000111100110011010101010000000000000
c7: 111101010101001100110000111100000000000000
d7: 111100011110011001101010101000000000000000
c8: 1111010101010011001100001111000000000000000
d8: 1111000111100110011010101010000000000000000
c9: 111101010101001100110000111100000000000000000
d9: 111100011110011001101010101000000000000000000
c10: 11110101010100110011000011110000000000000000000
d10: 11110001111001100110101010100000000000000000000
c11: 1111010101010011001100001111000000000000000000000
d11: 1111000111100110011010101010000000000000000000000
c12: 111101010101001100110000111100000000000000000000000
d12: 111100011110011001101010101000000000000000000000000
c13: 11110101010100110011000011110000000000000000000000000
d13: 11110001111001100110101010100000000000000000000000000
c14: 1111010101010011001100001111000000000000000000000000000
d14: 1111000111100110011010101010000000000000000000000000000
c15: 11110101010100110011000011110000000000000000000000000000
d15: 11110001111001100110101010100000000000000000000000000000