AES(128 또는 256) 암호화가 데이터를 확장합니까?그렇다면 어느 정도입니까?

StackOverflow https://stackoverflow.com/questions/93451

  •  01-07-2019
  •  | 
  •  

문제

소프트웨어 제품에 AES 암호화를 추가하고 싶은데, 데이터 용량이 늘어나서 고민입니다.데이터 크기가 증가할 것으로 추측하고 있으며 이를 보완하기 위해 압축 알고리즘을 추가해야 합니다.

도움이 되었습니까?

해결책

AES는 데이터를 확장하지 않습니다.게다가 출력은 일반적으로 압축 가능하지 않습니다.데이터를 압축하려면 암호화하기 전에 압축하십시오.

그러나 AES 암호화는 일반적으로 다음과 결합됩니다. , 어느 ~ 할 것이다 데이터 크기를 늘립니다(단 몇 바이트만).

다른 팁

AES는 마지막 블록 끝에 있는 몇 바이트의 패딩을 제외하고는 데이터를 확장하지 않습니다.

결과 데이터는 기본적으로 무작위이기 때문에 어떤 경우에도 압축할 수 없습니다. 어떤 사전 기반 알고리즘도 이를 효과적으로 압축할 수 없습니다.가장 좋은 방법은 데이터를 먼저 압축한 다음 암호화하는 것입니다.

암호화하기 전에 데이터를 압축하는 것이 일반적입니다.AES로 암호화된 데이터는 무작위로 나타나기 때문에 나중에 압축하면 작동하지 않습니다(헤더 등을 제외한 모든 좋은 암호의 경우).

그러나 일부 상황에서는 압축으로 인해 부채널 공격이 발생할 수 있으므로 자체 용도를 분석해야 합니다.이러한 공격은 최근 암호화된 VOIP에 대해 보고되었습니다.요점은 VBR로 압축할 때 음절에 따라 비트 전송률에 특징적인 변화가 발생한다는 것입니다. 왜냐하면 일부 사운드는 다른 사운드보다 더 잘 압축되기 때문입니다.따라서 데이터가 생성된 속도로 전송되므로 일부(또는 전체) 음절은 충분한 분석을 통해 복구 가능합니다.해결 방법은 CBR 압축을 사용하거나(덜 효율적인) 버퍼를 사용하여 인코더에서 나오는 데이터 속도에 관계없이 일정한 속도로 전송하는 것입니다(대기 시간 증가).

AES는 16바이트 입력 블록을 16바이트 출력 블록으로 변환합니다.유일한 확장은 데이터를 전체 블록 수로 반올림하는 것입니다.

나는 AES 암호화가 암호화되는 데이터에 아무것도 추가하지 않는다고 확신합니다. 왜냐하면 이는 상태 변수에 대한 정보를 제공할 것이기 때문입니다. 이는 암호화와 관련하여 나쁜 일입니다.

압축과 암호화를 혼합하려면 해당 순서대로 수행하십시오.그 이유는 암호화된 데이터가 (이상적으로는) 완전히 임의의 데이터처럼 보이고 압축 알고리즘은 실제로 데이터를 압축할 수 없고 압축된 파일 형식과 함께 제공되는 장부 관리 오버헤드로 인해 데이터를 더 크게 만들기 때문입니다.

압축이 필요한 경우 암호화하기 전에 압축을 수행하십시오.

아니요.유일한 변경 사항은 데이터를 블록 크기에 맞게 정렬하기 위한 약간의 패딩입니다.

그러나 콘텐츠를 압축하는 경우 이렇게 해야 한다는 점을 참고하세요. ~ 전에 암호화.암호화된 데이터는 일반적으로 임의 데이터와 구별할 수 없어 압축되지 않습니다.

@freespace 및 기타:암호화 수업에서 제가 기억하는 것 중 하나는 암호화하기 전에 데이터를 압축해서는 안 된다는 것입니다. 압축된 스트림의 일부 반복 가능한 청크(예: 섹션 헤더)를 사용하면 암호화를 더 쉽게 해독할 수 있기 때문입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top