ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 운영모드 - 1
    Cryptography - Security/Dreamhack - Basic 2023. 5. 8. 17:14

     

    운영 모드

    블록 암호로 이러한 다양한 크기의 데이터를 처리할 수 있도록 고안된 블록 암호의 사용 방법

    운영 모드에는 여러 종류가 있으며, 블록 암호를 사용하는 서비스는 각각의 장단점을 고려하여 운영 모드를 선택한다

     

     

    패딩

    블록 암호는 블록 단위로 암호화를 하므로 입력의 길이가 정확하게 블록 크기의 배수가 되어야 합니다. 그러나 일반적으로 평문의 크기는 블록 크기의 배수가 되지 않는다

    이런 문제를 해결하기 위해 평문에 데이터를 붙여서 평문의 크기가 블록 크기의 배수가 되도록 만드는 과정을 패딩이라고 한다

    패딩된 암호문을 복호화할 때는 복호화된 평문에서 패딩을 제거해야 원래의 평문을 얻을 수 있다
    따라서 패딩 된 암호문의 수신자는 어떤 패딩이 적용됐는지 알아야 암호문을 제대로 복호화할 수 있다

     

     

    비트 패딩

    마지막 블록에서 평문이 채우지 못하는 비트 중 최상위 비트를 1로 설정하고, 나머지는 모두 0으로 채우는 패딩이다

    수신자는 평문의 마지막 비트부터 처음으로 값이 1인 비트가 나올 때까지를 패딩으로 인식할 수 있다
    1011 0110 1000 0000

    하지만 평문의 크기가 정확히 블록 크기의 배수일 때, 수신자가 메시지의 일부를 패딩으로 오인하게 되는 문제가 있다
    이를 막기 위해 비트 패딩을 적용할 때는 평문의 크기가 블록 크기의 배수이면, 패딩으로 한 블록을 추가해 준다

    1011 1011 1111 1000 와 같이 딱 맞는 경우 
    1011101111111000
    1000 0000 0000 0000 와 같이 뒤에 한 블록을 추가해 준다

     

     

    바이트 패딩

    바이트 단위로 패딩을 수행하는 패딩 기법 ( 종류가 다양함 )

    ASNI X.923은 마지막 블록의 남는 바이트를 임의의 값으로 채우고, 마지막 바이트에 패딩의 길이를 기록하는 기법
    14 50 00 00
    00 00 00 04

    바이트 패딩 역시 비트패딩과 마찬가지로 평문의 크기가 블록 크기의 배수일 때, 마지막에 한 블록을 패딩으로 추가

     

    PKCS#7은 공개키 암호의 표준 문서이며 7번째 문서는 AES와 같은 블록 암호의 패딩 기법을 제시한다

    추가할 패딩의 바이트 크기로 마지막 블록을 채우는 패딩 기법이며 아래의 예처럼 똑같이 채워준다
    14 50 00 00 04 04 04 04

    PKCS 역시 평문의 크기가 블록 크기의 배수이면 08 08 08 08 08 08 08 08 을 패딩으로 추가해 준다 

     

     

     

     

     

     

    Dreamhack - Cryptography 공부내용 정리

    https://dreamhack.io/

    관련된 문제는 사이트에 수록되어 있습니다

    728x90

    'Cryptography - Security > Dreamhack - Basic' 카테고리의 다른 글

    운영모드 - 2  (0) 2023.05.08
    DES - 3  (0) 2023.05.08
    DES - 2  (0) 2023.05.08
    DES - 1  (1) 2023.05.08
    AES - 2  (0) 2023.05.02
Designed by Tistory.