책/2024 수제비 정보처리기사

[정보처리기사] 암호 알고리즘

yn98 2024. 10. 17. 01:30

암호 알고리즘

→ 데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법

 

▼ 암호 알고리즘 비교

구분 대칭 키 암호 방식 비대칭 키 암호 방식
→ 대칭 키(비밀키) → 비대칭 키(공개 키, 사설 키
키의 관계 → 암호화 키 = 복호화 키 → 암호화 키 != 복호화 키
키 개수 → n(n-1)/2 →  2n
암호 알고리즘 → 공개 → 공개
장점 → 계산 속도가 빠름 → 암호화 키 사전 공유 불필요
→ 관리해야 할 키 개수가 적음
단점 → 키 분배 및 관리의 어려움
→ 기밀성만 보장
→ 계산 속도 느림
알고리즘 → DES, AES, SEED → 디피-헬만, RSA

해시 함수

→ 임의의 길이를 갖는 임의의 데이터를 고정된 길이의 데이터로 매핑하는 방향 함수

 

▼ 일방향 암호 방식 ★

방식 설명
MAC
(Message Authentication Code)
→ 키를 사용하는 메시지 인증 코드로 메시지의 정당성을 검증하기 위해 메시지와 함께 전송되는 값
메시지의 무결성과 송신자의 인증을 보장
MDC
(Modification Detection Code)
→ 키를 사용하지 않는 변경 감지 코드로 수신자는 받은 데이터로부터 새로운 MDC를 생성하여 송신자에게 받은 MDC와 비교하여 해당 메시지가 변경되지 않았음을 보장하는 값
메시지의 무결성 보장

 

▼ 대칭 키 암호화 알고리즘 ★★★

종류 설명
DES
(Data Encryption Standard)
→  1975년 IBM에서 개발하고 미국의 연방 표준국(NIST)에서 발표한 대칭 키 기반의 블록화 알고리즘
→  블록 크기는 64bit, 키 길이는 56bit인 페이스텔 구조, 16라운드 암호화 알고리즘
→  DES를 3번 적용하여 보안을 더욱 강화한 3 DES(Triple DES)도 활용

SEED →  1999년 국내 한국인터넷진흥원(KISA)이 개발한 블록 암호화 알고리즘
→  128bit 비밀키로부터 생성된 16개의 64bit 라운드 키를 사용하여 총 16회의 라운드를 거쳐 128bit의 평문 블록을 128bit 암호문 블록으로 암호화하여 출력하는 방식
→  블록 크기는 128bit이며, 키 길이에 따라 128bit, 256bit로 분류
AES
(Advanced
Encryption Standard)
→  2001년 미국 표준 기술 연구소(NIST)에서 발표한 블록 암호화 알고리즘
→  DES의 개인 키에 대한 전사적 공격이 가능해지고, 3 DES의 성능 문제를 극복하기 위해 개발
→  블록 크기는 128bit이며, 키 길이에 따라 128bit, 192bit, 256bit로 분류
→  AES의 라운드 수는 10, 12, 14라운드로 분류되며, 한 라운드는 SubBytes, ShiftRows, MixColumns, AddRoundKey의 4가지 계층으로 구성
ARIA
(Academy, 
Research Institute,
Agency)
→  2004년 국가정보원과 산학연구협회가 개발한 블록 암호화 알고리즘
→  ARIA는 학계(Academy), 연구기관(Research Institute), 정부(Agency)의 영문 앞글자로 구성
→  블록 크기는 128bit이며, 키 길이에 따라 128bit, 192bit, 256bit로 분류
→  ARIA는 경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발되었으며, ARIA가 사용하는 대부분의 연산은 XOR과 같은 단순한 바이트 단위 연산으로 구성
IDEA
(International
Data Encryption
Algorithm)
→  DES를 대체하기 위해 스위스 연방기술 기관에서 개발한 블록 암호화 알고리즘
→  128bit의 키를 사용하여 64bit의 평문을 8라운드에 거쳐 64bit의 암호문을 만듦
LFSR
(Linear Feedback
Shift Register)
→  시프트 레지스터의 일종으로, 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어 있는 스트림 암호화 알고리즘
→  LFSR에서 사용되는 선형 함수는 주로 배타적 논리합(XOR)이고, LFSR의 초기 비트 값은 시드(Seed)라고 함
Skipjack →  미 국가안보국(NSA; National Security Agency)에서 개발한 Clipper 칩에 내장된 블록 알고리즘
→  소프트웨어로 구현되는 것을 막고자 Fortezza Card에 칩 형태로 구현됨
→  전화기와 같이 음성을 암호화하는 데 주로 사용되고 64비트의 입 출력, 80비트의 키, 32라운드를 가짐

▼ 비대칭 키 암호화 알고리즘 ★★★

종류 설명
디피- 헬만
(Diffie-Hellman)
→  최초의 공개키 알고리즘으로 W.Diffie와 M.Hellman이 1976년에 고안한 알고리즘으로서 유한 필드 내에서 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있음
→  Diffie-Hellman은 공개키 암호 방식의 개념을 이용하여 두 사용자 간에 공통의 암호화 키를 안전하게 공유할 방법을 제시하였으며, 많은 키 분배 방식에 관한 연구의 기본이 됨(최초의 비밀키 교환 프로토콜)
RSA
(Rivest-Shamir-Adleman)
→  1977년 3명의 MIT 수학 교수(Rivewt, Shamir, Adleman)가 고안한 큰 인수의 곱을 소인수 분해하는 수학적 알고리즘을 이용하는 공개키 암호화 알고리즘
→  비밀키의 복호화가 어려운 RSA 안정성은 소인수 분해 문제의 어려움에 근거를 두고 있음
ECC
(Elliptic Curve Cryptography)
→  1985년 코블리치와 밀러가 RSA 암호 방식에 대한 대안으로 제안한 공개키 암호화 알고리즘
→  유한체 위에서 정의된 타원곡선 군에서의 이산대수의 문제에 기초한 공개키 암호화 알고리즘
→  PKI 기반의 RSA의 문제점인 속도와 안정성을 해결하기 위해 타원 기반 구조체의 안정성과 효율성을 기반으로 생성되었고, RSA보다 키의 비트 수를 적게 하면서 동일한 성능을 제공

EIGamal →  T.EIGamal이 1984년에 제안한 공개키 알고리즘
→  이산대수의 계산이 어려운 문제를 기본 원리로 하고 있으며, RSA와 유사하게 전자서명과 데이터 암/복호화에 함께 사용 가능

▼ 해시 암호화 알고리즘

종류 설명
MD5
(Message-Digest
algorithm 5)
→  1991년 R.rivest가 MD4를 개선한 암호화 알고리즘으로 프로그램이나 파일의 무결성 검사에 사용
→  각각의 512비트짜리 입력 메시지 블록에 대해 차례로 동작하여 128비트의 해시값을 생성하는 해시 알고리즘
SHA-1
(Secure Hash Algorithm)
→  1993년 NSA에서 미 정부 표준으로 지정되었고, DSA(Digital Signature Algorithm)에서 사용
→  160비트의 해시값을 생성하는 해시 알고리즘
SHA-256/384/512
(Secure Hash Algorithm)
→  SHA 알고리즘의 한 종류로서 256비트의 해시값을 생성하는 해시함수
→  AES(Advanced Encryption Standard, 미연방 표준 알고리즘)의 키 길이인 128, 192, 256비트에 대응하도록 출력 길이를 늘인 해시 알고리즘
HAS-160 →  국내 표준 서명 알고리즘 KCDSA(Korean Certificate-based Digital Signature Algorithm)를 위하여 개발된 해시함수
→  MD5와 SHA1의 장점을 취하여 개발된 해시 알고리즘
HAVAL →  메시지를 1024bits 블록으로 나누고 128, 160, 192, 224, 256 비트인 메시지 다이제스트를 출력하는 해시 알고리즘