패딩(암호촬영)

Padding (cryptography)

암호학에서 패딩은 암호화 전에 메시지의 시작, 중간 또는 끝에 데이터를 추가하는 여러 가지 고유한 작업 방식 중 하나입니다.고전 암호학에서 패딩은 많은 메시지들이 예측 가능한 방식으로 끝난다는 사실을 모호하게 하기 위해 메시지에 넌센스 문구를 추가하는 것을 포함할 수 있다.

고전적인 암호화

공식 메시지는 종종 예측 가능한 방식으로 시작되고 끝납니다.친애하는 대사님, 일기예보, 삼가 아뢰옵니다.기존 암호 패딩의 주요 용도는 암호 분석가가 이 예측 가능성을 사용하여 암호화를 해제하는 데 도움이 되는 알려진[1] 평문을 찾는 것을 방지하는 것입니다.또한 임의 길이 패딩은 공격자가 플레인텍스트메시지의 정확한 길이를 알 수 있습니다.

큰 오해를 불러일으킨 고전 패딩의 유명한 예는 "세계의 불가사의" 사건인데, 이것은 더 큰 레이테전투의 일부인 사마르 앞바다에서 벌어진 제2차 세계대전에서 연합군이 거의 패배할 뻔 했다.이 예에서,[2] 제2차 세계대전의 미국 태평양 함대 사령관인 체스터 니미츠 제독은 1944년 10월 25일 레이테만 전투에서 태스크포스 34(연합군의 주요 함대)의 사령관인 불 할시 제독에게 다음과 같은 메시지를 보냈다.

34번 [3]기동대는 어디에 있나?

패딩(굵은 글씨)과 메타데이터를 추가하면 메시지는 다음과 같이 됩니다.

TURKEY TROTS TO WATER GG FROM CINCPAC ACTION COM THIRD FLEET INFO COMINCH CTF SEVENTY-SEVEN X WHERE IS RPT WHERE IS TASK FORCE THIRTY FOUR RR THE WORLD WONDERS[3]

Halsey의 라디오 오퍼레이터가 일부 패딩을 메시지로 착각했기 때문에, Halsey 제독은 다음과 같은 메시지를 읽게 되었다.

34번 기동대는 어디에 있나?세상이[3] 궁금해하다

핼시 제독은 패딩 문구인 "세계의 놀라움"을 비꼬는 문책으로 해석했고, 그는 감정의 폭발을 일으켰고, 이후 한 시간 동안 다리를 걸어 잠근 채 삐져 있다가 사마르 [2]앞바다에서 전투를 지원하기 위해 그의 군대를 이동시켰다.Halsey의 라디오 오퍼레이터는 RR라는 문자에 의해 "The world wonders"가 패딩되고 있다는 정보를 받았어야 했다. 니미츠 제독의 메시지를 받은 다른 모든 라디오 오퍼레이터는 패딩 [2]문구를 정확하게 제거했다.

많은 기존 암호는 평문을 특정 패턴(예: 정사각형, 직사각형 등)으로 배열하며 평문이 정확하게 맞지 않을 경우 패턴을 채우기 위해 추가 문자를 제공해야 하는 경우가 많습니다.이 목적으로 난센스 문자를 사용하면 암호 해독이 더 어려워지는 단점이 있습니다.


대칭 암호화

해시 함수

대부분의 최신 암호화 해시 함수는 고정 길이 블록으로 메시지를 처리합니다.최초의 해시 함수를 제외한 모든 함수는 일종의 패딩 방식을 포함합니다.암호화 해시 함수는 해시가 길이 확장 공격에 취약하지 않도록 종단 방식을 사용하는 것이 중요합니다.

많은 패딩 방식은 예측 가능한 데이터를 최종 블록에 추가하는 것을 기반으로 합니다.예를 들어, 패드는 메시지의 총 길이에서 파생될 수 있습니다.이러한 패딩 방식은 MD-5, SHA-1SHA-2 패밀리(SHA-224, SHA-256, SHA-384, SHA-512/224, SHA-512[4]/256) 등의 Merkle-Damgard 구조를 사용하는 해시 알고리즘에 일반적으로 적용됩니다.

