암호화 알고리즘
Deadline: July 13, 2022 5:00 PM
Status: Done
암호화란?
평문을 암호문으로 변환하는 과정을 말합니다.
사용자가 입력한 데이터를 알아볼 수 없는 데이터로 변경하는 과정입니다.
사용하는 이유는 정보를 보호하기 위해서입니다.
복호화란?
암호문을 다시 평문으로 변환하는 과정입니다.
암호화 분류와 암호화 알고리즘
단반향 암호화
암호화를 수행하고 나온 데이터를 다시 원래의 데이터로 돌릴 수 없는 암호화 방식입니다
즉, 복호화가 불가능한 암호화입니다.
단반향 암호화는 데이터가 변조되지 않았음을 나타낼때 사용합니다.
왜냐하면, 단방향 암호화에서 나온 데이터는 원래 데이터의 1bit만 바뀌어도 전혀 다른 암호문이 나오기 때문입니다.
Hash 함수이 단방향 암호화에서 가장 알려져 있습니다.
Hash 함수
임의의 크기를 가진 데이터를 고정된 크기의 데이터로 변환시키는 함수입니다.
입력값의 길이가 달라도 출력 값은 언제나 같은 길이로 변환합니다.
동일한 값이 입력되면 언제나 동일한 출력 값을 보장합니다.
Hash 함수 종류 1 : MD5 알고리즘
Message-Digest algorithm 5의 줄임말
임의 길이의 메시지를 입력받아서 128비트짜리 고정 길이 값을 출력합니다.
입력 메시지 길이는 제한이 없습니다.
주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 사용됩니다.
현재는 보안 관련 용도로는 권장하지 않습니다.
Hash 함수 종류 2 : SHA 알고리즘
Secure Hash Algorithm
MD5의 취약성을 개선하기 위해 미국 국가안보국에서 만든 미국 표준 알고리즘
해시 값의 크기는 SHA 알고리즘에 따라오는 bit 수만큼으로 나옵니다.
SHA 0~3까지 있고 현재는 SHA3이 권장되어진다.
양방향 암호화
암호문을 복호화할 수 있도록 구현된 암호 알고리즘입니다.
데이터를 인가된 사용자만 볼 수 있도록 하기 위한 장치입니다.
양방향 알고리즘에는 크게 대칭키 암호와 비대칭키 암호 알고리즘이 있습니다.
대칭키 암호 알고리즘
하나의 키로 암호화와 복호화를 모두 수행하는 것을 말합니다.
암호화 할 때 암호키와 복호화 할 때 해독키가 같습니다.
따라서 이 키는 절대로 외부에 유출되지 않도록 관리해야 하기 때문에 비밀키라고 부른다.
쓰이는 키 크기가 상대적으로 작고 암호 알고리즘 내부 구조가 단순합니다. 그래서 시스템 개발 환경에 용이하고, 비대칭 암호화와 복화화 속도가 빠릅니다.
하지만 키 관리에 어려움이 있습니다. 그 이유는 교환 당사자간에 동일한 키를 공유해야합니다.
잡은 키 변경이 있는 경우에 불편함을 초래합니다.
대칭키 암호 알고리즘 종류 1 : DES 알고리즘
Data Encryption Standard
평문을 64비트로 나눠 56비트의 키를 이용해서 다시 64비트의 암호문을 만들어 내는 알고리즘이다.
블록 암호 기법을 사용하고 16단계의 파이스텔 네트워크를 거쳐 암호화를 수행합니다.
대칭키 암호 알고리즘 종류 2 : 3DES 알고리즘
DES 알고리즘을 3중으로 만들어 DES를 보완한 암호 알고리즘입니다.
암호화 → 복호화 → 암호화 하는 방식으로 암호화를 합니다.
대칭키 암호 알고리즘 종류 3 : AES 알고리즘
DES에 대해 여러 가지 공격 방법들이 생기면서 나온 암호 알고리즘입니다.
고급 암호화 표준(Advanced Encryption Standard)이라고 불리는 AES 암호 알고리즘은 DES를 대체한 암호 알고리즘입니다.
128비트 암호화 블록, 다양한 키의 길이(128, 192,256)를 갖춘 대칭형 암호 알고리즘입니다.
대입 치환 SPN(Substitution-Permutation Network)을 사용하여 암호화하는 방법이고 전체 bit를 암호화 하는 방식입니다.
비대칭키 암호 알고리즘
공개키 암호 알고리즘입니다.
비대칭키는 암호화할 때와 복호화할 때의 키가 서로 다른 키를 사용하는 걸 의미합니다.
키에는 공개키(public key)와 개인키(private key)라는 한 쌍의 키가 존재합니다.
하나는 특정 사람만이 가지는 개인(비밀)키이고 다른 하나는 누구나 가질 수 있는 공개키입니다.
공개키로 암호화를 선택했다면 데이터 보안에 중점을, 개인키로 암호화를 했다면 안전한 전자서명을 통한 인증 과정에 중점을 둔 것입니다.
비대칭키 암호 알고리즘 종류 : RSA 알고리즘
창시자들의 이름 앞글자를 따서 지었다(Ron Rivest, Adi Shamir, Leonard Adleman)
암호화뿐만 아니라 전자서명이 가능한 최소의 알고리즘입니다
RSA는 큰 정수의 소인수 분해의 난해함에 기반하여, 공개키만을 가지고는 개인키를 쉽게 짐작할 수 없도록 디자인되어 있습니다.
하지만 양자 컴퓨터가 본격적으로 실용화되면 RSA 알고리즘은 무용지물이 될 가능성이 있습니다.