Cryptography_Kerchhoffs' Principle

홍윤기·2022년 10월 3일
0

본격적으로 암호학에 대한 얘기를 시작하기 전에 우선 암호학의 몇가지 전제 조건들을 알아야 한다.

⭐️Kerchhoffs' Principle

Symmetric-Key Encryption(대칭키 암호)의 경우 그 정의는 다음과 같다.

Key generation algorith: Gen -> a key "k" ∈ KS
Encrpytion algorithm: Enc(k, m) -> a ciphertext C ∈ CS
Decrpytion algorithm: Dec(k, C) -> a plaintext m ∈ MS
🔥Cf. 이 때, Sender와 Receiver는 초기에 key를 안전하게 공유했다고 가정한다.

Kerchhoff의 원리는 아래과 같은 질문에서 출발한다.

"Key를 안전하게 공유했다 가정하자. 암호화(Enc), 복호화(Dec) 알고리즘 또한 안전한 것인가?"
이 질문은 결국 다음과 같은 결론으로 이어진다.

"암호는 오로지 key의 보안성에만 의존한다. 따라서 알고리즘은 공개되어져야 한다."

그 이유는 무엇일까?

(1)

  • key는 알고리즘에 비해 상대적으로 간단하며 짧다. 따라서 안전하게 공유하고 저장하기 간편하다.
  • key가 노출되었을 때는 단지 key의 값을 변경하기만 하면 되지만 알고리즘이 노출되었을 때는 이를 변경하기가 쉽지 않다.
  • 동일한 알고리즘을 key 값만 변경해 가면서 사용한다면 다양한 사람들이 같은 기법을 사용할 수 있다.
  • 코드를 통한 리버스 엔지니어링이 보안성에 심각한 위협을 줄 것이다.

(2)

  • 알고리즘의 공개가 오히려 보안성을 증명한다.(알고리즘을 공개했을 때 그 보안성을 해치지 못한다면 현쟁의 기술로는 뚫지 못함을 오히려 증명하는 일이 된다.)

0개의 댓글