Random Value
선택한 타입(bytes/string/int/bool)의 암호학적으로 안전한 난수를 생성한다
개요
플랫폼의 암호학적으로 안전한 의사난수 생성기(CSPRNG, Web Crypto crypto.getRandomValues)를 사용하여 선택한 타입(Bytes, String, Int, Bool)의 난수를 생성한다.
새로 실행할 때마다 새로운 엔트로피를 샘플링하므로 일회용 키, 초기화 벡터(IV), AEAD Nonce, KDF 솔트, 챌린지 토큰 생성에 적합하다.
사용 시점
- AES Encrypt, ChaCha20-Poly1305 Encrypt 등에 사용할 예측 불가능한 대칭키(16/24/32바이트), IV(8/16바이트), Nonce(12바이트)를 생성할 때 사용한다.
- PBKDF2 Key Derivation이나 HKDF Key Derivation에 공급할 무작위 솔트를 생성할 때 사용한다.
- 퍼징(Fuzzing)이나 몬테카를로 시뮬레이션용 무작위 영숫자 문자열, 범위 내 정수, 불리언 값을 생성할 때 사용한다.
파라미터 설정
| 파라미터 (ID) | 타입 및 기본값 | 노출 조건 | 설명 및 옵션 |
|---|---|---|---|
타입type |
select기본값: bytes |
항상 노출 | 단일 출력 포트 Random이 생성할 데이터 타입을 선택한다.
|
길이length |
number기본값: 16 |
type가 bytes 또는 string 일 때 |
생성할 바이트 수(type = bytes일 때, 1~65536바이트) 또는 무작위 영숫자 문자 수(type = string일 때)를 지정한다. |
최솟값intMin |
number기본값: 0 |
type가 int 일 때 |
type = int일 때 무작위 정수의 최솟값(포함)이다. |
최댓값intMax |
number기본값: 100 |
type가 int 일 때 |
type = int일 때 무작위 정수의 최댓값(포함)이다. |
포트 입출력 명세
포트 연결 규칙, 데이터 타입별 색상, 가변 포트 생성 방식은 포트 및 연결 문서를 참고한다.
입력 포트
이 노드는 입력 포트가 없다.
출력 포트
포트 성격: 고정 출력 포트 (총 1개).
| 포트 이름 | 포트 ID | 데이터 타입 | 노출 조건 | 설명 |
|---|---|---|---|---|
Value |
bytes |
Bytes |
항상 노출 | 생성된 난수 값을 내보낸다(포트 레이블은 Random, 포트 ID는 bytes이며 런타임 데이터 타입은 선택한 타입을 따른다). |
오류 케이스
이 노드는 런타임 실패 케이스가 없으며(errorProfile: none), 타입이 맞는 모든 입력에 대해 항상 성공한다.
활용 예시
AES-256-GCM용 무작위 키와 96비트 Nonce 생성하기
실행할 때마다 새로운 32바이트 키와 12바이트 Nonce를 생성하여 AEAD 암호화를 수행한다.
- 첫 번째 Random Value 노드를 배치하고 타입 =
Bytes (Hex), 길이 =32로 설정한 뒤 AES Encrypt의Key에 연결한다. - 두 번째 Random Value 노드를 배치하고 타입 =
Bytes (Hex), 길이 =12로 설정한 뒤Nonce포트(GCM모드)에 연결한다.