본문 바로가기
STUDY

[정처기] 9과목 소프트웨어 개발 보안 구축 암호화 알고리즘 총정리

by univus 2022. 10. 19.

수제비 2022 정보처리기사 실기 교재 개념 정리한 내용입니다.

 

 

암호 알고리즘(encryption algorithm)

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

 

주요 용어

  • 평문(plain/plaintext) : 원본 메세지
  • 암호문(cipher/ciphertext) : 암호화된 메세지
  • 암호화(encrypt/encryption/encoding) : 평문을 암호문으로 바꾸는 작업
  • 복호화(decrypt/decryption/decoding) : 암호문을 평문으로 바꾸는 작업
  • 키(key) : 적절한 암호화를 위하여 사용하는 값
  • 치환암호(대치암호, substitution cipher) : 비트,문자,문자의 블록을 다른 비트,문자,블록으로 대체하는 방법
  • 전치암호(transposition cipher) : 비트,문자,블록이 원래 의미를 감추도록 자리바꿈 등을 이용하여 재배열하는 방법

1. 양방향 방식

1-1. 대칭 키 암호 방식

: 암호화와 복호화에 같은 암호 키 사용

 

1-1-1.블록 암호 방식

: 긴 평문을 암호화하기 위해 고정길이의 블록을 암호화

 

  • DES(data encryption standard)

: 1975, IBM에서 개발, NIST(미국연방표준국)발표, 블록크기 64bit, 키 길이 56bit(페이스텔;feistel 구조), 16라운드 암호화 알고리즘, 3DES(triple)도 활용됨

  • IDEA(international data encryption algorithm)

: DES 대체, 1991, 스위스 연방 기술 기관, 128bit 키를 사용하여 64bit의 평문을 8라운드에 거쳐 64bit의 암호문을 만듦

  • SEED

: 1999, KISA(한국 인터넷진흥원), 블록크기 128bit, 키 길이에 따라 128, 256bit,128bit 비밀키로부터 생성된 16개의 64bit 라운드키를 사용하여 총 16회의 라운드를 거쳐 128bit 평문블록을 128bit 암호문 블록으로

  • AES(advanced encryption standard)

: 2001, NIST(미국표준기술연구소) 미연방 표준 알고리즘, 블록크기 128bit, 키 길이에 따라 128, 192, 256bit, 10,12,14라운드로 분류, 한 라운드는 4계층, DES 개인키 전사적 공격과 3 DES 성능문제 극복위해 개발

  • ARIA(academy, research institute agency)

: 2004, 국가정보원과 산학연구협회, 블록크기 128bit, 키 길이에 따라 128,192,256bit, 경량환경 및 하드웨어에서의 효율성 향상을 위해 개발, 대부분의 연산은 단순 바이트 단위 연산(XOR )

 

 

1-1-2. 스트림 암호화 알고리즘

: 매우 긴 주기의 난수열을 발생시켜 평문과 더불어 암호문을 생성

  • RC4
  • RC5(Ron’s code 5, rivest cipher 5)

: 1994, 미국 RSA의 라이베스트(rivest)

  • LFSR(선형 되먹임 시프트 레지스터linear feedback shift register)

: 시프트 에지스터의 일종, 레지스터에 입력되는 값이 이전 상태 값들의 선형함수로 계산되는 구조, XOR(배타적 논리합) 주로 사용, 초기 비트값은 시드(seed)

 

1-2. 비대칭 키 암호 방식

: 사전에 개인키를 나눠 가지지 않은 사용자들이 안전하게 통신하는 방식, 공개키(public key)는 누구나 알 수 있지만, 개인키(private key)는 키의 소유자만, 공개키로 암호화한 메세지는 반드시 개인키로 복호화

  • 디피-헬만(diffie-hellman)

: 최초의 공개키 알고리즘, 1976, 최초의 비밀키 교환 프로토콜, 유한 필드 내에서 이산대수의 계산이 어려운 문제를 기본원리로

  • RSA(rivest-shamir-adleman)

: 1977, 3명의 MIT 수학 교수, 큰 인수의 곱을 소인수 분해하는 수학적 알고리즘 이용, 비밀키의 복호화가 어려운 RSA 안전성은 소인수 분해 문제의 어려움에 근거

  • ElGamal

: 1984, 이산대수의 계산이 어려운 문제를 기본 원리로, RSA와 유사하게 전자서명과 데이터 암/복호화에 함께 사용가능

  • ECC(타원 곡선 암호, elliptic curve cryptography)

: RSA 암호방식에 대한 대안, 1985, 코블리치와 밀러, 유한체 위에서 정의된 타원곡선 군에서의 이산대수의 문제에 기초, PKI기반의 PSA 문제점인 속도와 안전성 해결, RSA보다 키의 비트 수를 적게하면서 동일한 성능제공

 

2. 일방향 방식(해시 암호 방식)

: 임의 길이의 정보를 입력 받아 고정된 길이의 암호문(해시값) 출력, 해시 암호화 알고리즘이 적용된 정보는 복호화가 불가능

  • MAC(message authentication code)

: 키를 사용하는 메시지 인증코드, 메시지의 무결성과 송신자의 인증 보장

ex) HMAC, NMAC

  • MDC(modification detection code)

: 키를 사용하지 않는 변경 감지 코드, 메시지의 무결성 보장

 

 

 

  • MD5(message-digest algorithm5)

: 1991, R.rivestMD4를 개선, 프로그램이나 파일의 무결성 검사에 사용, 512비트 입력메세지 블록에 동작하여 128비트 해시값 생성

  • SHA-1(secure hash algorithm)

: 1993, NSA에서 미 정부 표준으로 지정, DSA(digital signature algorithm)사용, 160비트의 해시값 생성

  • SHA-256/384/512(secure hash algorithm)

: 256 비트의 해시값 생성, AES의 키 길이인 128,192,256에 대응하도록 출력 길이를 늘림

  • HAS-160

:국내 표준 서명 알고리즘 KCDSA(korean certificate-based digital signature algorithm)을 위해 개발, MD5 + SHA1 장점

  • HAVAL

: 메시지를 1024bit블록으로 나누고 128,160,192,224,256 비트인 메시지 다이제스트를 출력