Chapter 07 암호의 이해
01 암호의 개념과 원리
1. 암호화
- 암호문(cipher text): 비밀을 유지하기 위해 당사자만 알 수 있도록 꾸민 약속 기호
- 평문(plain text): 누구나 알 수 있게 쓴 일반적인 글이다.
- 암호화(encryption): 평문을 암호문으로 바꾸는 것
- 복화화(decryption): 암호문을 평문으로 바꾸는 것
- 암호화 알고리즘(encyption algorithm): 암호화나 복호화를 수행할 때 양쪽이 알고 있어야 할 수단
- 암호화 키(encyption key): 약속한 규칙

2. 기본 암호화 방식
- 전치법: 단순히 메시지에 들어 있는 문자의 위치를 바꾸는 방법이다. ex) 'apple'을 두 글자씩 앞뒤로 섞어 'palpe'
- 대체법: 메시지의 글자를 다른 글자로 대체하여 암호문을 작성하는 방법이다.
> 단일 치환 암호화, 다중 치환 암호화
3. 단일 치환 방식
- 알파벳 한 글자를 다른 한 글자로 대체하는 방식으로 암호화를 수행한다.
- 단일 치환을 사용한 암호화 방법에는 시저 암호화, 모노 알파베틱 암호화가 있다.
- 단일 치환 방식을 복호화 하는 방법 => 빈도 분석법
> 시저 암호화
- 알파벳 스물여섯 자를 세 자 또는 네 자씩 오른쪽으로 이동한 뒤 해당되는 글자로 변환하여 암호화하는 것
- 500년 동안이나 사용된 방법이지만, 암호화가 가능한 경우의 수가 26에 불과한 매우 취약한 방식

> 모노 알파베틱 암호화: 2개로 이루어진 문자 쌍을 다른 문자 쌍으로 대체하는 암호화 방법
- 알파벳 스물여섯 자를 각각 다른 알파벳에 대응시켜 알파벳을 암호화하는 것
- 모노 알파베틱 암호문을 복호화하려면 알파벳 대칭표가 있어야 함

4. 다중 치환 방식
단일 치환 방법과 달리, 암호화 키와 매핑하여 알파벳 하나를 여러 가지 다른 알파벳으로 대체해 암호화하는 방법이다. 다중 치환을 사용한 암호화 방법에는 비즈네르 암호화, 플레이페어 암호화가 있다.
> 비즈네르 암호화
- 26x26의 알파벳 대칭표를 이용하여 암호화하고자 하는 평문과 암호화 키를 매핑하고 암호화와 복호화를 수행하는 방식
- 암호문에 사용된 문자의 빈도가 일반적인 빈도 통계와 일치하지 않아 앞서 살펴본 단순한 빈도 분석법으로는 암호문 풀 수 없음


> 플레이페어 암호화
- 비즈네르보다 발전된 형태, 2개로 이루어진 문자 쌍을 다른 문자 쌍으로 대체하는 암호화 방법
- 보통 정사각형 암호판 안에 영어 알파벳을 배열한 것으로 대체하는 방식


02 대칭 암호화 방식
암호화 키와 복호화 키가 일치하는 방식이다.
- DES 알고리즘: 1977년 1월 NIST가 암호화 표준으로 지정했다. 64비트의 블록 암호화 알고리즘이며 56비트 크기의 키로 암호화한다.
- 트리플 DES 알고리즘: DES 암호화 키 2개를 이용하여 두 번의 암호화와 한 번의 복호화 또는 두 번의 복호화와 한 번의 암호화를 수행한다.
- AES 알고리즘: 128비트 암호화 블록, 다양한 키의 길이(128/192/256비트)를 갖춘 알고리즘이다. 2000년 10월, 벨기에의 빈센트 레이먼과 요안 다에먼이 개발한 Rijndael 알고리즘이 AES 알고리즘으로 선정되었다.
- SEED 알고리즘: 1999년 2월, 한국인터넷진흥원과 국내 암호 전문가들이 순수 국내 기술로 개발한 128비트 블록의 암호화 알고리즘이다. 전자 상거래, 금융, 무선 통신 등에서 전송되는 개인 정보와 같은 중요한 정보를 보호하려는 목적으로 개발.
- ARIA 알고리즘: 경량 환경 및 하드웨어의 효율성 향상을 위해 개발된 128비트 블록의 암호화 알고리즘이다. 2004년 국가표준기본법에 의거하여 국가표준(KS)으로 지정되었다.
- 양자 암호: 양자 암호에서 암호화 키를 공유하게 하는 프로토콜 => BB84
- IDEA 알고리즘: 128비트의 키를 사용하여 64비트의 평문을 8라운드로 돌려 64비트 암호문을 만든다. 모든 연산이 16비트 단위로 이루어지도록 하여 16비트 프로세서에서 구현하기 용이하며 주로 키 교환에 만든다.
- RC5 알고리즘: 입출력, 키, 라운드 수가 가변인 블록 알고리즘이다. 32비트, 64비트, 128비트 키가 사용되며 속도는 DES의 약 10배이다.
- Skipjack 알고리즘: 미국 국가안보국(NSA)에서 개발한 클리퍼 칩에 내장된 블록 알고리즘이다. 전화기 등의 음성을 암호화하는데 주로 사용되며 64비트의 입출력, 80비트의 키를 이용하여 총 32라운드의 암호화 과정을 수행한다.
- LEA 알고리즘: 고속 환경 및 모바일 기기 등의 경량 환경에서 기밀성을 제공하기 위해 국내에서 개발된 암호화 알고리즘이다. 128비트 데이터 블록으로 128비트, 192비트, 256비트 비밀 키를 사용할 수 있다.
03 비대칭 암호화 방식
암호화 키와 복호화 키가 한 쌍을 이룬다.
대칭 암호화 방식 약점 => 바로 암호화 키를 전달해야 한다는 점.
대칭 암호화 방식으로 평문을 암호화하면 복호화하는 사람도 암호화 키를 가지고 있어야 하기에
암호문을 만든 사람이 복호화할 사람에게 암호화 키를 전달해야 한다.
BUT, 암호화 키를 암호문과 함께 전달하는 것 = 보물 상자와 열쇠를 함께 보내는 것과 같기 때문
암호문과 암호화 키는 따로 보내야함 !!
- 비대칭 암호화 방식의 발견: 휫필드 디피와 마틴 헬먼이 비대칭 암호화 방식을 통한 키 교환 아이디어를 고안했다.
비대칭 암호화 알고리즘에서는 언제나 한 쌍의 개인 키와 공개키로 암호화와 복호화가 이루어짐.
철수의 개인 키로 암호화된 메시지는 철수의 개인 키로 복호화되지 않고 오직 철수의 공개 키로만 복호화됨.
철수의 공개 키로 암호화된 메시지는 오직 철수의 개인 키로만 복호화됨.


