본문 바로가기

SOFTWARE

STRCrypt

Secure Trusted Rust Cryptography

언어마다 암호 모듈을 따로 두지 않고, 국내·국제 표준 8종을 어느 언어에서나 같은 암호문으로 다룹니다.

0.xRust 코어 + Python · Node.js · Java 바인딩 · MIT

Evaluation 시험 배포 문의

시험 배포와 적용 범위는 문의를 통해 안내합니다.

Architecture

구성도Rust 코어가 CLI·언어 바인딩·RDBMS SQL 함수에 공통 암호 기능을 제공합니다. 운영 모드에 따라 허용 알고리즘을 구분합니다.
핀치/휠로 확대 · 드래그로 이동 · 더블탭/더블클릭으로 리셋

제품 개요

STRCrypt는 국내·국제 표준 암호 알고리즘을 하나의 Rust 기반 API로 제공합니다. 배포 형태와 적용 범위는 요건 확인 후 안내하며 라이선스는 MIT입니다.

적용 영역

국내 표준과 국제 표준을 함께 사용하는 공공·기업 환경에서 알고리즘 통합과 Python · Node.js · Java 간 암호문 호환을 단순화합니다.

사용법

CLI와 Python · Node.js · Java 바인딩이 동일한 알고리즘과 암호문 형식을 사용합니다. AAD · 배치 처리 · 파일 스트리밍도 같은 방식으로 제공합니다.

CLI

# 32바이트 키를 생성해 환경 변수에 등록 (릴리스 빌드 필수)
export STRCRYPT_KEY="$(openssl rand -base64 32 | head -c 32)"

# 하드웨어·지원 알고리즘·키 상태 확인
strcrypt info

# 알고리즘 지정 암호화 (기본 출력 파일 strcrypt_enc.bin)
strcrypt -a aria256gcm encrypt "Hello"

# 파일에서 복호화 (알고리즘 자동 감지)
strcrypt decrypt --from-file -i strcrypt_enc.bin

Python

import strcrypt

# 기본 암복호화 (현재 운영 모드의 기본 알고리즘)
ct = strcrypt.encrypt("안녕하세요")
pt = strcrypt.decrypt(ct)

# 알고리즘 · AAD 지정
ct = strcrypt.encrypt_with_algorithm_and_aad(
    "Hello", "aria256gcm", b"context"
)

# 배치 / 병렬 배치
enc = strcrypt.encrypt_batch(["msg1", "msg2"])
enc = strcrypt.encrypt_batch_parallel(["msg1", "msg2"])

Node.js

const strcrypt = require('strcrypt');

// 기본 암복호화
const ct = strcrypt.encrypt("안녕하세요");   // Base64 string
const pt = strcrypt.decrypt(ct);             // string

// 알고리즘 · AAD 지정
const enc = strcrypt.encryptWithAlgorithmAndAad(
  "Hello", "aria256gcm", Buffer.from("ctx")
);

// 배치 / 병렬 배치
const arr = strcrypt.encryptBatch(["msg1", "msg2"]);
const par = strcrypt.encryptBatchParallel(["msg1", "msg2"]);

Java

import com.strcrypt.StrCrypt;
import java.util.Arrays;
import java.util.List;

// 기본 암복호화
String ct = StrCrypt.encrypt("안녕하세요");
String pt = StrCrypt.decrypt(ct);

// 알고리즘 · AAD 지정
String enc = StrCrypt.encryptWithAlgorithmAndAad(
    "Hello", "aria256gcm", "ctx".getBytes()
);

// 배치 / 병렬 배치
List<String> arr = StrCrypt.encryptBatch(
    Arrays.asList("msg1", "msg2")
);

전체 API와 운영 설정은 도입 검토 시 함께 안내합니다.

지원 알고리즘 (8종)

KCMVP 검증 대상 알고리즘 (3종)

  • ARIA-256-GCM 국내 표준 기반 GCM 인증 암호
  • SEED-128-GCM 국내 표준 기반 GCM 인증 암호
  • LEA-128-GCM 국내 경량 블록 암호 기반 GCM 인증 암호

국제 표준 (5)

  • AEGIS-128L IETF CFRG 인증 암호 · AES-NI 가속
  • AEGIS-256 IETF CFRG 인증 암호 · 256비트 키
  • AES-256-GCM NIST/FIPS 표준 · 하드웨어 가속
  • AES-256-GCM-SIV Nonce 재사용에 강한 인증 암호
  • ASCON-128 NIST SP 800-232 경량 암호 표준

복호화 시 알고리즘은 암호문 헤더에서 자동 감지됩니다.

한 번 고른 알고리즘, 네 곳에서 같은 결과

언어마다 암호 모듈을 따로 두지 않습니다. 하나의 엔진을 CLI와 Python · Node.js · Java에서 같은 방식으로 씁니다.

알고리즘 고릅니다

  • 모드 분리 — 운영 정책에 따라 국내 표준 모드와 국제 알고리즘 모드를 나눠 적용합니다.
  • 키 래핑 — RFC 3394 · 5649 방식으로 키를 감싸 보관합니다.

처리 씁니다

  • 처리 형태 — 버퍼, 배치, 병렬 배치와 파일 스트리밍을 같은 방식으로 다룹니다.
  • 인증 부가 데이터(AAD) — 본문과 함께 변조를 검사할 값을 지정합니다.
  • 단일 바이너리 — AES-NI 지원 여부와 관계없이 같은 바이너리로 배포합니다.

안전 지킵니다

  • 자가시험 — 시작할 때 암호 기능을 스스로 시험하고 모듈 무결성을 확인합니다.
  • 메모리 소거 — 키와 민감 데이터를 사용한 뒤 메모리에서 지웁니다.

제품 사양

버전
0.x
라이선스
MIT
플랫폼
Linux · macOS · Windows
언어 바인딩
Python · Node.js · Java (네이티브 바인딩)
코어
Rust 네이티브
처리 성능
하드웨어 가속 여부와 데이터 크기에 맞춰 처리 경로 선택
바인딩 호환성
Python · Node.js · Java 간 동일한 암호문 형식 지원

보안 · 표준

라이선스
MIT · 상업 이용 및 재배포 가능
국내 표준
KCMVP 검증 대상 알고리즘 · ARIA-256-GCM · SEED-128-GCM · LEA-128-GCM
국제 표준
NIST/FIPS · IETF CFRG · NIST SP 800-232 · RFC 8452
동작 모드
KcmvpApproved (한국 표준 전용) · NonApproved (국제 표준)
모듈 인증
KCMVP 모듈 인증 미취득 · 인증 필수 환경은 별도 검토 필요
검증
자동화 테스트 · 벤치마크 · 퍼징 테스트
기술 지원
도입 시 배포와 취약점 패치 지원 제공

도입 · 시작하기

  1. 시험 배포와 운영 가이드 확인
  2. Python · Node.js · Java 바인딩 연결
  3. 모드 선택 — 한국 KCMVP 적용 환경은 KcmvpApproved, 그 외는 NonApproved
  4. 배치 암복호화 또는 파일 스트리밍 적용

리소스

시험 배포와 기술 자료는 적용 요건을 확인한 뒤 안내합니다.

리소스 문의

도입을 검토하고 계신가요?

고객 요건과 운영 환경에 맞춰 구성·도입 절차를 안내해 드립니다. 데모·제안 요청은 문의로 받습니다.

이미지를 클릭하면 원본 크기 · 바깥 클릭이나 Esc로 닫기