티스토리 뷰

네트워크

대칭키(Symmetric key)

tioon 2023. 9. 17. 18:51
대칭키(Symmetric key)

- 암호화 복호화를 할때 같은 키를 사용하는 방식으로, 암호화된 데이터를 복호화 하기 위해서 같은 키가 필요합니다. 
이방식은 간단하고 빠르게 처리할 수 있지만 키관리가 어렵고, 키 유출될경우 보안이 취약해질 수 있습니다.
아래 그림을 보시면 Client와 Server둘다 같은 대칭 키를 가지고 있어 암호화와 복호화가 같은 키로 이루어 집니다. 통신하는 노드가 많아지면 키를 각자가져야하기에 복잡성이 생깁니다.

 

 

 

 

대칭키 주요개념
  • 키(Key)
    암호화와 복호화에 사용되는 키입니다.

  • 암호 알고리즘(Encryption algorithm)
    입력값으로 들어온 평문을 다양한 방법으로 치환하고, 변환하여 암호화하는 알고리즘입니다.

  • 평문(Plaintext)
    -암호화되기 전의 원본 데이터를 의미합니다.

  • 암호문(Ciphertext)
    -암호화 작업을 거친 후, 출력으로 나오는 메세지입니다.

 

 

 

 

대칭키 암호 필수조건
  1. 강한 암호 알고리즘
    대칭키 암호는 다양한 암호 분석 공격에 대해 강해야 하며, 암호해독에 강해야합니다.
    • (암호문 해석 비용 + 시간 > 정보의 가치 + 정보의 수명) 이어야 암호 알고리즘이 안전한 것입니다.

  2. 키의 비밀성
    키가 노출되면 데이터의 보안성은 완전히 손상되어 날라가므로 키의 비밀성을 유지하여 안전하게 비밀키를 공유하는 것이 중요합니다.

 

 

 

 

 

대칭키 암호 설계요소
  • 블록 크기(Block Size)
    -암호화할 데이터의 단위를 의미하며 기본적으로  128비트, 192비트, 256비트의 블록 크기가 있습니다.

  • 키 길이(Key Size)
    -암호화를 진행할 키의 길이를 의미하며 키의 길이가 길수록 암호 해독이 어려워지지만, 처리속도는 느려집니다.

  • 라운드 수(Number of Round)
    -암호화는 여러번의 라운드를 거쳐 암호화가 진행되게 되는데, 몇 라운드에 거쳐 암호화를 진행할 것인지 정하는 것을 의미합니다. 

  • S-Box, P-Box
    -암호화를 진행할때  데이터 변환방법의 종류입니다. S-Box는 입력값을 다른 값으로 대체하여 변환시키는 것이고, P-Box는 입력값의 데이터 위치를 뒤바꿔 변환시키는 것입니다.

  •  운영 모드(Operation Mode)
    -실제 입력값의 크기와 블록 크기가 다를때 어떻게 적용할지를 정하는 것입니다. ECB, CBC, CFB, OFB, CTR등이 있습니다.

 

 

대칭키 알고리즘 종류
  • DES(Data Encryption Standard)
    초기에는 매우 인기가 있었지만 현대에는 보안이 취약하다고 판명이 나서 잘 쓰이지 않는 알고리즘입니다.
    • 키 길이 - 56비트
    • 블록 사이즈 - 64비트
    • 라운드 수 - 16
    • 서브키 - 원래 키로부터 16개의 48비트 서브키 생성
  • 3중 DES
    DES의 취약점에 대응하기 위해 개발된 암호 방식으로 DES를 연속적으로 세번 적용하는 방식입니다
    • 키 길이 - 168비트 (3 * 56비트)
    • 블록 사이즈 - 64비트
    • 라운드 - 48 (3 * 16)
    • 서브키 - 원래 키로부터 16개의 48비트 서브키 생성

  • AES
    DES와 3중DES의 취약점을 해결한 암호 방식으로, 현재 가장 많이 사용되는 대칭키 암호화 알고리즘입니다. 128,192,256 세가지 키길이를 지원하는데, 가장 흔히 사용되는건 128비트이며, 블록 암호 방식을 사용합니다. 강력한 암호화 보안을 제공하며 효율적입니다. 
    • 키 길이 - 128비트, 192비트, 256비트
    • 블록 사이즈  - 128비트
    • 라운드 - 키 값에 따라 10,12,14로 다름
    • 키확장
      -입력된 키를 기반으로 여러 라운드 키를 생성합니다. (key size에 따라 달라짐 128bit - 10 , 192bit - 12 , 256bit - 14)
    • 라운드
      -여러 라운드를 거쳐 데이터 블록을 변환하며, 각 라운드는 서로 다른 연산을 수행합니다. 마지막라운드에서는 데이터블록의 변환을 수행하고 최종결과를 얻습니다. 각 라운드는 128비트로 바이트로 치환하여 4 * 4 행렬로 변환이 됩니다.
      라운드 과정 (한 라운드에서 일어나는 과정)
      • SubBytes(바이트 대체)
        - 블록의 각 바이트를 S-BOX 변환 테이블에 대입하여 치환하는 과정, 각 바이트값으로 S-BOX 테이블의 값으로 변환함. ( 바이트값 = xy => x는 S-box의 행 , y는 S-box의 열)

      • ShiftRows(행 이동)
        - 블록 내의 각 행을 순환이동 시킵니다. 이때, 행이 늘어남에따라 순환이동 시키는 열이 늘어납니다 ( 0행 -> 0개 , 1행 -> 1개 , 2행 - 2개)

      • MixColumns(열 섞기)
        - 각 열을 행렬연산을 통해 변환하는데, 행렬곱으로 계산하여 변환시킵니다.

      • AddRoundKey(라운드 키 더하기)
        - 현재 라운드 키와 블록을 비트별로 XOR연산을 합니다.

 

 

암호 운용 모드 종류

 

  • ECB(Electronic Code Book) 모드
    각 블록을 동일한 키로 암호화하여 평문의 패턴이 암호문에 그대로 나타나는 모드로 제일 단순하지만 보안취약성이 있다.

  • CBC(Cipher Block Chaining) 모드
    평문이 같아도 암호문이 다름. 따라서 각 평문블록은 이전 암호문 블록과 XOR 연산된 후 암호화가 진행되므로 평문이 같아도 암호문이 다릅니다.

  • CFB(Cipher Feedback) 모드
    스트림 암호와 유사한 방식으로, CBC의 방식과 유사하지만 블록의 크기와 상관없이 유동적이게 사용할 수 있습니다.

  • CTR(Counter) 모드
    순차적인 카운터 값이 블록 암호에 입력되고 해당 출력이 평문 입력값과 XOR 연산되어 암호문을 생성하는 모드입니다.

'네트워크' 카테고리의 다른 글

공개키 암호화 방식  (2) 2023.10.03
해시함수란?  (0) 2023.09.24
포트포워딩이란?  (0) 2023.08.21
서브넷 마스크 (+CIDR)  (0) 2023.07.25
모바일 네트워크 원리(셀룰러,핫스팟)  (0) 2023.07.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함