SOFTWARE
STRCrypt
Secure Trusted Rust Cryptography
언어마다 암호 모듈을 따로 두지 않고, 국내·국제 표준 8종을 어느 언어에서나 같은 암호문으로 다룹니다.
시험 배포와 적용 범위는 문의를 통해 안내합니다.
Architecture
제품 개요
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 모듈 인증 미취득 · 인증 필수 환경은 별도 검토 필요
- 검증
- 자동화 테스트 · 벤치마크 · 퍼징 테스트
- 기술 지원
- 도입 시 배포와 취약점 패치 지원 제공
도입 · 시작하기
- 시험 배포와 운영 가이드 확인
- Python · Node.js · Java 바인딩 연결
- 모드 선택 — 한국 KCMVP 적용 환경은
KcmvpApproved, 그 외는NonApproved - 배치 암복호화 또는 파일 스트리밍 적용
리소스
시험 배포와 기술 자료는 적용 요건을 확인한 뒤 안내합니다.
도입을 검토하고 계신가요?
고객 요건과 운영 환경에 맞춰 구성·도입 절차를 안내해 드립니다. 데모·제안 요청은 문의로 받습니다.