블록 암호 모드 동작

Cipher-Block-Chaining(CBC; 암호 블록 체인) 모드는 블록 암호 모드의 동작의 입니다.대칭키 암호화 알고리즘의 일부 블록 암호 모드(기본적으로 CBC 및 PCBC)에서는 블록크기의 배수가 되는 플레인텍스트 입력이 필요하기 때문에 메시지를 이 길이로 만들려면 패딩해야 할 수 있습니다.

현재 동작 [citation needed]블록 모드가 아닌 동작 스트리밍 모드를 사용하는 시프트가[when?] 있습니다.스트리밍 모드 암호화의 예로는 카운터 [5]동작 모드가 있습니다.스트리밍 동작 모드에서는 모든 크기의 메시지를 암호화 및 복호화할 수 있으므로 패딩이 필요하지 않습니다.암호문 도용이나 잔여 블록 종료와 같이 메시지를 종료하는 보다 복잡한 방법은 패딩의 필요성을 방지합니다.

패딩의 단점은 메시지의 플레인텍스트가 패딩 오라클 공격에 취약하다는 점입니다.패딩 오라클 공격을 통해 공격자는 블록 암호 프리미티브 자체를 공격하지 않고 플레인텍스트에 대한 정보를 얻을 수 있습니다.패딩 오라클 공격은 공격자가 패딩 바이트 제거에 대한 정보를 얻을 수 없도록 함으로써 방지할 수 있습니다.이를 위해서는 패딩 바이트를 삭제하기 전에 메시지 인증 코드(MAC) 또는 디지털 서명을 확인하거나 스트리밍 동작 모드로 전환합니다.

비트 패딩

비트 패딩은 모든 크기의 메시지에 적용할 수 있습니다.

단일 세트('1') 비트가 메시지에 추가된 후 필요한 개수만큼(아마도 없음) 재설정('0') 비트가 추가됩니다.추가된 리셋('0') 비트 수는 메시지를 확장해야 하는 블록 경계에 따라 달라집니다.비트로 표현하면 '1000...0000".

이 메서드는 임의의 비트 길이의 메시지를 패딩할 때 사용할 수 있으며, 반드시 바이트의 정수는 아닙니다.예를 들어, 32비트 블록을 채우기 위해 9비트로 패딩된 23비트의 메시지가 표시됩니다.

... 1011 1001 1101 0100 0010 0111 000000

이 패딩은 MD5 SHA를 포함많은 해시함수에서 사용되는2단계 패딩 방식의 첫 번째 단계입니다.이 컨텍스트에서는 RFC 1321 스텝 3.1로 지정되어 있습니다.

이 패딩 방식은 ISO/IEC 9797-1에 의해 패딩 방법 2로 정의됩니다.

바이트 패딩

바이트 패딩은 정수 바이트로 인코딩할 수 있는 메시지에 적용할 수 있습니다.

ANSI X9.23

ANSI X9.23에서는 1 ~8 바이트가 항상 패딩으로 추가됩니다.블록은 랜덤 바이트로 패딩되며(많은 구현에서 00을 사용하지만), 블록의 마지막 바이트는 [6]추가된 바이트 수로 설정됩니다.

예:다음 예제에서는 블록사이즈는 8바이트이며 4바이트(16진수 형식)에 대해 패딩이 필요합니다.

... DD DD DD DD DD DD DD DD DD 00 00 04
ISO 10126

ISO 10126(withdraw, 2007[7][8])에서는 마지막 블록의 끝에서 랜덤바이트를 사용하여 패딩을 수행하고 패딩 경계를 마지막 바이트로 지정합니다.

예:다음 예제에서는 블록사이즈는 8바이트이며 4바이트에 대해 패딩이 필요합니다.

... DD DD DD DD DD DD DD 81 A6 23 04
PKCS#5 및 PKCS#7

PKCS#7은 RFC 5652에 설명되어 있습니다.

패딩은 정바이트 단위입니다.추가된 각 바이트의 값은 추가된 바이트 수입니다.N바이트, 각 값N추가됩니다.추가된 바이트 수는 메시지를 확장해야 하는 블록 경계에 따라 달라집니다.

패딩은 다음 중 하나입니다.

