2016-11-10 1 views
0

나는 로컬 파일에 쓰기 (암호화)해야하는 문자열을 계속 생성합니다.AES로 "스트림"암호화

이미 응용 프로그램에 AES 라이브러리가 있으므로 가능한 경우 AES를 사용하는 것이 좋습니다.

접근 방식 1 : AES의 블록 크기는 16 바이트이므로 컴퓨터가 충돌하는 경우 손실 될 수있는 메모리의 16 바이트 데이터를 버퍼해야합니다.

접근법 2 : 먼저 모든 데이터를 파일에 쓰고 AES-CBC로 전체 파일을 주기적으로 암호화합니다. 이렇게하면 사용자는 짧은 시간 동안 암호화되지 않은 파일에 액세스 할 수 있습니다.

다른 방법이 있습니까?

+0

컴퓨터가 다운 될 것으로 예상됩니까? – elyashiv

+0

불행히도 그렇습니다. 응용 프로그램을 실행하는 컴퓨터는 종종 제대로 종료되지 않고 대신 전원이 꺼집니다. – user66875

+0

AES를 스트림 암호로 사용할 수 있습니다. 시작 지점 : http://security.stackexchange.com/questions/65085/using-aes-as-a-stream-cipher –

답변

-1

어쨌든 디스크에 15 바이트를 쓸 수 없으므로 필요한 모든 헤더에서 빼고 4KB의 배수로 데이터를 패딩하고 패딩 된 데이터를 암호화하십시오.

+0

왜 4KB로 패드합니까? AES는 일반적으로 [PKCS # 7 패딩] (https://en.wikipedia.org/wiki/Padding_ (cryptography) # PKCS7)으로 채워져 있습니다. – zaph

+0

@zaph : 일반적인 파일 시스템이 사용하는 것이기 때문에 (여러 개가 아닌 경우). 암호 부분에만 초점을 맞추지 마십시오. 여기에서의 문제는 정전이있는 경우에도 지속성에 관한 것입니다. – MSalters

+0

당신은 텍스트 파일, 이진 파일 등을 덧대겠습니까? 아니면 시스템을 알게 될까요? 그리고 디스크로 가져 오는 것이 아니라 디렉터리 항목을 만들어야하고 할당 루틴을 실행해야하며 캐시가 플러시됩니다. – zaph

관련 문제