정보보안산업기사 필기

[암호학] 키 & 난수

zzadary1012 2026. 4. 9. 22:47

지금까지 공부하면서 다양한 암호화 알고리즘을 사용하기 위해선 암호키, 세션키, ... 등등 키가 필요하다고 했다.

그렇다면 키란 무엇인가? 

 

: 비유하자면 자물쇠를 여는 키같은 거다. 엄밀히 말하자면 암호화키는 자물쇠를 잠글 수 있는 열쇠, 복호화 키는 자물쇠를 열 수 있는 열쇠라고 생각하면 될 것 같다.

 

● 키 공간(Key-Space)의 크기 : 크면 클수록 Brute-force에 강함 

→ 키 공간의 크기는 키의 비트 길이로 정해짐

● 키의 가치 = 평문의 가치 : 공격자에게 키가 넘어가는 것은 평문이 넘어가는 것을 의미한다.

 

 

· 다양한 키

 

① 세션키(Session Key) : 통신 때마다 한 번만 사용되는 키

→ 사용자 간에 통신 세션이 개시될 때 할당되고 종료될 때 폐기되는 동적인 대칭키

 

② 마스터 키(Master Key) : 반복적으로 사용되는 키

 

③ CEK(Contents Encrypting Key) : 실제 데이터(콘텐츠)를 암호화 하는 키

 

④ KEK(Key Encrypting Key) : 다른 키를 암호화하는 키

 

▶ 세션키나 마스터키는 CEK가 될 수도 있고 KEK가 될 수도 있다.

 

 

· 패스워드 기반 암호화(PBE)

: 난수형태가 아닌 비밀번호(문자열)을 이용하여 암호키를 만드는 것

 

- 솔트(Salt)

: 의사 난수 생성기로 만들어지는 랜덤한 수 → KEK를 만들 때 패스워드와 함께 해시함수에 입력됨▶ 똑같은 비밀번호라도 결과값이 다르게 나오므로 레인보우 테이블 공격 / 사전공격을 방지함

 

· 특징

① 사용자마다 랜덤하게 생성

② 비밀번호와 분리하여 안전한 장소에 저장

③ 서버 프로그램은 Salt를 외부에서 호출하여 사용하는 형태로 구현

 

- PBKDF(Password-based key derivation function)

: 패스워드 기반으로 키를 유도하는 함수

 

Q. 이렇게 생성된 암호키는 어떻게 저장하나요?

A. 서버나 하드웨어 토큰에 저장 → 물리적으로 분리되어 있는 서버 사용을 권고

 

- 하드웨어 토큰

: 저장된 정보가 노출되기 어려운 장치

 

 

난수

: 예측할 수 없는 숫자

 

· 난수의 용도

① 키의 생성 : 대칭키 암호 or 메시지 인증 코드

② 키쌍의 생성 : 공개키 암호 or 전자서명

③ 초기화 벡터(Ⅳ)의 생성 : CBC, CFB, OFB에서 각각 사용

④ 비표(nonce)의 생성 : CTR 모드에서 사용

⑤ 솔트의 생성 : PBE에서 사용

⑥ 일회용 패드

 

· 난수의 성질

① 무작위성 : 통계적인 편중 X

② 예측 불가능성 : 과거의 수열로부터 다음 수를 예측할 수 없음

재현 불가능성 : 같은 수열을 재현할 수 없음

 

 

.

.

.

.

 


♠ 2026.04.08 / D-287 ♠

 

오늘은 인증서와 키&난수에 대해 공부했다. 드디어 암호학 부분이 다 끝났다. 요즘들어 공부에 집중이 너무 안 된다. 아무래도 사지방 와서 떠드는 다른 중대놈들 때문인거 같다. 내일부터 주말간 휴식을 취하고 다음주에는 4박5일동안 훈련 있어서 글을 못 쓸거 같다. 훈련 너무 많음. 

 

그리고 공부하면서 느낀건데 교재를 완전히 1회독 하고 기출을 풀기보단 기출을 1~2회치 먼저 풀어보고 1회독 하는게 훨씬 효율적일 거 같아서 다음엔 기출을 한 번 풀어보고자 한다.

 

오늘은 여기까지 하고 따로 더 공부하다가 잠을 자겠다. 안녕