- RSA 알고리즘
: 중요 정보를 소수 2개로 표현한 후 두 소수의 곱을 힌트와 함께 전송하여 암호로 사용한다.
충분히 큰 두 소수의 곱에서 두 소수를 찾기 어려운 점을 이용하였다.
오늘날 산업 표준으로 사용하고 있으며 충분히 큰 두 소수의 곱에서 두 소수를 찾기 어려운 점을 이용한 것으로 소수 250자리가 사용된다.
- 비대칭 암호화의 기능
- 기밀성 확보를 위한 암호화: 수신자의 공개 키로 암호화하여 송신한다.
EX) 철수는 영희의 공개 키로 편지를 암호화한 후 보내면 영희는 자신이 가진 개인 키로 철수의 편지를 복호화하여 읽을 수 있음.
- 부인 방지 확보를 위한 암호화: 발신자의 개인 키로 암호화하여 송신한다.
EX) 철수의 개인 키로 암호화된 편지는 철수의 공개 키로만 열 수 있으므로, 영희는 받은 편지가 철수의 공개 키로 풀려야만 그 편지는 철수가 보낸 편지라고 확신할 수 있다.
- 암호화 키와 관련된 용어
- 대칭 키: 암호화할 때 쓰는 키와 복호화할 때 쓰는 키가 같은 것
- 비밀 키: 암호화할 때와 복호화할 때 사용되는 키가 같으므로 암호문이 효력을 발휘하려면 발신자와 수신자 사이의 키에 대한 정보가 비밀로 유지
- 비대칭 키: 암호화할 때 쓰는 키와 복호화할 때 쓰는 키가 다른 것 (공개 키와 개인 키를 묶어 비대칭 키)
- 공개 키와 개인 키: 발신자와 수신자가 각각 한 쌍을 소유

