1. 고전 암호
1) 치환 암호 : 평문의 문자를 다른 문자로 바꾸는 것
- 단일 문자 치환 암호 : 평문의 각 문자를 약속된 다른 문자로 치환하는 암호로 일대일 대응관계이다.
ex) 카이사르 암호 : 평문의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 치환.
- 다중 문자 치환 암호 : 평문의 한 문자가 암호문에서 여러 종류의 문자로 치환될 수 있다.
ex) 비제네르 암호 : 암호와화 복호화가 미리 정해진 키워드를 통해 반복하며 치환하여 이루어진다.
Ci=Ek(Mi)=(Mi+Ki)mod26
Mi=Dk(Ci)=(Ci−Ki)mod26
2) 전치 암호 : 평문을 구성하는 문자들의 순서를 재배열하여 암호문을 만든다.
3) 공격방법
- 전수 키 탐색 공격 : 평문과 암호문을 알 때, 키 공간을 전부 탐색하여 주어진 암호문과 같은 암호문을 생성하는 키를 찾는 방법으로 단순하지만 키 공간의 크기가 작다면 빠른 시간 안에 키를 찾고, 암호 해독이 가능하다.
- 빈도수 공격 : 암호문에서 단어가 등장하는 빈도를 분석하여 통계적으로 복호화하는 공격 기법으로 특수한 경우에서만 사용 가능하다.
2. 현대 암호
> 혼돈 : 암호문으로부터 평문의 정보를 유추하지 못하게 하는 성질.
> 확산 : 평문의 작은 변화가 암호문의 큰 변화로 이어지는 성질.
> 대칭키 암호 시스템 : 암호화와 복호화에 같은 키를 사용하는 암호 시스템
1) 장점 : 공개키 암호 시스템에 비해 속도가 빠르다.
2) 단점 : 송신자와 수신자가 사전에 키를 교환해야 한다는 제약이 있다. 이후에 새로운 상대와 통신할 때마다 계속 키를 생성해야 한다. 공개키 암호 시스템에서는 키 생성의 불편함이 없다.
3) 블록 암호 : 평문을 정해진 크기의 블록 단위로 암호화하는 암호
4) 스트림 암호 : 송신자와 수신자가 공유하는 데이터 스트림을 생성하고 이를 평문에 XOR 하는 암호
> 공개키 암호 시스템 : 송신자는 수신자의 공개키로 데이터를 암호화하여 수신자에게 전송하고, 수신자는 자신의 비밀키로 이를 복호화한다. 즉 암호화와 복호화에 사용되는 키가 다르다.
1) 장점 : 각자의 공개키와 개인키만 만들면 되므로 N명의 사람이 있을 때 2N개의 키만 필요해서 한 번 키를 생성하고 나면, 새로운 상대와 통신하더라도 자신이 키를 다시 만들어야 할 필요가 없다.
2) 단점 : 대칭키 암호 시스템에 비해 복잡한 연산이 필요하므로 속도가 느리다.
> 현대 암호 기능
1) 기밀성 : 허락된 사람(키를 갖고 있는 자)만이 정보를 열람할 수 있게 하는 기능을 의미.
2) 무결성 : 송신자가 보낸 정보에 변조가 일어나지 않았음을 의미. 즉, 데이터의 변화가 발생하지 않았음을 보증하는 기능.
3) 인증 : 정보를 주고 받는 상대방의 신원을 확인하는 기능을 의미.
4) 부인 방지 : 정보를 교환한 이후에 교환한 사실을 부인할 수 없게 하는 기능을 의미.
'Wargame > DreamHack' 카테고리의 다른 글
| WEB - phpreg (0) | 2025.02.03 |
|---|---|
| WEB - php7cmp4re (0) | 2025.02.03 |
| Level 1 : session-basic (0) | 2022.08.08 |
| Level 1 : dev tools-sources (0) | 2022.07.22 |
| Level 1 - cookie (0) | 2022.07.22 |
로딩중.....(버퍼링)
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!