티스토리 뷰

Security

[security] 암호화 알고리즘

TurboC++ 2021. 6. 29. 18:00
728x90

암호화(encryption)

정보를 보낼 때나 받을 때, 그 정보의 비밀성을 보장하기 위하여 해독할 수 없도록 다른 형태의 정보로 변환하는 것으로, 키에 의해서 암호화가 되거나 복호화가 되며, 사용된 키 외에는 해독 할 수 없도록 하여, 정보의 안전성을 확보하는 과정

보안 알고리즘(암호 알고리즘, cryptographic algorithm)

정보 시스템 내부에 보관되거나 통신망을 통하여 전송되는 정보의 훼손, 변조, 유출 등을 방지하기 위해 정보를 암호화와 복호화하는 과정에서 사용되는 함수

용어정리

- 평문(plain text, clear text) : 암호화되지 않은 정보

- 암호문(cipher text) : 암호화 된 정보

- 암호화(encryption) : 평문을 암호문으로 바꾸는 과정

- 복호화(decryption, decipherment) : 암호문을 평문으로 바꾸는 과정

- 암호화 키(encryption key) : 암호화에 사용되는 키

- 복호화 키(decryption key) : 복호화에 사용되는 키

- 대칭 암호 알고리즘(symmetric key algorithm) : 암호화 키와 복호화 키가 같은 알고리즘

- 비대칭 암호알고리즘(asymmetric key algorithm) : 암호화 키와 복호화 키가 다른 알고리즘

- S-box : 비선형 치환 테이블

- Feistel 구조 : 데이터를 두 블록으로 나누어 좌·우 부분에 교대로 비선형 변환을 적용시키는 구조

- 라운드(round) : 암호화/복호화 횟수

대칭 암호 알고리즘(symmetric key algorithm)

- 송 수신자가 동일한 키에 의하여 암호화/복호화 과정을 수행

- 변환 방법에 따라 블록/스트림 암호 알고리즘으로 구분

- 알고리즘 내부 구조가 간단한 치환과 순열의 조합으로 구성

- 많은 정보기술과의 상호운용이 쉽고 데이터 처리량이 높음

- 정보교환 당사자간에 동일한 키를 공유해야 하며, 여러 사람과의 정보 교환 시 많은 키를 유지 관리해야 하는 어려움이 존재

1. DES(Data Encryption Standard)

  • DES는 64비트 평문을 64비트 암호문으로 만드는 블록암호방식으로 64비트 키와 비선형 함수로 구성된 S-Box를 사용
  • 64비트 키(외부키) 중 56비트는 실제의 키(내부키)가 되고, 나머지 8비트는 패리티 비트로 사용
  • 컴퓨터성능의 발달에 의해 보안성이 약화되어 DES의 안정성을 증가 시키기 위하여 키 길이를 두 배(128비트) 증가시킨 3중 DES를 사용

2. IDEA(International Data Encryption Algorithm)

  • 블록암호방식으로 64비트의 평문에 대하여 동작
  • 키의 길이는 128비트이고, 8라운드의 암호방식을 적용
  • 16비트 단위 연산을 사용하여 16비트 프로세스에 구현이 용이
  • 대수적 구조가 서로 다른 연산을 사용하여 암호적 강도를 증가

3. AES(Advanced Encryption Standard)

  • DES의 안전성 문제를 대신할 차세대 블록암호방식의 알고리즘
  • 키의 길이(128, 192, 256비트)와 라운드의 수(10, 12, 14회)가 가변적임
  • 요구되는 안전도에 따라 보안수위 조절이 가능

4. SEED

  • 국가 표준 암호 알고리즘
  • 128비트의 블록 및 키 크기에 Feistel Network 구조의 블록암호방식
  • 키의 길이(128, 192, 256비트)는 가변적이며 16라운드 암호방식을 적용
  • 암호화/복호화 속도가 3중 DES보다 빠름

5. ARIA(Academy, Research Institute, Agency)

  • SEED와 함께 국가 암호알고리즘으로 사용될 차세대 암호알고리즘
  • 고정 길이인 128비트의 입출력과 가변(128, 192, 256비트) 길이의 키와 가변적인 라운드 수(12, 14, 16회)를 지원
  • 간단한 연산 사용으로 초경량 환경에 효율적이고 바이트 단위의 연산으로 하드웨어에 효율적

비대칭 암호 알고리즘(asymmetric key algorithm)

- 송 수신자가 비밀키(Secret key)와 공개키(Pubic key)라는 두 개의 상이한 키를 사용하여 암호화/복호화 과정을 수행

- 자신의 비밀키 한 개만 잘 보관하면 되므로 대칭 암호알고리즘보다 훨씬 적은 수의 키를 유지

- 암호화 및 복호화 속도가 느리며, 키의 길이가 대칭키 암호알고리즘보다는 크기 때문에 계산 효율성이 저하되는 단점이 존재

1. RSA(Rivest Shamir Adelman)

  • Rivest, Shamir, Adelman 등 3인이 공동 개발한 RSA법(RSA scheme)을 사용한 암호 알고리즘으로 공개키 암호 체계의 사실상의 세계 표준
  • 2개의 상이한 소수 p, q를 이용하여 암호화 키(n, e)와 복호화 키 (n, d)를 생성하며 암호화 키는 공개키, 복호화 키는 비밀키로 관리
  • n의 자릿수를 크게 하면 할수록 두 소인수 p, q로 분해하는 계산량이 증가하기 때문에 암호 체계의 안전을 보장

2. ECC(Elliptic Curve Cryptography)

  • 타원곡선 암호인 ECC는 비트당 안전도가 타 공개키 암호 알고리즘보다 효율적이기 때문에 높은 속도를 제공
  • 최근 RSA 암호 알고리즘의 근간이 되는 인수분해 문제와 소수성 테스트 를 위한 효율적 알고리즘을 제공

3. Skipjack

  • 미국 국립 보안국(National Security Agency : NSA)에서 클리퍼(Clipper)라는 컴퓨터 칩 용으로 개발한 암호 알고리즘
  • 80 bit의 키와 32단계의 라운드를 거치기 때문에 54bit의 키와 16단계의 라운드를 거치는 DES보다 안전
  • 이 알고리즘의 자세한 사항은 기밀이기 때문에 소프트웨어로 구현할 수 없고, 정부로부터 승인된 칩 제조자에 의해서 하드웨어로 구현

'Security' 카테고리의 다른 글

[security] 암호화 알고리즘  (0) 2021.06.29
[security] DES (Data Encryption Standard)  (0) 2021.06.29
댓글