02 02 03 03 04 04 05 05 06 06 06 등 

이 패딩 방식(앞의 2가지 방식도 포함)은 다음과 같은 경우에만 잘 정의되어 있습니다.N256 미만입니다.

예:다음 예제에서는 블록사이즈는 8바이트이며 4바이트에 대해 패딩이 필요합니다.

... DD DD DD DD DD DD DD DD 04 04 04

원본 데이터의 길이가 블록 크기의 정수 배수인 경우B, 그 후 값이 있는 추가 바이트 블록B가 추가되었습니다.이는 복호화 알고리즘이 마지막 블록의 마지막 바이트가 추가된 패딩 바이트의 수를 나타내는 패드바이트인지 또는 일반 텍스트메시지의 일부인지를 확실하게 판별하기 위해 필요합니다.다음 정수 배수의 보통 텍스트메시지를 고려합니다.B바이트, 플레인텍스트의 마지막 바이트는 01입니다.추가 정보가 없으면 복호화 알고리즘은 마지막 바이트가 평문 바이트인지 패드 바이트인지를 판별할 수 없습니다.단, 추가함으로써B각 값의 바이트B01 플레인텍스트바이트 뒤에 복호화 알고리즘은 항상 마지막 바이트를 패드바이트로 취급하여 암호문 끝에서 적절한 수의 패드바이트를 제거할 수 있습니다. 즉, 마지막 바이트의 값에 따라 제거되는 바이트 수입니다.

PKCS#5 패딩은 PKCS#7 패딩과 동일하지만 64비트(8바이트) 블록사이즈를 사용하는 블록암호에만 정의되어 있습니다.실제로는 이 두 가지를 서로 바꿔 사용할 수 있습니다.

ISO/IEC 7816-4

ISO/IEC 7816-4:2005는[9] N바이트의 플레인텍스트에 적용되는 비트패딩 방식과 동일합니다.즉, 실제로 첫 번째 바이트는 블록의 끝에 도달할 때까지 '80'(16진수)의 값을 가진 필수 바이트이며, 필요에 따라 0 ~ N - 1 바이트를 '00'으로 설정합니다.ISO/IEC 7816-4 자체는 파일 시스템을 포함하는 스마트 카드의 통신 표준이며, 그 자체에는 암호화 사양이 포함되어 있지 않습니다.

예:다음 예제에서는 블록사이즈는 8바이트이며 4바이트에 대해 패딩이 필요합니다.

... DD DD DD DD DD DD DD DD 80 00 00 00

다음 예제에서는 1바이트의 패딩만 보여 줍니다.

... DD DD DD DD DD DD DD DD 80

제로 패딩

패딩에 필요한 모든 바이트는 0으로 패딩됩니다.제로 패딩 방식은 ISO/IEC 10118-1[10]ISO/IEC 9797-1[11]패딩 방법 1로 해시 및 MAC에 대해 지정되어 있지만 암호화에 [citation needed]대해 표준화되지 않았습니다.

예:다음 예제에서는 블록사이즈는 8바이트이며 4바이트에 대해 패딩이 필요합니다.

... DD DD DD DD DD DD DD DD DD 00 00 00 00 00

원본 파일이 하나 이상의 0 바이트로 끝나는 경우 제로 패딩은 되돌릴 수 없으므로 일반 텍스트 데이터 바이트와 패딩 바이트를 구분할 수 없습니다.메시지의 길이를 아웃 오브 밴드로 파생할 수 있는 경우에 사용할 수 있습니다.보통 늘 문자를 공백으로 제거할 수 있기 때문에 이진[clarification needed] 부호화 문자열(늘 종단 문자열)에 자주 적용됩니다.

제로 패딩은 "늘 패딩" 또는 "제로 바이트 패딩"이라고도 합니다.플레인텍스트가 블록크기로 [citation needed]이미 분할되어 있는 경우, 일부 실장에서는 제로 바이트의 블록을 추가할 수 있습니다.

공개 키 암호화

