책에 나와있는 substitution table이 잘못됏으니까 아래 테이블 참고하세요
private byte[] parityBitDropTable = {
57, 49, 41, 33, 25, 17, 9, 01,
58, 50, 42, 34, 26, 18, 10, 02,
59, 51, 43, 35, 27, 19, 11, 03,
60, 52, 44, 36, 63, 55, 47, 39,
31, 23, 15, 07, 62, 54, 46, 38,
30, 22, 14, 06, 61, 53, 45, 37,
29, 21, 13, 05, 28, 20, 12, 04};
private byte[] initialPermutationTable = {
58,50,42,34,26,18,10,2,
60,52,44,36,28,20,12,4,
62,54,46,38,30,22,14,6,
64,56,48,40,32,24,16,8,
57,49,41,33,25,17,9,1,
59,51,43,35,27,19,11,3,
61,53,45,37,29,21,13,5,
63,55,47,39,31,23,15,7
};
private byte[] finalPermutationTable = {
40,8,48,1