2012-02-13 3 views
1

암호화 된 파일을 모두 저장해야합니다. 그룹은 매우 유사한 내용을 가지고 있습니다. 내가 압축을 사용하여 필요한 공간을 최적화하고 싶습니다,하지만 내가 찾은 암호화 알고리즘이 적합합니다. 그러나이 작업을 수행 할 수있는 도구가 있습니다 : rsyncrypto. 면허로 인해서 나는 그것을 사용할 수 없게되지만, 나는 그것의 구현을 연구하고 내 것을 기술 할 전문 지식이 없다. 내가 뭘 찾고 있는데 같은 일을 암호화 알고리즘을 사용할 준비가 무엇입니까 : 동일한 키가 사용되는 유사한 입력에 대한 유사한 출력을 제공합니다. 감소 된 암호화 강도는 허용됩니다. http://rsyncrypto.lingnu.com/index.php/Algorithm압축 친화적 인 암호화

본질 즉 어떤 로컬 번역 불변 기준에 따라 블록들로 파일을 분할하고, 그런 다음 별도 블록 암호화 : rsyncrypto 의해 사용

+1

파일을 먼저 압축 한 다음 암호화하는 것이 있습니까? 정의에 따르면 파일의 원래 내용에 대한 정보를 공개하지 않으려면 암호화 출력이 무작위 노이즈와 구분할 수 없으므로 적절한 암호화 알고리즘을 압축 할 수 없습니다. 물론 압축 알고리즘을 사용하여 진정한 무작위 데이터를 압축 할 수 있습니다. 입증 된 정보 이론입니다. – Borealid

+0

@Borealid 예, 파일은 저장된 위치에 암호화 된 형식으로 별도로 도착하며 여기에서 암호 해독되지 않습니다. 어느 정도는 보안을 희생해야한다는 것을 알고 있지만 그건 받아 들일 수 있습니다. –

+0

유사한 내용을 옮기거나 각 파일의 고정 오프셋에서 발생할 수 있습니까? – CodesInChaos

답변

0

알고리즘에서 설명한다.

알고리즘이 복잡해 보이지 않으므로 몇 시간 안에 구현할 수 있습니다. 같은 내용이 파일에 동일한 오프셋에서 유지하는 경우


, 당신은 멀리 더 간단한 알고리즘을 얻을 수 있습니다 :

나누기 일정한 크기의 블록 (64KiB 말)로 파일, 그 블록을 암호화 CBC를 별도로 사용합니다. 또는 XTS와 같은 디스크 암호화 용 모드를 사용하십시오.

+0

귀하의 두 번째 제안은 아마도 제 목적을 위해 작동 할 것입니다. 그래도 rsyncrypto가 왜 재발견해야하는지 궁금합니다. –

+0

@tvdien rsyncrypto는 시프트 된 데이터를 지원합니다. 블록이 다른 오프셋에서 다시 발생하면 여전히 유사한 것으로 인식됩니다. 이는 단순히 XTS 또는 일정한 크기의 블록을 사용할 수 없다는 것을 의미합니다. – CodesInChaos

+0

XTS는 암호화 키의 일부가 블록의 논리적 위치를 기반으로하기 때문에 원하는 것을 완벽하게 수행하지 못합니다. 따라서 동일한 내용을 가진 두 개의 암호화 된 블록은 (거의 확실하게) 관련없는 암호문을 생성합니다. – Borealid