공개키 암호화에서 패딩이란 PKCS#1 v2.2, OAEP, PSS, PSSR, IEEE P1363 EMSA2, EMSA5 등의 사양 또는 스킴을 사용하여 암호화 또는 서명 메시지를 준비하는 프로세스입니다.비대칭 프리미티브의 최신 패딩 형식은 제한된 수의 바이트 암호화에 사용되는 RSA 알고리즘에 적용되는 OAEP입니다.

이 작업은 원래 메시지를 원시인들이 충분히 길게 하기 위해 무작위로 메시지에 추가되었기 때문에 "패딩"이라고 불립니다.이 패딩 형식은 안전하지 않기 때문에 더 이상 적용되지 않습니다.현대의 패딩 스킴은 공격자가 원시의 수학적 구조를 이용하기 위해 평문을 조작할 수 없도록 하는 것을 목적으로 하고 있으며, 보통 랜덤 오라클 모델에서 패딩 스킴을 깨는 것이 원시의 기초가 되는 어려운 문제를 해결하는 것만큼 어렵다는 증거를 수반한다.

패딩을 통한 트래픽 분석 및 보호

완벽한 암호화 루틴이 사용되더라도 공격자는 생성된 트래픽 양을 파악할 수 있습니다.공격자는 Alice와 Bob이 무슨 을 하고 있었는지 모를 수 있지만, 그들이 얼마나 많이 이야기했는지 알 수 있습니다.상황에 따라서는 이 누출이 매우 위험할 수 있습니다.예를 들어, 군대가 다른 나라에 비밀 공격을 계획하고 있을 때: 단지 많은 비밀 활동이 진행되고 있다는 것을 그들이 알도록 다른 나라에 경고하는 것으로 충분할 수 있다.

또 다른 예로서 가변 비트레이트 부호화를 사용하는 Voice Over IP 스트림을 암호화할 때 단위 시간당 비트 수는 가려지지 않으며 이를 이용하여 구어체를 [12]추측할 수 있습니다.마찬가지로 일반적인 비디오인코더에 의해 생성되는 버스트 패턴은 사용자가 유일하게 [13]시청하고 있는 스트리밍 비디오를 식별하기에 충분한 경우가 많습니다.웹사이트, 파일, 소프트웨어 패키지 다운로드 또는 온라인 비디오와 같은 개체의 전체 크기만 해도 공격자가 개체의 [14][15][16]출처를 알고 있거나 추측할 수 있는 경우 개체를 고유하게 식별할 수 있습니다.암호화된 콘텐츠 길이의 사이드채널은 잘 알려진 CRIM [17] BREACH 공격에서 HTTPS 통신에서 비밀번호를 추출하기 위해 사용되었습니다.

암호화된 메시지를 패딩하면 페이로드의 실제 길이를 가리기 때문에 트래픽 분석이 어려워질 수 있습니다.메시지를 패딩할 길이의 선택은 결정적으로 또는 랜덤으로 할 수 있습니다.각 접근법에는 다른 맥락에서 적용되는 강점과 약점이 있습니다.

랜덤 패딩

임의의 수의 추가 패딩 비트 또는 바이트를 메시지 끝에 추가할 수 있으며, 마지막에 패딩이 얼마나 추가되었는지를 표시할 수 있습니다.예를 들어 패딩 양이 0에서 최대 M 사이의 균일한 난수로 선택되면 도청자는 해당 범위 내에서 메시지의 길이를 정확하게 결정할 수 없습니다.최대 패딩 M이 메시지의 전체 크기에 비해 작을 경우 이 패딩은 오버헤드를 많이 추가하지 않지만 패딩은 오브젝트 전체 길이의 최하위 비트만 모호하게 하여 큰 오브젝트의 대략적인 길이를 쉽게 관찰할 수 있으므로 그 길이에 의해 여전히 고유하게 식별할 수 있습니다.반면 최대 패딩 M이 페이로드의 크기와 비교할 수 있다면, 메시지의 실제 페이로드 크기에 대한 도청자의 불확실성은 패딩이 메시지에 최대 100% 오버헤드(2배 확대)를 추가할 수 있다는 비용으로 훨씬 더 커집니다.

