• Feed
  • Explore
  • Ranking
/
/
    Cryptography

    현대암호 - 대칭키 암호 시스템

    현대 암호대칭키
    J
    Jin
    2025.02.06
    ·
    5 min read

    고전 암호의 한계

    많은 고전 암호에서는 송신자와 수신자가 같은 키를 공유해야 했다.
    -> 대칭키 암호 시스템 (Symmetric key crytosystem)
    대칭키 암호 시스템은 사전의 키를 공유하는 과정이 반드시 필요하다.
    그런데 현대의 경우 네트워크 도청에 매우 취약하므로 키를 평문으로 공유하기 부적절하다.
    그래서 키가 공유되는 과정이 도청되도 공유되는 키를 알지 못하게 하는 키 공유 알고리즘(Key exchange algorithm)이 연구되었다.
    이후 송신자와 수신자가 서로 다른 키를 사용하는 공개키 암호 시스템(Public key cryptosystem)의 개념이 등장했다. 이는 대칭키와 대비되어 비대칭키(Asymmetric cryptography)이라고도 불린다.

    3187

    현대 암호

    케르크호프스의 원리 (Kerchhoff's principle)
    키를 제외한 시스템의 다른 모든 내용이 알려지더라도 암호체계는 안전해야 한다.
    AES, RSA의 경우 암/복호화 알고리즘이 공개되어 있지만, 현대기술로는 키 또는 비밀키 없이는 복호화가 불가능한 암호 체계이다.

    혼돈과 확산

    클로드 섀년은 안전한 암호 시스템은 혼돈(Confusion)과 확산(Diffusion)의 성질을 만족해야 한다고 발표했다.
    그리고 현대의 많은 암호 시스템은 두 성질을 따르고 있다.

    혼돈

    혼돈은 암호문에서 평문의 특성을 알아내기 힘든 성질을 말한다.

    확산

    확산은 평문의 작은 변화가 암호문의 큰 변화를 이어지는 성질이다.

    대칭키 암호 시스템

    대칭키 암호 시스템은 암호화와 복호화에 같은 키를 사용하는 암호 시스템이다.
    블록 암호와 스트림 함호로 구분된다.

    블록 암호 (Block cipher)

    평문을 정해진 크기의 블록 단위로 암호화하는 암호이다. 블록의 크기가 4바이트라면 평문을 4바이트 블록으로 쪼개 블록마다 암호화를 진행한다. 대표적으로 DES 대칭키 암호와 AES 대칭키 암호가 존재한다.

    스트림 암호 (Stream cipher)

    송신자와 수신자가 공유하는 데이터 스트림을 생성하고 이를 평문과 특정한 연산을 수행하여 암호문을 생성하는 암호이다. 복호화 과정은 암호화 과정의 연산으로 역으로 수행한다.
    대부분의 암호화 과정과 복호화 과정에 XOR(Exclusive OR)연산을 사용한다.

    평문 P, 암호문 C, 스트림 X , XOR ⊕
    C = P ⊕ X

    송신자와 수신자가 평문 길이만큼의 스트림을 매번 공유할 수 있다면 암호화가 필요하지 않는 환경을 뜻한다. 따라서 일반적으로 송신자와 수신자는 스트림 대신 시드(Seed)라는 값을 공유한뒤에 이 시드 값을 통해서 스트림을 생선한다. 스트림 암호는 단순한 연산만으로 구현되므로 속도가 빠르다. 따라서 속도가 중요한 환경에서 사용된다.

    3189

    대칭키 암호 시스템의 장단점

    장점

    공개키 암호(비대칭키 암호 시스템)에 비해 속도가 빠르다.

    단점

    송신자와 수신자가 사전에 키를 교환해야 한다는 제약이 있다.

    N명의 사람이 있을 때 총 n​C2​=N(N−1)/2개의 키가 필요하다.







    - 컬렉션 아티클