04 해시
* 해시(Hash): 하나의 문자열을 이를 상징하는 더 짧은 길이의 값이나 키로 변환하는 것.
* 해시의 특징
- 정보를 숨기기 위한 암호와 달리 해시는 정보의 위조, 변조를 확인하기 위한 것으로, 보안에서 해시를 사용하는 목적은 무결성 확보에 있다.
-> 보안에서는 해시가 완전히 똑같은 데이터만 해시 값이 같고 조금만 달라도 해시 값이 전혀 다르다는 점을 이용하여, 데이터가 임의로 변경되지 않았다는 데이터 무결성을 확인하기 위한 도구로 사용한다. 물론 해시 충돌과 같은 예외 상황 발생 가능
- 평문의 길이가 달라도 해시 결과 값의 길이는 같다. (32개 문자로 길이 같음)
- 평문의 내용이 조금만 달라도 해시 값이 완전히 달라진다.
* 해시의 종류
- MD5 알고리즘: 로널드 리베스트가 공개 키 기반 구조를 만들기 위해 RSA와 함께 개발한 것으로 32비트 컴퓨터에 최적화되었다.
- SHA(Secure Hash Algorithm): 160비트의 값을 생성하는 해시 함수로 데이터를 512비트의 블록으로 입력한다. MD5보다 조금 느리지만 좀 더 안전하다.
* 스테가노그래피(Steganography): 전달하려는 정보를 이미지, 오디오 파일에 인간이 감지할 수 없도록 숨겨 상대방에게 전달하는 기술을 총칭한다. 일반 암호화 방법은 암호화를 통해 정보의 내용을 보호하는 기술인 반면 이 기술은 정보의 존재 자체를 숨기는 보안 기술이다. 스테가노그래피(stegano/graphy)라고 하는데, 이는 '덮다'라는 뜻의 그리스어와 '쓰다'라는 뜻이 합쳐진 말.
연습문제
1. 전치법과 대체법에 대해 설명하시오.
전치법 : (transposition) 단순히 메시지에 들어 있는 문자 위치를 바꾸는 방법. ex) 'apple'을 두 글자씩 앞뒤로 섞어 'palpe'
대체법 : (substitution) 메시지의 글자를 다른 글자로 대체하여 암호화하는 방법.
2. 모노 알파 베틱 암호화를 이용할 때 가능한 방법은 몇 가지인가? 2) 26! 가지
3. 단일 치환 암호법을 복호화하는 방법은 무엇인가? 3) 빈도 분석법
4. 다음 암호문을 플레이페어 알고리즘을 이용하여 복호화하시오(암호화 키: hacking)

5. 다음 중 대칭 암호화 방식이 아닌 것은? 3) LFSR 알고리즘
6. DES 알고리즘은 몇 비트의 암호화 알고리즘이며, 몇 비트의 암호화 키를 사용하는가? 3) [64,56]
9. 공개 키 암호화 구조에서 송신자는 수신자에게 정보를 암호화하여 전송하기 위해 어떤 암호를 사용해야 하는가? 3) 수신자의 공개 키
10. 전자상거래, 금융, 무선 통신 등에서 전송되는 개인 정보와 같은 중요한 정보를 보호하기 위해 한국 인터넷진흥원과 국내 암호 전문가들이 순수 국내 기술로 개발한 128비트 블록의 암호화 알고리즘은 무엇인가? 3) SEED
11. 양자 암호에서 암호화 키를 공유하게 하는 프로토콜은 무엇인가? 2) BB84
12. 정보보호기술은?
* 스테가노그래피(Steganography): 전달하려는 정보를 이미지, 오디오 파일에 인간이 감지할 수 없도록 숨겨 상대방에게 전달하는 기술을 총칭한다. 일반 암호화 방법은 암호화를 통해 정보의 내용을 보호하는 기술인 반면 이 기술은 정보의 존재 자체를 숨기는 보안 기술이다. 스테가노그래피(stegano/graphy)라고 하는데, 이는 '덮다'라는 뜻의 그리스어와 '쓰다'라는 뜻이 합쳐진 말.
13. 디피와 헬먼의 키 공유에 관한 기본 아이디어에 따르면 공개된 수가 5이고 철수가 생각한 수가 2, 영희가 생각한 수가 6일 때 공유된 키 값은 얼마인가? 244,140,625


-> 이 과정으로
철수는 5의 2승을 영희에게 보낸다. -> 영희한테 받은 5의 6승에 2 제곱한다.
5*5 = 25를 영희한테 15625 * 15625 = 244,140,625
영희는 5의 6승을 철수에게 보낸다. -> 철수한테 받은 5의 2승에 6 제곱한다.
5의 6승을 철수한테 25의 6승 = 244,140, 625
14. RSA 알고리즘의 기본 아이디어를 소수와 관련하여 설명하시오.
중요 정보를 소수 2개로 표현한 후 두 소수의 곱을 힌트와 함께 전송하여 암호로 사용
-기밀성 확보를 위한 암호화: 수신자의 공개 키로 암호화하여 송신
-부인 방지 확보를 위한 암호화: 발신자의 개인 키로 암호화하여 송신
15. 수신자의 공개 키로 메일을 암호화하여 전송할 때 얻을 수 있는 기능은 무엇인가? 1) 기밀성
16. 부인 방지에 대해 설명하시오
부인방지란 "발뺌방지"라는 말과 같다. 발신자가 받았다는 적이 없다고 발뺌하는 것을 막는 것. 증거
17. 다음 중 해시에 관한 설명으로 옳지 않은 것은? 3) TLS 없음
'알아두면쓸데있는신기한잡학사전 > 정보처리기사' 카테고리의 다른 글
[정보보안개론] 08 전자 상거래 보안 (0) | 2022.06.13 |
---|---|
2022 정보처리기사 실기 Chapter 12 제품 소프트웨어 패키징 (0) | 2022.05.07 |
2022 정보처리기사 실기 Chapter 11 응용 SW 기초 기술 활용 (0) | 2022.05.07 |
2022 정보처리기사 실기 Chapter 10 애플리케이션 테스트 관리 (0) | 2022.05.06 |
2022 정보처리기사 실기 Chapter 09 소프트웨어 개발 보안 구축 (0) | 2022.05.06 |