2015.06.19. 09:54
학교에서 정보보호 시간에 DES에 대해 배웠는데 한번 직접 짜 봤습니다.
약 2시간 정도 걸렸네요~
선생님이 만드신 PPT자료를 보고 만들었는데 자료에는 비트순서가 잘 나와있지 않아...
실제 사용되는 DES알고리즘과는 차이가 있습니다.
(2016-03-21 수정 - Standard에 맞게 수정함)
이건 그냥 DES알고리즘 자체만 구현한 것이니 그냥 참고용으로만 보세요~
절대! 이 소스를 실제상황에서 사용하면 안됩니다!
솔직히 효율성도 떨어지는 소스구요...ㅠ
비트 순서 바꾸는 방법이 잘 생각이 안나 미리 지정된 테이블을 통해 막무가네로 바꿔버립니다.ㅎ
KEY : 0f 15 71 c9 47 d9 e8 59 ROUND KEY : 78 33 c3 20 da 70 2b 1a 74 ca 48 d8 8c 78 d8 81 d3 1d 16 67 78 93 16 a0 ce 5d 01 d8 0b 25 4b ab 4d 12 6a 9c 09 f4 8b 71 31 91 71 0d ea a3 20 2b 12 9a b8 33 47 c3 9c 38 66 1e 81 03 a2 6e 4c c6 65 44 48 77 24 68 a3 c8 c0 9d 79 f0 d4 0b c5 e2 63 4e 16 2a a3 df 82 9c 79 68 a6 12 0b 4d 4c 25 PLAIN TEXT : 02 46 8a ce ec a8 64 20 CIPHER TEXT : da 02 ce 3a 89 ec ac 3b DECODE TEXT : 02 46 8a ce ec a8 64 20 |
대충 잘 되네요~ㅎ
아 근데 전 DES가 56bit key size을 사용해서 진짜 56bit(7byte)을 입력키로 사용하는 줄 알았는데
DES을 배우다 보니 key 입력을 64bit(8byte)으로 받고 중간중간8bit을 잘라 56bit으로 바꿔 사용하네요~
'개발 및 운영 > 프로그래밍' 카테고리의 다른 글
라이브러리 없이 mktime등 time함수 구현 (0) | 2016.02.21 |
---|---|
프록시 환경 libwebsockets 에서 실제 클라이언트 IP 헤더 패치 (0) | 2015.07.31 |
FreeType 라이브러리의 출력 문제..ㅠㅠ (0) | 2015.07.31 |
C소스 - 소수구하기 (0) | 2015.07.31 |
AVR에서 I2C Detect (0) | 2015.07.31 |
댓글