암호 알고리즘
암호 알고리즘(Cryptographic Algorithm)의 개념
- 평문(Plaintext)을 암호문(Ciphertext)으로 바꾸고, 암호문을 다시 평문으로 바꿀 때 사용되는 알고리즘을 의미
- 평문을 암호문으로 바꾸는 과정을 암호화(Encryption)라고 하고, 암호문을 다시 평문으로 바꾸는 과정을 복호화(Decryption)라고 함
- 암호화 및 복호화 과정에 암호키(Cryptographic key)가 필요함
공개키(Public Key, 비대칭키) 암호화 기법
- 암호키와 해독키가 서로 다른 기법으로 키 개수는 2N개가 필요함
- 비대칭키 암호화 기법 또는 공개키(공증키) 암호화 기법이라고도 함
- 키 분배가 비밀키 암호화 기법보다 쉽고, 암호화/복호화 속도가 느리며 알고리즘이 복잡함
- RSA, ElGama 기법 등이 있음
- RSA(Rivest Shamir Adleman)
- 소인수 분해의 어려움에 기초를 둔 알고리즘
- 1978년 MIT에 의해 제안됨
- 전자문서에 대한 인증 및 부인 방지에 활용됨
- ElGama
- 이산대수 문제의 어려움에 기초를 둔 알고리즘
- 동일한 메시지라도 암호화가 이루어질 때마다 암호문이 변경되고 암호문의 길이가 2배로 늘어나는 특징이 있음
비밀키(Private Key, 대칭키) 암호화 기법
- 동일한 키로 암호화하고 복호화하는 기법으로 키 개수는 N(N-1)/2개가 필요함
- 대칭키 암호화 기법 또는 개인키 암호화 기법이라고도 함
- 암호화/복호화 속도가 빠르고 알고리즘이 단순함
- 키 분배가 공개키 암호화 기법보다 어려움
- 스트림 방식과 블록 방식으로 분류됨
- 스트림 방식
- 평문의 길이와 동일한 스트림(Stream)을 생성하여 비트 단위로 암호화흔ㄴ 대칭키 암호화 방식, 암호화할 때 XOR 연산을 수행함
- 종류 : RC4, A5/1, LSFR, SEAL, WEP, OFB
- 블록 형식
- 평문을 블록 단위로 암호화는 대칭키 암호화 방식
- DES(Data Encryption Standard)
- 1970년대 초 IBM이 개발한 알고리즘
- 16라운드 Feistel 구조를 가짐
- 평문을 64비트로 블록화를 하고, 실제 키의 길이는 56비트를 이용함
- 전사 공격(Brute-Force Attack)에 취약함
- AES(Advanced Encryption Standard)
- DES를 대신하여 새로운 표준이 됨
- 블록 크기는 128비트이고, 키 길이는 128/192/256비트임
- SPN(Substitution-Permutation Network) 구조
- ARIA
- 국내 기술로 개발된 암호 알고리즘
- 경량 환경 및 하드웨어 구현에서의 효율성 향상을 위해 개발됨
- 우리날 국가 표준으로 지정됨
- 블록 크기와 키 길이가 AES와 동일함
- SEED
- 국내 기술로 개발된 128비트 블록 암호 알고리즘
- Feistel 구조
- 2005년 국제 표준으로 제정됨
- IDEA
- DES를 대체하기 위해서 스위스에서 개발한 알고리즘
- 상이한 대수 그룹으로부터의 세 가지 연산을 혼합하는 방식
해시(HASH) 암호화 방식
- 임이의 길이의 메시지를 입력으로 하여 고정된 길이의 출력값으로 변환하는 기법
- 주어진 원문에서 고정된 길이의 의사난수를 생성하며, 생성된 값을 해시값이라고 함
- 해시 함수라고도 함
- 디지털 서명에 이용되어 데이터 무결성을 제공함
- 블록체인에서 체인 형태로 사용되어 데이터의 신뢰성을 보장함
- SHA, SHA1, SHA256, MD5, RMD160, HAS-160, HAVAL 기법 등이 있음
SHA(Secure Hash Algorithm)
- 1993년에 미국 NIST에 의해 개발되었고 가장 많이 사용되고 있는 방식
- SHA-1은 DSA에서 사용하게 되어 있으며 많은 인터넷 응용에서 Default 해시 알고리즘으로 사용됨
- SHA-256, SHA-384, SHA-512는 AES의 키 길이인 128, 192, 256bit에 대응하도록 출력 길이를 늘린 해시 알고리즘임
Salt
- 시스템에 저장되는 패스워드들은 Hash 또는 암호화 알고리즘의 결과값으로 저장됨
- 암호 공격을 막기 위해 똑같은 패스워드들이 다른 암호 값으로 저장되도록 추가되는 값을 의미함
728x90
반응형
'정보처리기사 > 정보 시스템 구축 관리' 카테고리의 다른 글
서버 인증 및 서버 접근 통제 (0) | 2023.08.19 |
---|---|
서비스 공격 유형 (0) | 2023.08.19 |
시큐어 코딩 가이드 2 (0) | 2023.08.19 |
시큐어 코딩 가이드 1 (0) | 2023.08.19 |
소프트웨어 개발 보안 구출 및 방법론의 종류 (0) | 2023.08.19 |