Bitwise Logic
길이가 같은 바이트 배열끼리 비트 논리 연산(XOR, AND, OR)을 수행한다
개요
길이가 같은 두 개 이상의 바이트 배열에 대해 바이트 단위 비트 논리 연산(XOR $\oplus$, AND $\wedge$, OR $\vee$)을 수행한다.
자동 확장되는 가변 입력 포트를 지원하므로 2개뿐 아니라 3개 이상의 동일 길이 바이트 버퍼도 한 번에 폴딩(Folding) 연산할 수 있다.
사용 시점
- 스트림 암호 키스트림과 평문을 XOR하거나, OTP(One-Time Pad), 패딩 오라클/CBC 체이닝 수동 검증, 마스크 적용(AND/OR)을 수행할 때 사용한다.
파라미터 설정
| 파라미터 (ID) | 타입 및 기본값 | 노출 조건 | 설명 및 옵션 |
|---|---|---|---|
연산operation |
select기본값: XOR |
항상 노출 | 모든 연결된 입력 바이트 배열 사이에 적용할 비트 논리 연산자(XOR, AND, OR)이다.
|
포트 입출력 명세
포트 연결 규칙, 데이터 타입별 색상, 가변 포트 생성 방식은 포트 및 연결 문서를 참고한다.
입력 포트
| 항목 | 명세 |
|---|---|
| 포트 성격 | 가변 입력 포트(자동 확장 슬롯 포함) |
| 캔버스 초기 기본값 | Bytes 입력 포트 2개(Input 1 [in_1], Input 2 [in_2]). |
| 포트 개수 범위 | 입력 포트 2개 이상(연결 시 끝에 새 슬롯 자동 추가). |
| 허용 데이터 타입 | Bytes(연결된 모든 바이트 배열의 길이가 서로 같아야 함). |
| 포트 추가 및 관리 | 마지막 빈 포트에 와이어를 연결하면 다음 Input N+1 포트가 자동으로 생성된다. |
| 평가 및 순서 규칙 | 결합법칙과 교환법칙이 성립하는 바이트별 비트 연산을 연결된 모든 포트에 걸쳐 수행한다. |
출력 포트
포트 성격: 고정 출력 포트 (총 1개).
| 포트 이름 | 포트 ID | 데이터 타입 | 노출 조건 | 설명 |
|---|---|---|---|---|
Result |
result |
Bytes |
항상 노출 |
오류 케이스
실행 중 아래 조건이 발생하면 이 노드는 ERROR 상태가 되며, 출력 포트에 연결된 하위 노드는 실행되지 않는다.
| 오류 코드 | 기본 엔진 메시지 | 발생 조건 |
|---|---|---|
BYTES_LENGTH_MISMATCH |
길이가 같아야 하는 두 값의 길이가 다르다 | 연결된 입력 바이트 배열들의 바이트 길이가 서로 일치하지 않을 때 발생한다. |
활용 예시
두 개의 16바이트 블록 XOR하기
동일 길이의 두 바이트 배열을 XOR 결합한다.
- Bitwise Logic의 연산을
XOR (^)로 두고 두 개의 16바이트 출력을Input 1과Input 2에 연결한다.