또, 같은 송신원으로부터의 연속되는 많은 메시지를 도청자가 볼 수 있는 일반적인 시나리오에서는, 공격자가 알고 있는 방법이나 추측할 수 있는 방법이 비슷하면, 도청자는 통계 기술을 사용해 랜덤 패딩의 메리트를 감소시켜, 최종적으로는 없앨 수 있습니다.예를 들어, 사용자의 응용 프로그램이 같은 길이의 메시지를 정기적으로 보내고, 도청자가 예를 들어 사용자의 응용 프로그램의 지문을 기반으로 사실을 알고 있거나 추측할 수 있다고 가정합니다.또는 공격 대상자가 퍼블릭서버인 경우 등, 액티브한 공격자는 엔드 포인트로 정기적으로 메시지를 송신하도록 유도할 수 있습니다.이러한 경우, 도청자는 많은 관찰에 대한 평균을 계산하여 일반 메시지의 페이로드 길이를 결정할 수 있습니다.

결정론적 패딩

결정론적 패딩 스킴은 항상 소정의 길이의 메시지 페이로드를 패딩하여 대응하는 특정 출력 길이의 암호화된 메시지를 형성합니다.많은 페이로드 길이가 동일한 패딩된 출력 길이에 매핑되면 동일한 길이의 메시지가 여러 번 송신된 후에도 도청자는 이러한 길이 버킷 중 하나 내에서 페이로드의 실제 길이에 대한 정보를 식별하거나 학습할 수 없습니다.이 점에서 결정론적 패딩 방식은 동일한 페이로드 크기의 연속된 각 메시지에 대해 추가 정보가 유출되지 않는다는 장점이 있습니다.

한편, 예를 들어 패스워드 추측 공격에서 1바이트의 플러스 또는 마이너스 등, 페이로드 사이즈의 작은 편차를 학습하는 것으로, 도청자가 메리트를 얻을 수 있다고 합니다.메시지 송신자가 페이로드 길이가1 바이트밖에 다른 많은 메시지를 송신할 수 없을 정도로 운이 나쁘고, 그 길이가 2개의 결정론적 패딩 클래스 사이의 경계에 정확히 일치할 경우, 이러한 플러스 마이너스1개의 페이로드 길이도 일관되게 다른 패딩 길이(예를 들어 1개의 블록 또는 마이너스)가 됩니다.공격자가 필요로 하는 세밀한 정보입니다.이러한 위험으로부터 랜덤 패딩은 메시지 길이의 최하위 비트를 독립적으로 가림으로써 더 많은 보호를 제공할 수 있습니다.

일반적인 결정론적 패딩 방법에는 일정한 블록 크기로 패딩하고 다음으로 큰 2의 거듭제곱으로 패딩하는 방법이 있습니다., 메시지 페이로드보다 훨씬 작은 블록사이즈로 결정적으로 패딩하는 것은 메시지의 최소 유의 비트만을 진정한 길이로 흐리게 하고 메시지의 실제 대략적인 길이는 거의 보호되지 않습니다.메시지를 2의 거듭제곱(또는 기타 고정 베이스)으로 패딩하면 메시지가 O(로그 M)에서 O(로그 로그 M)까지의 길이로 누출될 수 있는 최대 정보량이 감소합니다.단, 2의 거듭제곱으로 패딩하면 메시지사이즈의 오버헤드가 최대 100% 증가하며, 더 큰 정수 베이스의 거듭제곱으로 패딩하면 최대 오버헤드가 증가합니다.

패딩된 균일한 랜덤 블럽(PURB)을 위해 제안된 PADMé 방식은 결정적으로 메시지를 [16]지수보다 더 이상 (즉, 유의한 비트가 포함되지 않는) 부동 소수점 숫자로 표현 가능한 길이로 패딩한다.이 길이 제약에 의해 메시지 길이가 최대 O(log log M) 비트인 경우 2의 거듭제곱으로 패딩되는 등 메시지 길이가 최대 O(log log M) 비트의 정보가 누출되지만 작은 메시지의 경우 최대 12%의 오버헤드가 발생하며 메시지크기에 따라 점차 감소합니다.

