ChaCha20-Poly1305 Decrypt
RFC 8439 부가 데이터 인증 복호화 (AEAD)
개요
IETF RFC 8439 표준 ChaCha20-Poly1305 AEAD 암호문과 추가 인증 데이터(AAD)에 대해 16바이트 Poly1305 인증 태그를 먼저 검증한 뒤, 검증이 통과하면 원본 평문을 복호화하여 내보낸다.
사용 시점
- ChaCha20-Poly1305 Encrypt 또는 외부 RFC 8439 호환 구현체가 생성한 암호문과 태그를 검증·복호화할 때 사용한다.
파라미터 설정
| 파라미터 (ID) | 타입 및 기본값 | 노출 조건 | 설명 및 옵션 |
|---|---|---|---|
오류 단일화errorUnify |
boolean기본값: false |
항상 노출 | 활성화하면 내장 오류를 지정한 단일 오류 코드·메시지로 대체한다. |
단일화 오류 코드errorUnifyCode |
text기본값: "" (비움) |
errorUnify가 true 일 때 |
오류 통합 활성화 시 사용할 오류 코드이다. |
단일화 오류 메시지errorUnifyMessage |
text기본값: "" (비움) |
errorUnify가 true 일 때 |
오류 통합 활성화 시 사용할 오류 메시지이다. |
포트 입출력 명세
포트 연결 규칙, 데이터 타입별 색상, 가변 포트 생성 방식은 포트 및 연결 문서를 참고한다.
입력 포트
포트 성격: 고정 입력 포트 (총 5개).
| 포트 이름 | 포트 ID | 데이터 타입 | 필수 여부 | 노출 조건 | 설명 |
|---|---|---|---|---|---|
Key |
key |
Bytes |
필수 | 항상 노출 | 32바이트(256비트) ChaCha20-Poly1305 비밀 키이다. |
Ciphertext |
ciphertext |
Bytes |
필수 | 항상 노출 | 복호화할 암호문 바이트 배열(Uint8Array)이다. |
Nonce |
nonce |
Bytes |
필수 | 항상 노출 | 암호화 시 사용한 12바이트(96비트) IETF Nonce이다. |
Auth Tag |
tag |
Bytes |
필수 | 항상 노출 | 검증할 16바이트(128비트) Poly1305 인증 태그(필수)이다. |
AAD |
aad |
Bytes |
선택 | 항상 노출 | 암호화 시 사용한 것과 동일한 추가 인증 데이터(AAD)이다. |
출력 포트
포트 성격: 고정 출력 포트 (총 1개).
| 포트 이름 | 포트 ID | 데이터 타입 | 노출 조건 | 설명 |
|---|---|---|---|---|
Plaintext |
plaintext |
Bytes |
항상 노출 | 인증 검증 및 복호화가 완료된 평문 바이트 배열(Uint8Array)이다. |
오류 케이스
실행 중 아래 조건이 발생하면 이 노드는 ERROR 상태가 되며, 출력 포트에 연결된 하위 노드는 실행되지 않는다. 오류 통합(errorUnify)을 활성화하면 아래의 모든 오류 코드가 사용자가 지정한 단일 오류 코드와 메시지로 대체된다.
| 오류 코드 | 기본 엔진 메시지 | 발생 조건 |
|---|---|---|
INVALID_KEY_LENGTH |
키 길이가 올바르지 않는다 | Key가 정확히 32바이트가 아닐 때 발생한다. |
INVALID_NONCE_LENGTH |
Nonce 길이가 올바르지 않는다 | 연결된 Nonce가 정확히 12바이트가 아닐 때 발생한다. |
INVALID_TAG_LENGTH |
인증 태그 길이가 올바르지 않는다 | 연결된 Auth Tag가 정확히 16바이트가 아닐 때 발생한다. |
AUTH_TAG_MISMATCH |
인증 태그가 일치하지 않는다 | Poly1305 인증 태그 검증에 실패했을 때(키, Nonce, AAD, 암호문, 태그 중 하나라도 변조되었을 때) 발생한다. |
활용 예시
ChaCha20-Poly1305 암호문 검증 및 복호화하기
태그를 검증하고 평문을 복원한다.
- ChaCha20-Poly1305 Encrypt의
Ciphertext와Auth Tag를 동일한Key,Nonce,AAD와 함께 ChaCha20-Poly1305 Decrypt에 연결한다.