본문 바로가기
Server/보안

[보안] 암호학(Cryptology) 개론

by 재현짱 2024. 4. 5.
728x90

암호학(Cryptology)

 

개념

  • 정보를 보호하기 위한 수학적, 언어학적인 방법을 다루는 학문
  • 비밀키 암호화 기법, 공개키 암호화 기법이 존재한다.
  • 단방향과 양방향 암호화가 존재한다.

- 평문 (cleartext = plaintext)

  • 정보(Data)를 가지고 있는 원본

- 암호문 (ciphertext)

  • 내용을 제 3자가 판독할 수 없는 글자,숫자,부호 등으로 변형시킨 것

- 암호화 (encryption)

  • 평문을 암호문으로 변경하는것

- 복호화 (decryption)

  • 암호문을 평문으로 변경하는것

 

암호학에서 보안 요구사항

 

- 기밀성 (Confidentiality)

  • 데이터가 외부로 노출되지 않았는가?

- 무결성 (Intergrity)

  • 데이터를 다른 사람이 불법적으로 변조하지 않았는가?

- 사용자 인증 (Authentication)

  • 서비스를 이용하는 사용자가 정당한 사용자인가?

- 부인 봉쇄 (Non - repdudiation)

  • 데이터의 수신자가 자신의 수신 사실을 부인할 수 없는가?

 

암호시스템 종류

 

단방향 암호화

  • *Hash 암호화
  • 알고리즘에 의해 암호화만 가능, 복호화는 불가능
  • 주로 메시지 인증 용도로 사용(무결성)

*Hash :데이터를 평문으로 사용, 지정된 알고리즘으로 계산된 지정된 크기의 값을 이용해 진위 여부를 확인

Hash 알고리즘 종류

 

양방향 암호화

  • 한 쌍의 알고리즘(암호화/복호화)을 통해 암호화된 데이터를 복호화 할 수 있는 방식
  • 암호화의 안정성을 높이기 위해 Key 사용
  • 종류로는 대칭, 비대칭, 하이브리드가 있다.

대칭키 암호시스템(Symmetric Key Cryptosystem)

  • 비밀키 암호시스템(Secret Key), 관용키 암호시스템
  • 암호화용 키와 복호화용 키로 같은 키를 사용하거나 하나를 알면 다른 것도 바로 알 수 있음
  • 두 키를 모두 비밀리에 보관
  • 국내에서는 SEED,ARIA / 해외에서는 AES, DES, 3TDES 등을 사용
  • 종류로는 스트림 방식블록 방식이 존재한다.

대칭 암호

블록(Block cipher)

  • 알고리즘 종류에 따라 지정된 크기로 데이터를 나눠서 암호화를 수행한다.
  • 스트림 방식에 비해 처리과정이 복잡하고 속도가 느림
  • 블록화 알고리즘 *DES(Data Encryption Standard)

*Feistel 구조를 이용하는데 DES와 같은 암호를 여러번 암호화한다.

 

스트림(Stream cipher)

  • 비트, 바이트, 워드 단위로 입력되는 순서대로 암호화를 수행
  • 암호화된 데이터의 크기가 변하지 않는다.
  • 블록 방식에 비해 처리속도가 빠르다.
  • 스트림 암호화 알고리즘 RC4, RC5 등

 

공개키 암호시스템(Public Key Cryptosystem)

  • 암호화용 키와 복화화용 키가 서로 다르다.
  • 암호화용 키로 복호화용 키를 알기 어렵다. (수학적인 이론을 사용해 계산적으론 불가능하다.)
  • 암호화용 키는 공개, 복호화용 키는 비밀리에 보관한다.
  • RSA 알고리즘 등이 해당.
  • 비대칭 암호 알고리즘 구성으로는 이산대수, 소인수 분해, 타원 곡선이 존재한다.

비대칭 암호

 

비대칭 암호화 알고리즘

  • 계산하기 어려운 수학적인 공식을 기반 ex) 소인수 분해, 이산대수, 타원곡선
  • RSA, DSA, EIGamal 등

비대칭 알고리즘 구성

 

 

하이브리드 시스템(Hybrid System)

  • 공개키 암호시스템과 대칭키 암호시스템의 결합
  • 대칭키 암호시스템 : 데이터 암호화
  • 공개키 암호시스템 : 세션키의 암호화, 키 분배, 전자서명
  • 키 동기화: 암호화를 수행하기 전 암호화에 사용될 키를 서로 바꿈 *세션키 방식*Diffi - hell men 방식 존재

*세션키 : 비밀키에 유효기간이 존재, 게속 새로운 키를 생성한다.

*Diffi - hellman : 임의의 값을 교환 → 비밀키 생성, 교환

Diffi - hellman 동작 방식