CBC 모드 (디퓨저 포함)에 비해 XTS의 장점은 무엇입니까?
On 11월 30, 2020 by admin디퓨저가있는 CBC와 비교하여 AES-XTS의 “장점”을 이해하는 데 약간의 문제가 있습니다.
FileVault ,이 문서에서는 XTS 및 CBC (확산기 포함) 작업의 두 가지 모드와 XTS의 장점을 언급합니다.
두 모드 모두 암호화 데이터 단위는 거의 같은 방식입니다. CBC의 경우 섹터 번호는 어떻게 든 IV를 구축하는 데 사용되며 XTS의 경우 블록 오프셋도 포함하는 “조정 값”이 있으므로 각 데이터 블록을 독립적으로 암호화 할 수 있습니다 (하드 드라이브를 암호화 할 때 의미가 있음). 파티션). XTS의 장점을 잘 모르겠습니다.
이제 XTS에 대해 다음과 같이 씁니다.
대안에 비해 몇 가지 장점이 있습니다. CBC의 AES와 같은 : 초기화 벡터가 필요하지 않습니다 (비틀기 키는 블록 번호에서 파생 될 수 있음). 각 블록은 다르게 암호화됩니다 (조정 값이 다르기 때문에). AES-CBC와 달리 AES-XTS는 각 AES 입력을 암호화 된 비틀기의 다른 이동 버전으로 xor-ing하여 공격자가 데이터 단위에서 특정 비트를 변경하는 것을 방지합니다.
아마 그들은 XTS와 CBC (디퓨저없이)를 비교했을 것입니다 … 그렇다면 XTS의 이점을 아는 사람이 있습니까?
그리고 누군가 두 번째 이점을 설명 할 수 있습니다. “AES- XTS는 암호화 된 비틀기의 다른 이동 버전을 사용하여 각 AES 입력을 xor-ing하여 공격자가 데이터 단위의 특정 비트를 변경하는 것을 방지합니다. “?
댓글
- ' " 디퓨저 "는 무엇입니까? " 섹터 번호는 어떻게 든 " 어떻게됩니까? ' 계획을 명확하게 설명하지 않았습니다. 알고리즘을 예측할 수있는 경우 약점으로 이어지고 예측할 수없는 알고리즘은 비용이 많이 듭니다.
- @CodesInChaos 참조는 Microsoft ' s Elephant diffuser를 사용하는 것이라고 생각합니다. BitLocker ( download.microsoft.com/download/0/2/3/ … ) — 경고 : PDF 다운로드 ).
- Cryptography Stack Exchange에 오신 것을 환영합니다. 귀하의 질문은 소프트웨어 개발 (Stack Overflow의 주제)과 직접적인 관련이없고 여기에 더 많은 주제가 있기 때문에 여기로 마이그레이션되었습니다. 댓글을 달고 답변을 받으려면 여기에서도 계정을 등록하세요.
답변
XTS vs. Undiffused CBC. 여기서 문제는 악성 입니다. XTS와 CBC는 모두 공격자가 암호화 된 데이터에 대한 정보를 학습하는 것을 방지합니다. 그러나 어느 누구도 공격자가 암호화 된 데이터로 변조 하는 것을 완전히 막는 데 성공하지 못합니다.
그러나 (확실되지 않은) CBC 암호문을 변조하는 것보다 더 쉽습니다. XTS 암호문을 변조합니다. 어떤 메시지가
“blah blah Alice에게 \ $ 400을주세요 … blah blah blah “.
이 메시지가 CBC를 사용하여 암호화 된 경우 공격자는 이제 암호를 해독하는 방식으로 암호문을 변조 할 수 있습니다.
“blah blah! ^ % @ ^^ Alice에게 \ $ 800 blah blah blah”
400 달러가 800 달러가되었습니다. “AES-XTS는 공격자가 데이터 단위에서 특정 비트를 변경하지 못하도록 방지”에 대한 귀하의 인용문입니다. 여기서는! ^ % @ ^^를 작성하여 암호가 해독되면 이전 16 바이트 블록이 횡설수설이되고이 횡설수설은 공격자가 제어 할 수 없음을 나타냅니다.
반면에 XTS를 사용하여 공격자는 16 바이트 블록을 임의의 횡설수설로 변환하여 메시지를 손상시킬 수 있지만 CBC 예제에서와 동일한 수준의 제어 권한을 가질 수는 없습니다.
그러나 Microsoft는 어쨌든 XTS를 사용하지 않기로 결정했습니다. 그 이유는 16 바이트 블록을 손상시키는 기능이 여전히 손상 될 수 있기 때문입니다. 링크 된 문서의 인용문은 다음과 같습니다.
예를 들어, 0으로 설정하면 OS에 보안 허점을 만드는 값이있는 구성 파일 (또는 레지스트리 항목)이있을 수 있습니다. 디스크에서 설정은 “enableSomeSecuritySetting = 1″과 유사합니다. 값의 시작이 16 바이트 경계에 있고 공격자가 일반 텍스트 값을 무작위로 지정하면 처음 2 바이트가 될 확률이 $ 2 ^ {16} $ 입니다. 평문의 0x30 0x00은 ASCII 값 0을 인코딩하는 문자열입니다.
(이 따옴표는 LRW 조정 가능한 암호를 나타냅니다. 그러나 XTS에서 사용되는 XEX 조정 가능 암호는 동일한 문제가 있습니다.)
디퓨저 추가. 사용 디퓨저는이 문제에 대한 Microsft의 해결책입니다.여기서 아이디어는 일반 텍스트를 암호화하기 전에 “혼합”하여 공격자가 \ $ 400에서 \ $ 800으로 변경할 수 없도록하는 것입니다. — 암호문의 일부를 간섭하면 그 일부가 아니라 거의 전체 일반 텍스트가 변경됩니다.
이것이 좋게 들리지만 한 가지 문제점이 있습니다. Microsoft의 디퓨저가 실제로 안전한지 아무도 실제로 알지 못합니다. 내 지식으로는 암호화 전문가로부터 공식 분석을받지 못했습니다. 이것은 당신이 그것에 의존하는 것에 대해 회의적이어야 함을 의미합니다. Microsoft는이를 인정합니다.
불이익 측면에서 디퓨저는 검증되지 않은 새로운 알고리즘이며 이로 인해 필연적으로 의문이 제기됩니다. 광범위한 공개 조사와 알고리즘 분석 없이는 보안에 대한 정당한 회의가 있습니다. 사람들은 새로운 알고리즘을 신뢰하기를 꺼립니다. 그렇다면이 옵션을 선택한 이유는 무엇입니까? 최종 분석에서 이것이 우리 제품에 더 나은 선택이라고 결정했습니다. 대안에 비해 성능 향상은 새로운 디퓨저 알고리즘의 단점을 능가 할만큼 중요했습니다. 시간이 우리가 올바른 선택을했는지 알려줄 것입니다.
요점. XTS는 확산되지 않은 CBC보다 가단성이 떨어집니다. 그러나 CBC + Diffuser는 적어도 실용적인 목적으로 XTS보다 아마 덜 가단합니다.
중요한 측면. CBC와 XTS 모두 비가 단성으로 설계되지 않았습니다. 암호문이 변조되지 않도록하는 것은 별도의 문제이며 HMAC-SHA256과 같은 MAC (메시지 인증 코드)를 사용하여 해결해야합니다. MAC이 일반적으로 전체 디스크 암호화 알고리즘에 사용되지 않는 이유는 (1) 성능 문제와 (2) MAC을 사용하려면 암호문과 함께 추가 정보를 저장해야하기 때문에 투명하게 추가하기가 약간 까다 롭습니다.
MAC와 디퓨저 사이의 중간 지점은 CMC, EME 또는 HEH와 같은 와이드 블록 암호화 모드를 사용하는 것입니다. “내장”디퓨저를 가지고 있다고 생각할 수 있습니다. Microsoft의 디퓨저와 달리 이러한 알고리즘에는 공식적인 보안 정의와 동료 검토를 거친 수학적 증명이 있습니다. AES가 안전하다는 가정하에 안전합니다. Microsoft는 (1) 성능 문제 및 (2) 특허 때문에 이러한 기능을 사용하지 않기로 결정했습니다.
댓글
- 디스크 암호화의 맥락에서 단순 MAC은 ' 충분하지 않습니다. ' 인증 된 루트가있는 해시 트리가 필요합니다.
- 이 훌륭한 답변에 감사드립니다 !!! 이로 인해 모든 것이 명확 해졌습니다 … 5 *****
- 아마도 '이긴 것 같지만 이겼습니다 ' 다른 암호 및 / 또는 다른 알고리즘을 사용하여 동일한 데이터를 두 번 암호화하여 가단성 문제를 해결하지 않습니까? 따라서 검증되지 않은 디퓨저 알고리즘을 사용하는 대신 검증 된 AES를 다시 사용하지 않는 이유는 무엇입니까?
- @Yura AES가 사용되는 방식에 따라 다릅니다 (예 : XTS는 일반적으로 AES 위에 구축 됨). CTR-AES 모드를 두 번 사용하면 ' 결과가 덜 가단 해지지 않습니다 (암호문에서 비트를 넘겨도 여전히 일반 텍스트에서 해당 비트가 넘겨 짐). CBC-AES 모드를 두 번 사용하는 경우 제 답변에서 언급 한 것과 동일한 공격을 수행 할 수 있지만 제어되지 않는 임의의 " 쓰레기 " 섹션이 두 배가됩니다. 마지막으로 보안 " wideblock " 모드에서 AES를 사용하는 것은 어쨌든 이러한 솔루션 중 하나만큼 빠릅니다. 대신 그렇게하는 것이 좋습니다.
- 업데이트 : Windows 10은 XTS 모드를 사용하는 옵션을 제공합니다. 더 크거나 나쁜 업데이트 : Windows 8에서 Microsoft는 디퓨저를 제거했습니다. 따라서 Windows 8 bitlocker에는 ' 디퓨저도 없습니다.
답글 남기기