DES를 이용한 GPS 위치 정보 암호화 송신 2조 김민수 문형진 안인석 조우람
목차 목표 개발 및 구현 환경 요구사항 설계 전체적인 처리 구조 DES 암호화 알고리즘 암호 운용모드 분석 결론
목표 이동할 때마다 GPS 신호를 수신하여 GPS 신호가 변경되면 이를 암호화 하여 송신하는 시스템을 구축한다.
개발 및 구현 환경 개발 환경 구현 환경 OS : Ubuntu 9.10 & Centos IDE : Eclipse C/C++ COMPILER : gcc, Arm-linux-gcc 구현 환경 Hardware : EMPOS2, GPS 모듈
요구사항 몇 시간 동안은 해커에게 추적당하지 않아야 한다. 암호화와 복호화에 걸리는 시간은 최소한 으로 하여야 한다. 주기적인 고정 길이의 데이터 암호화 송신
설계 전체적인 처리 구조 위성 신호 GPS 모듈 PC 암호화된 데이터 저장 Empos2 embedded kit 암호화 송신
DES 암호화 알고리즘 - Key 생성 - Input Key( 64bit ) 64bit에서 8의 배수 bit를 PC_1 permutation( 56bit ) 28bit의 두블럭으로 분리하여 각각을 순환이동 시킴 Shift ( 28 bit) Shift ( 28 bit) PC_2 permutation( 56bit ) 분리된 28bit 블록을 56bit로 합침 Output Key( 56bit )
P_BOX permutation(32bit) DES 암호화 알고리즘 - f 함수 연산 - Li (32bit) Ri (32bit) Key (56bit) 32bit를 48bit로 확장 치환 E permutaition (48bit) KEY값과 XOR 연산 + S_BOX (32bit) S_BOX 치환 Ri 값을 그대로 사용 P_BOX permutation(32bit) P_BOX 치환 + Li값과 XOR 연산 Li+1 (32bit) Ri+1 (32bit)
복호화 시에는 L과 R을 서로 바꾸어 f 함수 적용 DES 암호화 알고리즘 - DES - Input Data (64bit) Key (56bit) 초기치환 IP permutation (64bit) 복호화 시에는 L과 R을 서로 바꾸어 f 함수 적용 Li(32bit), Ri(32bit) Round 수 만큼 f 함수 반복 f i= Round IP_Inverse Permutation(64bit) 역치환 Output Data (64bit)
DES 암호화 알고리즘 - 3DES - Plaintext Ciphertext DES(encryption) Key1 DES(decryption) Key1 DES(decryption) Key2 DES(encryption) Key2 DES(encryption) Key1 DES(decryption) Key1 Ciphertext Plaintext < 암호화 과정 > <복호화 과정 >
암호 운용모드 - ECB(Electric Code Book mode) - Key Plaintext 동일한 평문에 대해 똑같은 암호문 출력 DES Ciphertext
암호 운용모드 - CBC( Cipher Block Chaining mode ) - < 암호화 > Key IV Plaintext Key Plaintext … Encryption Encryption Ciphertext Ciphertext 암호문이 다음 블록의 평문의 암호화에 연쇄적으로 영향을 준다
암호 운용모드 - CBC( Cipher Block Chaining mode ) - < 복호화 > Key IV Ciphertext Key Ciphertext … Decryption Decryption Plaintext Plaintext
암호 운용모드 - OFB( Output Feed Back mode ) - < 암호화 > Plaintext Key IV Plaintext Key … Encryption Encryption Ciphertext Ciphertext 초기 벡터와 그 암호화 출력 값을 입력 값으로 하여 연속적으로 암호화 후 평문과 XOR 연산 수행 하여 암호문 생성 암호화와 복호화의 처리가 동일하다.
분석 암호 운용 모드 별 출력된 암호문 분석. Key값의 전수 조사 예상 소요시간 분석 구현한 암호화 프로그램으로부터 수행 시간 등의 데이터를 추출하였다. DES와 3DES의 수행 시간 측정. 암호 운용 모드 별 수행 시간 측정. F함수 라운드 수에 따른 수행 시간 측정. 암호 운용 모드 별 출력된 암호문 분석. Key값의 전수 조사 예상 소요시간 분석
측정된 수행시간
암호 mode별 출력 결과 비교 ECB mode 출력 결과 CBC mode 출력 결과
암호 mode별 출력 결과 비교 ECB mode 출력 결과 OFB mode 출력 결과 다른 암호문이 출력되는 것을 볼 수 있다.
DES 10kb 평문 변환 시간 ms Round
3DES 10kb 평문 변환 시간 ms Round
OFB KeyStream 생성 시간과 미리 생성된 KeyStream XOR 수행 시간 비교(1000kb) ms Round
Key 순차 검색 예상 시간. - Key값은 알파벳과 숫자의 조합일 경우로 가정 h Round
결론 빠른 위치 정보 전송을 위해서는 암호화에 걸리는 시간이 짧아야 한다. 하지만 이를 위해 단순한 암호화 알고리즘을 사용하면 암호key 검색을 위한 비용이 줄어들게 된다. 위치정보는 실시간으로 갱신되어 전송하여야 하며 이때마다 사용자가 암호를 입력 할 수는 없으므로 결과적으로 암호는 메모리 상에 저장하여 사용 할 수 밖에 없다. 따라서 암호화 알고리즘을 단순화 시키지 않으면서 한번 만든 KeyStream을 재사용 하여 암호화와 복호화에 걸리는 시간이 짧은 3DES OFB(Output Feed Back) mode 의 사용이 적합하다고 판단한다.
최종 설계 Login 암호화 Logout Exit GPS 위치 정보 수신 Key 입력 GPS 정보 KeyStream 생성