LUKS (Truecrypt 및 cryptsetup) 벤치마킹 결과가 다른 이유는 무엇입니까?


10

HDD의 일부를 암호화하고 싶습니다. 내가 선택해야한다면 내가 벤치 마크 싶었 그 전에 사용할 수있는 다양한 알고리즘이 궁금 aes-xts-256하거나 aes-xts-512.

참고 : aes하드웨어 가속 이 없습니다 . 벤치 마크는 큰 변화없이 여러 번 반복되었습니다. 이 벤치 마크가 내 컴퓨터 (Debian, core 2 duo)에서만 유효하다는 점을 분명히 밝히고 싶습니다. 이것은 완전한 LUKS-TrueCrypt 비교가 아닙니다.

TL; DR : 파트 4로 이동


1- 암호 설정

그래서 cryptsetup v1.6.0새로운 cryptsetup benchmark명령 을 사용하기 위해 다운로드 했습니다 .

명령

$cryptsetup benchmark

결과

 #  Algorithm | Key | Encryption |  Decryption
     aes-cbc   128b   128,2 MiB/s   157,2 MiB/s
 serpent-cbc   128b    49,6 MiB/s    57,7 MiB/s
 twofish-cbc   128b   138,0 MiB/s   183,8 MiB/s
     aes-cbc   256b    97,5 MiB/s   121,9 MiB/s
 serpent-cbc   256b    51,8 MiB/s    57,7 MiB/s
 twofish-cbc   256b   139,0 MiB/s   183,8 MiB/s
     aes-xts   256b   156,4 MiB/s   157,8 MiB/s
 serpent-xts   256b    55,7 MiB/s    58,7 MiB/s
 twofish-xts   256b   161,5 MiB/s   165,9 MiB/s
     aes-xts   512b   120,5 MiB/s   120,9 MiB/s
 serpent-xts   512b    55,7 MiB/s    58,5 MiB/s
 twofish-xts   512b   161,5 MiB/s   165,3 MiB/s

생각

  • 에서 cbc모드, serpent암호 해독에 놀라 울 정도로 빠르다!
  • 에서 xts모드, serpent명확하게 가장 빠르다.
  • 키 크기는 거의 눈에 띄지 않는 것으로 보입니다 .serpent twofish
  • aes 키 크기가 커지면 제대로 작동하지 않습니다.

VM에서 업데이트


2- TrueCrypt

aes하드웨어 가속이 없어도 가장 빠른 것으로 알고 놀랐습니다 . 그래서 TrueCrypt결과를 다시 확인하기 위해 다운로드 했습니다. TrueCrypt용도 xts나는 또한 가정의 벤치 마크에서 사용할 수 있도록 기본적으로 모드를.

방법

  1. 도구> 벤치 마크
  2. 버퍼 크기를 선택하십시오 (여기서는 5MB).
  3. "벤치 마크"를 클릭하십시오

결과

 #  Algorithm | Encryption |  Decryption
         AES     106 MB/s      107 MB/s
     Twofish      78 MB/s       76 MB/s
     Serpent      41 MB/s       42 MB/s

생각

이 결과는 예상 한 것과 훨씬 일치하지만 cryptsetup의 결과 와 잘 맞지 않습니다 .


3- 일반적인 생각

  • cryptsetupTrueCrypt이 경우 보다 더 나은 일반 성능을 제공했습니다 . 다음과 같은 방법으로 설명 할 수 있습니다.
    • cryptsetup컴파일러 최적화 루틴으로 내 시스템에서 컴파일되었지만 TrueCrypt이미 일반적인 방식으로 컴파일되었습니다.
    • AFAIK cryptsetup는 커널 공간 암호화 모듈을 TrueCrypt사용하고 사용자 공간 암호화 루틴 을 사용합니다.
  • 그러나, 나는 그 이유를 설명 할 수 없다 serpent-xts-512갈 방법이있을 것 같다 cryptsetup동안 aes-xts유일한 암호 가치가 사용.

4- 질문

cryptsetupTrueCrypt인 RAM 기준 완전히 다른 질적 (상대 암호화 속도) 및 정량적 (각 암호의 실제 속도) 결과를 제공한다.

  • 이미 눈치 채 셨나요?
  • 속도를 cryptsetup위해 serpent-xts-512암호를 신뢰 하고 사용해야 합니까?

답변:


5

AES 하드웨어 가속이없고 가상 머신에서 테스트를 실행했습니다. 암호화 / 암호 해독 속도가 현재 CPU 및 디스크로드에 크게 의존하기 때문에 테스트 결과에 실제 결과가 반영되지는 않습니다. 가장 좋은 방법은 두 개의 독립적 인 Truecrypt 파티션을 생성하고 각 파티션에 큰 파일을 복사하여 수동 벤치 마크를 수행하는 것입니다.

LUKS와 Truecrypt도 구현 방식이 약간 씩 다르며 "이 벤치 마크는 내 컴퓨터에서만 유효합니다". 실제 성능을 확인하려면 실제 파일 전송으로 시스템에서 실제로 테스트해야합니다.


차이점은 Truecrypt는 FUSE 를 사용 하여 사용자 공간 파일 시스템을 구현하는 반면 LUKS 는 일반적으로 실제 커널에서 수행됩니다. 따라서 어떤 옵션을 선택하든 암호화 요구 사항에 따라 다릅니다 (예 : Truecrypt 파티션은 운영간에 전송 될 수 있음). 필요한 경우 시스템).


이상한 : 나는 내 시스템에서 직접 시도했고 기본적으로 모든 것이 serpent느려진 것을 제외 하고는 서 있습니다. 뱀과 관련된 문제가 해결되었습니다. 에서 Twofish보다 더 빠르고 더 느립니다 . 그리고 하드웨어 가속이 전혀 없습니다. 이것은 VM이 아닙니다.aescryptsetup TrueCryptaes

결과를 업데이트했습니다.

@Gael cryptsetup은 (사용자 공간 파일 시스템)에서 실행 TrueCrypt되기 때문에 동일한 암호화 알고리즘 보다 더 빠를 것이지만 커널 모듈 인 LUKS를 사용합니다. 호스트 OS에서 다른 프로그램 (백그라운드 작업 포함)을 실행하는 것처럼 가상 시스템을 언급했는데 벤치 마크 결과에 영향을줍니다. TrueCryptFUSEcryptsetup
획기적인

1

Linux 커널에는 병렬화 가능한 워크로드 (예 : CBC 암호 해독 및 XTS enc & dec)를 가속화하기 위해 SSE2 및 AVX 최적화 Serpent 모듈이 있습니다.

CBC 암호 해독 및 해당 모듈이로드 된 XTS에서 Serpent의 성능은 소프트웨어 AES 및 Twofish와 거의 같은 수준이어야합니다 (정확한 CPU 모델에 따라 약간 빠르거나 느림).


0

또한 일부 VM에서 게스트 커널이 실행하는 SSE2 코드는 호스트 커널보다 훨씬 느립니다. Oracle VirtualBox에서 이것을 경험했습니다. 따라서 Serpent on VM의 결과가 실제 호스트의 예상 성능과 반드시 ​​관련이있는 것은 아닙니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.