암호화? 복호화? 암호(Cryptography)란?
-
암호(Cryptography)란
0과 1로 이루어진 이진수 데이터
를수학적 계산을 통한 비트 변경을 수행
하는 것을 말합니다. 정상적인 데이터(평문 - Plaintext)의 2진수 데이터를 암호화라는 과정으로 데이터를 변경하고, 복호화라는 과정을 통해 데이터를 원래대로 돌리는 기술을 의미합니다. -
암호화(Encrypt)
와복호화(Decrypt)
는 각각 다음과 같이 설명할 수 있습니다.- 암호화(Encrypt)는 사용자가 입력한 데이터를 알아볼 수 없는 데이터로 변경하는 과정을 말합니다.
- 복호화(Decrypt)는 암호화된 데이터를 정상적인 데이터로 변경하는 과정을 말합니다.
-
암호에는
단방향 암호
와양방향 암호
로 두 가지가 있습니다.-
단방향 암호(해시)는 암호화를 수행하고 나온 데이터를 다시 원래의 데이터로 돌릴 수 없는 암호화 방식을 말합니다. 또한 단방향 암호화에서 나오는 데이터는 원래 데이터의
1bit만 바뀌어도 전혀 다른 암호문
으로 변하기 때문에, 보통 데이터가 변조되지 않았음을 나타낼때 사용합니다. -
양방향 암호는 비인가된 사용자로부터
데이터 통신을 보호받기 위해
사용하는 암호 기법입니다. 평문으로 되어 있는 데이터를 암호화하게 되면, 알 수 없는 임의의 데이터로 변경되게 되고, 복호화를 수행하면 암호화되어 있는 데이터가 다시 원래의 데이터로 돌아오게 됩니다. 이를 위한 양방향 암호화에서는암호화키, 복호화키
라는 특정한 데이터를 요구하게 됩니다.
-
단방향 암호(해시)는 암호화를 수행하고 나온 데이터를 다시 원래의 데이터로 돌릴 수 없는 암호화 방식을 말합니다. 또한 단방향 암호화에서 나오는 데이터는 원래 데이터의
단방향 암호화? 종류는 어떤 게 있을까?
-
단방향 암호로 잘 알려진 알고리즘으로 해시 알고리즘들이 있습니다. 이러한 해시 알고리즘은 암호화는 가능하지만, 복호화가 불가능하다는 점을 이용하여
데이터의 무결성
을 검증하기 위함입니다. 데이터의 무결성이란 데이터가 허락된 사용자로 인해 수정이 제대로 이루어졌는지, 허가되지 않은 사용자가 무단으로 데이터를 조작했는지 여부를 보는 것입니다. 이러한 해시는 이러한 무결성이 훼손됐는지 아닌지 알 수 있도록 하는 장치입니다. -
해시 함수/알고리즘(hash function/algorithm)은 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수입니다. 해시 함수에 의해 얻어지는 값은 해시 값, 해시 코드, 해시 체크섬 또는 간단하게 해시라고 합니다. 이러한 해시는 여러가지 알고리즘이 있는데 대표적으로
SHA 시리즈와 MD5
가 있습니다. -
MD5의 특징을 설명하면 다음과 같은 게 있습니다.
- 해시 값의 크기는
128bit, 즉 32Byte
입니다. 해시의 특징을 그대로 가지고 있어서, 입력한 값의 크기에 종속되지 않습니다. 따라서 어떠한 입력값을 받더라도 해시값은 일정한 크기를 유지합니다. - 단, 해시 값은 입력받은 데이터가
1bit 라도 다르게 되면, 전혀 다른 값
이 나타나게 됩니다.
- 해시 값의 크기는
-
SHA의 특징을 설명하면 다음과 같은 게 있습니다.
- 해시 값의 크기는
SHA 알고리즘에 따라오는 bit 수 만큼 달라지게
됩니다. SHA 해시 알고리즘의 비트는128, 256, 384, 512
가 있습니다. 각 숫자에 맞는 비트 수의 해시 값이 출력됩니다. - 해시 함수의 버전은 SHA 0 ~ SHA 3까지 있으며, 현재는 SHA2가
사용 가능
하고, SHA3가권장
되고 있으며, SHA0과 1은 사용하지 않도록 하고 있습니다.
- 해시 값의 크기는
양방향 암호화? 종류는 어떤 게 있을까?
-
양방향 암호는
암호문을 복호화 할 수 있도록 구현된 암호 알고리즘
을 말합니다. 고대 암호의 기초부터 현재의 암호에 이르기까지 데이터를 인가된 사용자만 볼 수 있도록 하기 위한 장치입니다. -
양방향 암호 알고리즘은 주로 3DES와 AES가 잘 알려져 있습니다. 또한 RSA와 DSA 등이 있습니다. 이러한 알고리즘은 키의 성질에 따라 구분되는데, 크게
대칭키 암호 알고리즘
과비대칭키 암호 알고리즘
으로 구분할 수 있습니다. -
대칭키 암호 알고리즘의 종류는 다음과 같이 있습니다.
- DES(Data Encryption Standard) 혹은 3DES(Triple Data Encryption Standard)는 대칭키 암호 알고리즘입니다. 평문을 64비트로 나누어 56비트 키를 이용해 다시 64비트의 암호문을 만들어내는 알고리즘입니다.
- AES(Advanced Encryption Standard)는 DES의 안전성에 대해 여러가지 공격 방법들이 발표되며 미국의 NIST 기관에서 고안한 암호 알고리즘입니다.
-
비대칭키 암호 알고리즘의 종류는 다음과 같이 있습니다.
- RSA(Rivest Shamir Adleman) 암호 알고리즘은 대표적인 비대칭키 암호 알고리즘입니다. DES와 AES의 송신자와 수신자가 알고 있는 하나의 키(동일한 키)를 이용하여 메시지를 암호화하고 복호화하는 구조와 상반됩니다.
- RSA는 암호화 하는 키값과 복호화 하는 키값이 서로 다르며, 따라서 두 가지 키를 가지고 암/복호화를 수행하게 됩니다.