「 」를 참조해 주세요.

  • 보내기 전에 많은 헛소리를 섞어서 채찍질하다
  • 블록 길이의 배수가 아닌 메시지를 처리하기 위한 또 다른 접근 방식인 암호문 도용
  • 초기화 벡터, 소금(암호촬영), 패딩과 혼동될 수 있습니다.
  • 키 캡슐화(대칭 키 교환에 사용되는 공개 키 시스템의 패딩 대체 수단)
  • PURB 또는 패딩된 균일한 랜덤 BLOB. 메타데이터 또는 길이 중 하나로부터의 누설을 최소화하는 암호화 규칙
  • 요람을 막는 또 다른 기술인 러시아의 교미

레퍼런스

  1. ^ Gordon Welchman, The Hut Six Story: Breaking the Enigma Codes, 78페이지.
  2. ^ a b c Willmott, H. P. (19 August 2005). "The Great Day of Wrath: 25 October 1944". The Battle of Leyte Gulf: The Last Fleet Action. Indiana University Press. ISBN 9780253003515.
  3. ^ a b c Tuohy, William (2007). America's Fighting Admirals: Winning the War at Sea in World War II. MBI Publishing Company. ISBN 9780760329856.
  4. ^ 를 클릭합니다NIST. "FIPS 180-4 Secure Hash Standard (SHS)" (PDF). NIST..
  5. ^ https://www.cs.columbia.edu/~http/http/s09/l05.pdf, 17페이지
  6. ^ "ANSI X9.23 cipher block chaining". IBM Knowledge Center. IBM. Retrieved 31 December 2018.
  7. ^ ISO 카탈로그, ISO 10126-1:1991
  8. ^ ISO 카탈로그, ISO 10126-2:1991
  9. ^ ISO 카탈로그, ISO/IEC 7816-4:2005
  10. ^ ISO/IEC 10118-1:2000 정보기술– 보안 기술 – 해시 함수 파트 1: 일반
  11. ^ ISO/IEC 9797-1:1999 정보기술– 보안 기술– 메시지 인증 코드 (MAC)– Part 1: 블록 암호를 사용하는 메커니즘
  12. ^ Wright, Charles V.; Ballard, Lucas; Coull, Scott E.; Monrose, Fabian; Masson, Gerald M. (1 December 2010). "Uncovering Spoken Phrases in Encrypted Voice over IP Conversations". ACM Transactions on Information and System Security. 13 (4): 35. CiteSeerX 10.1.1.363.1973. doi:10.1145/1880022.1880029. S2CID 9622722.
  13. ^ Schuster, Roei; Shmatikov, Vitaly; Tromer, Eran (August 2017). Beauty and the Burst: Remote Identification of Encrypted Video Streams. USENIX Security Symposium.
  14. ^ Hintz, Andrew (April 2002). "Fingerprinting Websites Using Traffic Analysis". Privacy Enhancing Technologies. International Workshop on Privacy Enhancing Technologies. Lecture Notes in Computer Science. Vol. 2482. pp. 171–178. doi:10.1007/3-540-36467-6_13. ISBN 978-3-540-00565-0.
  15. ^ Sun, Qixiang; Simon, D.R.; Wang, Yi-Min; Russell, W.; Padmanabhan, V.N.; Qiu, Lili (May 2002). "Statistical Identification of Encrypted Web Browsing Traffic". Proceedings 2002 IEEE Symposium on Security and Privacy. IEEE Symposium on Security and Privacy. pp. 19–30. doi:10.1109/SECPRI.2002.1004359. ISBN 0-7695-1543-6.
  16. ^ a b Nikitin, Kirill; Barman, Ludovic; Lueks, Wouter; Underwood, Matthew; Hubaux, Jean-Pierre; Ford, Bryan (2019). "Reducing Metadata Leakage from Encrypted Files and Communication with PURBs" (PDF). Proceedings on Privacy Enhancing Technologies (PoPETS). 2019 (4): 6–33. doi:10.2478/popets-2019-0056. S2CID 47011059.
  17. ^ Sheffer, Y.; Holz, R.; Saint-Andre, P. (February 2015). Summarizing Known Attacks on Transport Layer Security (TLS) and Datagram TLS (DTLS) (Report).

추가 정보

  • XCBC: csrc.nist.gov/groups/ST/toolkit/BCM/documents/workshop2/presentations/xcbc.pdf