다양한 기록

암호 툴, 암호 알고리즘 본문

정보보호이론

암호 툴, 암호 알고리즘

라구넹 2024. 10. 27. 18:09

공격 유형

수동적 공격(Passive Attack)

- 도청에 의한 내용 파악

- 트래픽 분석 (Traffic Analysis)

 

능동적 공격(Active Attack)

- 변조 공격 (Modification Attack)

- 삽입 공격 (Insertion Attack)

- 삭제 공격 (Deletion Attack)

- 재생 공격 (Replay Attack)

- 서비스 거부 공격 (Denial-of-Service Attack)

 

암호 시스템 적용 대상

- 기밀성 (Confidentiality)

- 메시지 무결성 (Integrity)

- 메시지 인증 (Message Authentication)

- 인증 (사용자/사물) (Authentication)

- 부인 방지 (Non-Repudiation)

 

정보 보호 3대 요소

- 기밀성 (Confidentiality) .. 트루디는 앨리스가 밥에게 보낸 메시지를 볼 수 없어야 한다

- 무결성 (Integrity) .. 트루디는 앨리스가 밥에게 보낸 메시지를 변조할 수 없어야 한다

- 가용성 (Availability) .. 앨리스와 밥은 필요할 때 언제든 메시지 서비스를 이용할 수 있어야 한다

 

정보보호 6대 원칙

인증성 (Authenticity)

- 밥은 메시지가 앨리스가 보낸 것임을 확인할 수 있어야 한다

- 메시지 서비스 제공자는 앨리스와 밥이 서비스에 로그인할 때, 진짜 본인이 맞음을 확인할 수 있어야 한다

책임 추적성 (Accountability)

- 추후 필요에 따라 앨리스가 언제, 어떤 방식으로 메시지를 보냈는지 추적할 수 있어야 한다

부인 방지 (Non-repudiation)

- 앨리스는 자신이 보낸 메시지에 대하여 자신이 보내지 않았다고 부인할 수 없어야 한다


암호 툴(Cryptographic tools)

 

사용 툴: 난수 발생기

사용 사례: 난수 생성

필요 분야: 암호화 키(비밀키)의 초기 생성

종류

- TRNG (True Random Number Generator .. 진 난수 발생기)

-- 실제적으로 랜덤한 소스를 입력으로 사용

-- 키보드 입력 타이밍 패턴 및 마우스 움직임

-- 디스크의 전기적 활동, 시스템 클럭의 순간 값 등

- PRNG (Pseudo Random Number Generator .. 의사 난수 발생기)

-- 고정 값 seed를 입력받아 결정적 알고리즘을 사용하여 출력 비트열 생성

-- 제한이 없는 비트 열 생성 시 사용

-- 알고리즘과 seed를 알고 있는 공격자는 비트 열 재생성 가능

 

PRNG 요구사항

* 임의성

- 생성된 비트 스트림이 결정적일지라도 랜덤하게 보여야 한다

- 비트열이 랜덤하면 무작위로 추출된 어떤 비트열도 랜덤해야 한다

* 비예측성

- 수열의 잇따른 다음 수의 순서에 대해 예측이 불가능해야 한다

- 이전 비트들에 대한 정보가 있다고 하더라도 다음 출력 비트는 예측할 수 없어야 한다

- 생성된 어떠한 값의 정보를 통해서도 seed를 결정할 수 없어야 한다

* Seed 요구사항

- Seed는 예측 불가능해야 한다 (TRNG를 이용하여 Seed 생성)

 

Hybrid pesudo random number generator

- TRNG : 짧은 길이의 random value 생성

- PRNG : TRNG가 생성한 짧은 길이의 random value를 seed로 사용하여 필요한 길이의 pseudo random number를 생성

 

 

사용 툴: 해시 함수

사용 사례: 데이터 압축

필요 분야: 임의의 길이 입력 데이터 처리

 

암호학적 해시 함수의 필요 조건

- 충돌 저항성 (Collision resistance)

- 역상 저항성 (Preimage resistance)

- 제2 역상 저항성 (Second preimage resistance)

 

 

사용 툴: 일방향 해시 람수

사용 사례: 일방향 연산

필요 분야: 패스워드 저장

- 입력으로 출력 계산은 쉬워도 출력으로 입력 유추는 어려워야 함

 

* KDF: 키 만들어주는 툴 .. 여기에 TRNG, PRNG, 암호학적 해시 함수가 포함되어 만들어지기도 함

 

Key Point

안전하지 않거나 오래된 암호화 도구가 많음

암호화 도구 사용 전 권고 사항을 꼭 살펴야 함


암호 알고리즘 (Crytpgraphic Algorithm)

키 생성

- 암호 키 생성에 사용

데이터 암호화

- 데이터 기밀성 보장을 위한 암호화에 사용

메시지 인증

- 데이터 무결성 보장을 위한 메시지 인증 코드 생성에 사용

 

키 생성

암호 키

- 데이터 암호화 또는 데이터 무결성 검증에 사용할 검증값 생성

- 데이터 복호화 또는 데이터 무결성 검증 값 검증에 사용

 

데이터 암호화

- 데이터 기밀성 보장을 위한 암호화에 사용

- 대칭키 암호

- 공개키 암호

 

메시지 인증

- 데이터 무결성 보장을 위한 메시지 인증 코드 생성에 사용

- MAC (Message Authentication Code)

 

Key Point

데이터 암호화는 데이터의 기밀성만 보장함

데이터 인증은 데이터의 무결성만 보장함