SEED Encrypt
KISA National Standard SEED 128/256-bit Block Cipher (RFC 4269)
Overview
Encrypts data using the Korean national standard 128-bit block cipher SEED (KISA TTAS.KO-12.0004 / ISO/IEC 18033-3 / RFC 4269). The node automatically selects between SEED-128 (16-round Feistel network, when a 16-byte key is connected) and SEED-256 (24-round Feistel network, when a 32-byte key is connected).
Supports CBC, GCM, CCM, CTR, ECB, CFB, and OFB modes over 16-byte blocks.
When to Use
- Implementing Korean financial, government, or KCMVP-compliant cryptographic protocols requiring SEED-128 or SEED-256.
- Validating KISA test vectors across CBC, CTR, GCM, or CCM modes.
Parameter Configuration
| Parameter (ID) | Type & Default | Visibility Condition | Description & Options |
|---|---|---|---|
Cipher Modemode |
selectDefault: ECB |
Always visible | Selects the operating mode (CBC, GCM, CCM, CTR, ECB, CFB, or OFB) and adapts visible ports. See Block Cipher Modes for full details.
|
Paddingpadding |
selectDefault: None |
Always visible | 16-byte block padding scheme applied in ECB and CBC modes. See Padding Schemes for full details.
|
Unify ErrorserrorUnify |
booleanDefault: false |
Always visible | Replaces built-in errors with a custom error code/message when enabled. |
Unified Error CodeerrorUnifyCode |
textDefault: "" (empty) |
When errorUnify is true |
Custom error code when Unify Errors is enabled. |
Unified Error MessageerrorUnifyMessage |
textDefault: "" (empty) |
When errorUnify is true |
Custom error message when Unify Errors is enabled. |
Port I/O Specification
See Ports & Connections for general wiring rules, data type colors, and dynamic port creation.
Input Ports
Port Nature: Fixed Input Ports (5 total; conditionally visible ports depend on parameter settings as shown below).
| Port Name | Port ID | Data Type | Required | Visibility Condition | Description |
|---|---|---|---|---|---|
Key |
key |
Bytes |
Required | Always visible | SEED secret key: 16 bytes (SEED-128) or 32 bytes (SEED-256). |
Plaintext |
plaintext |
Bytes |
Required | Always visible | Plaintext bytes (Uint8Array) to encrypt. |
IV |
iv |
Bytes |
Optional | When mode is CBC or CTR |
16-byte IV or initial counter block for CBC, CTR, CFB, and OFB modes (defaults to 16 zero bytes if unconnected). |
Nonce |
nonce |
Bytes |
Optional | When mode is GCM or CCM |
12-byte AEAD nonce for GCM and CCM modes (defaults to 12 zero bytes if unconnected). |
AAD |
aad |
Bytes |
Optional | When mode is GCM or CCM |
Optional Additional Authenticated Data for GCM and CCM modes. |
Output Ports
Port Nature: Fixed Output Ports (2 total; conditionally visible ports depend on parameter settings as shown below).
| Port Name | Port ID | Data Type | Visibility Condition | Description |
|---|---|---|---|---|
Ciphertext |
ciphertext |
Bytes |
Always visible | Encrypted output bytes (Uint8Array). |
Auth Tag |
tag |
Bytes |
When mode is GCM or CCM |
16-byte authentication tag produced in GCM and CCM modes. |
Error Cases
When any of the following conditions occurs at runtime, this node transitions to an ERROR state and downstream nodes connected to its outputs do not execute. Enabling Unify Errors (errorUnify) replaces all error codes below with your configured unified error code and message.
| Error Code | Default Engine Message | Trigger Condition |
|---|---|---|
INVALID_KEY_LENGTH |
Invalid key length | Raised when Key is neither 16 bytes (SEED-128) nor 32 bytes (SEED-256). |
INVALID_IV_LENGTH |
Invalid IV length | Raised when a connected IV is not 16 bytes or a connected Nonce is not 12 bytes. |
PLAINTEXT_NOT_BLOCK_ALIGNED |
In NoPad mode the plaintext length must be a multiple of the block size | Raised in ECB/CBC mode when Padding = None and Plaintext length is not a multiple of 16 bytes. |
INVALID_NONCE_LENGTH |
Invalid nonce length | Raised when a connected AEAD or stream-cipher Nonce is not 12 bytes (96 bits). |
Examples
Encrypting with KISA SEED-128-CBC
Encrypt a UTF-8 message using a 16-byte SEED key in CBC mode with PKCS#7 padding.
- Leave Cipher Mode set to
CBCand Padding set toPKCS#7. - Connect a 16-byte key to
Key, a 16-byte IV toIV, and your message bytes toPlaintext.