00:19 비트 연산자
01:22 [실습] 비트 연산자
02:44 xor 연산을 이용한 대칭형 암호화
03:28 [실습] xor 연산을 이용한 대칭형 암호화
05:46 쉬프트 연산자
07:00 [실습] 쉬프트 연산
어떤 수에 같은 수로 ^ 연산을 두 번 하면 원래 수가 되는 특징이 있어요.
이를 이용하면 간단한 암호화와 복호화를 할 수 있죠.
이처럼 같은 키를 암호화와 복호화에 사용하는 것을 대칭형 암호화라 불러요.
◈ 간단한 대칭형 암호화
#include <stdio.h> int main() { int original = 0x12345678; //원본 데이터 int cryptograph = 0; //암호화 데이터 int decrypt = 0; //복화화 데이터 int key = 0x394A38C9; //암호화와 복호화에 사용할 키 printf("원본 데이터: %#X \n",original); cryptograph = original ^ key; //암호화 printf("암호화 데이터: %#X \n",cryptograph); decrypt = cryptograph ^ key; //복호화 printf("복호화 데이터: %#X \n",decrypt); return 0; }
◈ 실행 결과
원본 데이터: 0X12345678 암호화 데이터: 0X2B7E6EB1 복호화 데이터: 0X12345678
◈ 기본 연습 (정답 바로가기)
다음 프로그램의 출력 결과를 예측하시오.
#include <stdio.h> int main() { int a = 0x12345678; int b = 0x456789AB; int c = 0; int d = 0; c = a^b; printf("%#X \n", c); d = c^b; printf("%#X \n", d); return 0; }