암호에 대한 이해
암호문 (Cipher Text) : 비일을 유지하기 위해 당사자 끼리만 알수 있도록 꾸민 약속 기호
암호화 (Encryption) : 평문을 암호문으로 바꾸는 것
복호화 (Decryption) : 암호문을 평문으로 바꾸는 것
암호화 알고리즘 : 암호화를 수행하거나 복호화를 수행할떄 양쪽이 서로 알고있어야 할 수단
암호화 키 : 약속한 규칙
암호의 발전사
- 전치법
전치법은 단순히 메시지에 있는 문자의 위치를 바꾸는 방법이다.
- 대체법
대체법은 해당 글자를 다른 글자로 대체하여 암호화 하는 방법이다.
<단일 치환>
알파벳 한글자를 다른 하나의 글자로 대체하는 방식으로 암호화를 수행 (시저 암호, 모노알파베틱 암호)
<다중 치환>
한 글자가 암호화키와의 맵핑에 따라 여러가지 다른문자로 대체되어 암호화(비즈네르, 플레이페어 암호)
대칭 암호화 방식
- DES 알고리즘
DES는 64비트의 블록 암호화 알고리즘으로 56비트 크기의 암호화키로 암호화 된다. 따라서 생성 가능한 암호화키는 최대 256(약 7200조)가지이다. 암호화는 하나의 블록인 64비트를 L1과 R1으로 나눈뒤, R1을 암호화키로 생성한 S=BOX를 통해 f함수를 만들어 치환한 후 이 값을 L1과 논리합하고, L2와 R2의 위치를 바꾸는 두가지 기본 변환을 통해 이루어진다.
- 트리플 DES 알고리즘
트리플 DES 알고리즘은 DES의 복호화가 가능해짐에 따라 AES가 나오기 전까지 임시로 사용한 암호화 알고리즘이다.
- AES 일고리즘
AES 알고리즘은 DES의 암호화 강도가 점점 약해지면서 새롭게 개발된 알고리즘이다.
- SEED 알고리즘
SEED 알고리즘은 전자상거래, 금융, 무선통신등에서 전송되는 개인정보와 같은 중요한 정보를 보호하기 위해, 개발된 128비트 블록의 암호 알고리즘이다.
- ARIA 알고리즘
ARIA 알고리즘은 전자정부 구현등으로 다양한 환경에 적합한 암호화 알고리즘이 필요함에 따라 개발한 국가 암호화 알고리즘이다.
- IDEA 알고리즘
IDEA 알고리즘은128비트의 키를 사용해 64비트의 평문을 8라운드에 거쳐 64 비트의 암호문으로 만든다. 모든 연산이 16비트 단위로 이루어지도록 하여 16비트 프로세서에서 구현이 용이하며 주로 키 교환에 쓰인다.
- RC5 알고리즘
비교적 간단한 연산으로 빠른 암호화와 복호화 기능을 제공하며, 모든 하드웨어에 적합하다. 입축력, 키 , 라운드 수가 가변인 블록 알고리즘 RC5의 속도는 DES의 약 10배이다.
비대칭 암호화 방식
AES 알고리즘이 개발되면서 대칭 암호화 방식은 현재까지 복호화가 거의 불가능한 알고리즘이라고 인정받는 수준에 이르렀다. 하지만 대칭 암호화방식에는 한가지 큰 약점이 있는데, 바로 암호화 키를 전달하는 문제이다.
즉 대칭 암호화 방식을 통해 암호화를 하면 복호화 하는 사람도 암호화키를 가지고 있어야 하므로, 암호문을 만든사람이 복호화 할 사람에게 암호화 키를 전달해야 한다. 그런데 이 과정이 리스크가 있을 수 있다는 것이 취약점이다. 그리하여 개발된 것이 비대칭 암호화 방식이다.
RSA 알고리즘
RSA 암호는 기본적인 정수론, 즉 소수를 이용한다. RSA 암호의 아이디어는중요 정보를 두개의 소수로 표현한 후, 두 소수의 곱을 힌트와 함꼐 전송해 암호로 사용하는 것이다.
비대칭 암호화의 구조
RSA 알고리즘이 나오면서 정립된 비대칭 암호화 알고리즘은 각 개인이 공개키와 개인키를 소유하는 구조를 갖는다. 또한 각자 소유하고 있는 공개키와 개인키에는 또 하나의 특징이 있는데, 대칭키 암호화 알고리즘과 달리 메시지의암호화와 복화화가 같은 키로 이루어지지 않는 다는 것이다. 비대칭 암호화 알고리즘에서는 언제나 한쌍의 개인키와 공개키에 의해 암호화와 복호화가 이루어지기떄문에 자신의 개인키로 암호화된 메시지는 본인의 개인키로 복호화되지않고, 오직 본인의 공개키로 복호화된다.
비대칭 암호화의 기능
기밀성
대칭키 암호화 알고리즘과 마찬가지로 비대칭 암호화 알고리즘의 가장 기본적인 기능은 기밀성이다. 이떄 비대칭 암호화 알고리즘은 대칭키 암호화 알고리즘에 비해 좀더 엄밀한 기밀성을 제공한다.
부인방지
부인방지는 쉽게말해서 '발뺌에 대한 방지'라고 하수 있다.
해시 ( Hash )
해시는 하나의 문자열을, 이를 상징하는 더 짧은 길이의 값이나 키로 변환하는 것이다. 해시는 암호화 와는 다른 개념인데, 암호가 정보를 숨기기 위한 것이라면 해시는 정보의 위변조를 확인하기 위한 방법이다.
- 해시의 특징
해시는 평문의 길이에 상관없이 해시 결과의 길이가 모두 같고, 평문이 아주 조금만 달라도 결과를 추측하기 불가능할 정도로 다르게 나타난다. 대표적인 해시 알고리즘인 MD5가 있다.
- 해시의 역할
사실 해시는 데이터베이스의 탐색을 효과적으로 구현하기 위해 만든 것이다. 하지만 보안에서의 해시는 데이터 베이스에서 사용되는 해시와 기본알고리즘은같지만 추구하는 목적이 완전히 다르다. 보안에서는 해시를 무결성 확인을 위한 알고리즘으로 사용한다. 여기서 무결성이란 오직 허가된 사람들에게만 정보가 개방되고 또 그들에 의해서만 수정될수 있음을 보장한다는 의미이다. 하지만 해시가 제공하는 무결성의 개념은 데이터가 변하지 않고 똑같음을 확인하는 것으로, 데이터의 해시값은 절대 변하지 않는다.
'Study > Book' 카테고리의 다른 글
Operating Sysyem Concepts //컴퓨터 시스템의 구성 (0) | 2015.02.03 |
---|---|
정보보안개론 0x08 (0) | 2015.01.24 |
정보보안개론 0x06 (0) | 2015.01.23 |
정보보안개론 0x05 (0) | 2015.01.22 |
정보보안개론 0x04 (0) | 2015.01.21 |