AEAD 파일 암호화/복호화

AES-256-GCM 또는 (X)ChaCha20-Poly1305와 Argon2id로 파일을 비밀번호 암호화하고 다시 복호화합니다. 파일은 브라우저를 떠나지 않습니다.

입력 내용과 파일은 브라우저 밖으로 전송되지 않습니다

암호화

파일

대용량 파일은 브라우저에서 청크 단위로 처리됩니다.

메모리와 반복 횟수를 늘리면 비밀번호 추측이 느려지지만 암호화와 복호화도 오래 걸리고 그만큼의 메모리가 필요합니다. 설정은 파일에 저장되어 복호화할 때 자동으로 적용됩니다.

복호화

파일
암호화 패널에 입력한 비밀번호를 사용합니다.
출력

파일과 비밀번호를 선택한 뒤 암호화하거나 복호화하면 결과 파일과 헤더가 여기에 표시됩니다.

결과
헤더
이 페이지에서

AEAD 파일 암호화/복호화는 인증 암호화(AES-256-GCM, ChaCha20-Poly1305, XChaCha20-Poly1305)로 파일을 비밀번호로 보호하고 원본으로 되돌립니다. 모든 처리는 브라우저에서 이뤄지며 파일과 비밀번호는 업로드되지 않습니다.

상세 기능

비밀번호는 Argon2id(메모리 64 MiB, 3회 반복)와 무작위 16바이트 솔트로 256비트 키가 되므로, 빠른 하드웨어에서도 비밀번호 추측이 느립니다. 이어서 Rust/WebAssembly 모듈이 파일을 1 MiB 청크 단위로 암호화합니다. 청크마다 고유한 nonce(무작위 접두사와 청크 카운터)와 16바이트 인증 태그가 붙습니다. 진행률 표시줄에 속도와 남은 시간이 표시되고, 취소를 누르면 청크 사이에서 멈춥니다.

키 유도(Argon2id) 에서 비용을 고릅니다. 가벼움, 표준(기본값), 강함, 최대(1 GiB, 데스크톱용) 또는 메모리·반복 횟수·레인 수를 직접 지정할 수 있습니다. 비용이 높을수록 비밀번호 추측과 매번의 암호화·복호화가 같은 비율로 느려집니다. 기본값이 아닌 설정은 인증된 헤더에 기록되므로(9바이트 증가) 복호화에는 여전히 비밀번호만 필요하며, OWASP 최소 기준보다 낮은 설정에는 경고가 표시됩니다.

결과는 MDT3 형식의 .aead 컨테이너로, 알고리즘·솔트·nonce 접두사를 담은 35바이트 헤더(XChaCha20은 47바이트) 뒤에 청크들이 이어집니다. 헤더와 "마지막 청크" 플래그가 모든 청크와 함께 인증되므로, 잘못된 비밀번호, 바뀐 바이트, 순서가 바뀐 청크, 잘린 파일(청크 경계에서 정확히 잘린 경우 포함), 끝에 덧붙인 데이터는 모두 거부되고 손상된 결과가 나오지 않습니다. 알고리즘은 헤더에서 읽으므로 복호화에는 비밀번호만 있으면 됩니다.

이전 버전에서 만든 컨테이너(MDT2)도 계속 복호화됩니다. 다만 이 옛 형식은 1 MiB 경계에서 정확히 잘린 경우를 감지하지 못하며, 복호화 후 이를 알려 줍니다. 비밀번호는 입력한 그대로 사용하고, 이전 버전이 앞뒤 공백을 잘라냈기 때문에 옛 파일에는 공백을 뺀 비밀번호도 시도합니다. 암호화·복호화한 파일은 다운로드 전에 메모리에서 조립되므로 실제 크기 한도는 기기의 RAM입니다.

실용적인 예제

클라우드에 올리기 전 암호화: report.pdf(2.5 MiB)를 AES-256-GCM으로 암호화하면 report.pdf.aead가 되며, 크기는 2.5 MiB에 헤더 35바이트와 태그 3 × 16바이트가 더해집니다. 헤더 필드는 ASCII MDT3에 해당하는 4d445433으로 시작합니다.

다른 컴퓨터에서 복호화: 도구를 열고 복호화 패널에서 report.pdf.aead를 고른 뒤 같은 비밀번호를 입력해 report.pdf를 내려받습니다. .aead 확장자가 없는 파일은 이름 뒤에 .dec가 붙어 저장됩니다.

전송이 끊긴 경우: report.pdf.aead의 처음 2 MiB만 도착했다면, 짧아진 PDF를 돌려주는 대신 "복호화 실패: 비밀번호가 틀렸거나 파일이 손상되었거나 변경되었습니다." 오류로 멈춥니다.

빈 파일: 0바이트 파일도 51바이트 컨테이너(헤더와 인증된 빈 청크 하나)가 되므로, 비워진 컨테이너도 감지됩니다.

이 도구 사용 방법

  1. 암호화할 파일 선택

    암호화 패널의 파일에서 파일 선택을 클릭합니다.

  2. 알고리즘과 비밀번호 정하기

    알고리즘(기본값 AES-256-GCM)을 고르고 비밀번호를 입력합니다. 공백으로 시작하거나 끝나면 안내가 표시됩니다. 공백도 비밀번호에 포함됩니다.

  3. 암호화 후 다운로드

    파일 암호화를 클릭하고 진행률이 끝나면 다운로드로 <이름>.aead를 저장합니다.

  4. 나중에 복호화

    복호화 패널에서 .aead 파일을 고르고 위 필드에 같은 비밀번호를 입력한 뒤 파일 복호화, 이어서 다운로드를 클릭합니다.

팁 및 모범 사례

  • 비밀번호 복구는 없습니다. 비밀번호를 잃으면 이 도구를 포함해 누구도 파일을 복호화할 수 없습니다.
  • 짧고 "복잡한" 비밀번호보다 긴 암호문이 낫습니다. Argon2id는 추측을 늦출 뿐 123456을 지켜 주지는 못합니다.
  • XChaCha20-Poly1305는 128비트 무작위 nonce 접두사를 씁니다. 같은 비밀번호로 아주 많은 파일을 암호화한다면 이것을 고르세요.
  • "비밀번호 오류"와 "파일 변경"은 일부러 같은 오류로 표시됩니다. 태그 검증으로는 둘을 구분할 수 없습니다.
  • 옛 MDT2 파일은 다시 암호화하면 MDT3가 되어 잘림 감지가 적용됩니다.
  • 처음 방문한 뒤에는 네트워크 없이도 페이지가 동작합니다.