AES, RSA, SHA2와 같은 보안 관련 알고리즘을 라이브러리를 통해 사용하다 보면 이런 생각이 자주 들었다.
많은 사람이 라이브러리를 통해 보안 알고리즘을 사용하면 모두 같은 알고리즘일 텐데 위험한 거 아니야?
최근 암호학을 공부하면서 이 궁금증이 해소되었다.
대부분의 현대 암호화 기법들은 이 kerckhoff's principle을 따르는 것으로 보였다.
Kerckhoff's Principle의 핵심은 아래와 같다.
암호의 안전성은 키의 안전성에만 바탕을 둔다.
즉, 암호체계가 적의 손에 떨어지더라도 비밀키만 안전하다면 쉽게 decryption 되는 일은 없어야 한다는 것이다.