728x90
암호학(Cryptology)
개념
- 정보를 보호하기 위한 수학적, 언어학적인 방법을 다루는 학문
- 비밀키 암호화 기법, 공개키 암호화 기법이 존재한다.
- 단방향과 양방향 암호화가 존재한다.
용어
- 평문 (cleartext = plaintext)
- 정보(Data)를 가지고 있는 원본
- 암호문 (ciphertext)
- 내용을 제 3자가 판독할 수 없는 글자,숫자,부호 등으로 변형시킨 것
- 암호화 (encryption)
- 평문을 암호문으로 변경하는것
- 복호화 (decryption)
- 암호문을 평문으로 변경하는것
암호학에서 보안 요구사항
- 기밀성 (Confidentiality)
- 데이터가 외부로 노출되지 않았는가?
- 무결성 (Intergrity)
- 데이터를 다른 사람이 불법적으로 변조하지 않았는가?
- 사용자 인증 (Authentication)
- 서비스를 이용하는 사용자가 정당한 사용자인가?
- 부인 봉쇄 (Non - repdudiation)
- 데이터의 수신자가 자신의 수신 사실을 부인할 수 없는가?
암호시스템 종류
단방향 암호화
- *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 : 임의의 값을 교환 → 비밀키 생성, 교환