빠른 시작

초안 — 소유자 검토 대기 (draft for owner review). 이 페이지는 영문 Quick Start를 한국어로 옮긴 초안입니다. 아래의 Rust 및 Python 예제는 2026-10-16에 이 소스 트리(1.0.0-rc.7 리비전)에 대해 실제로 실행되었습니다(실행 기록: 소스 저장소의 documents/public-release/evidence/229-documentation.md, 2026-10-16 절). 나머지 언어(TypeScript, Swift, Go, Java, Kotlin, C#, C)의 예제는 이 초안에 싣지 않았으며, 2026-10-09에 로컬 후보 패키지로 실행된 영문 페이지의 예제를 참고하십시오.

부채널(side-channel) 주장 한계. 이 페이지는 어떤 대상(target)에 대해서도 상수 시간(constant-time) 동작이나 부채널 저항성을 주장하지 않습니다. 부채널 측정 도구는 아무것도 다루지 않으며(발견 사항 A48) 측정 결과도 없습니다. Rust 및 C 코어는 상수 시간을 목표로 설계되었을 뿐 측정되지 않았고, 관리형 런타임(JIT, GC, 경계 검사)에 대해서는 어떤 타이밍 주장도 하지 않습니다. 이 페이지에서 상수 시간이나 부채널 기법을 언급하는 경우, 그것은 설계 의도 또는 권고이지 측정된 속성이 아닙니다.

언어별로 양자내성 알고리즘 한 번의 왕복(round trip)을 보여 줍니다. 패키지 좌표는 결정된 공개 이름이지만, 출시 전까지는 어떤 저장소에서도 찾을 수 없습니다. 소스에서 빌드하는 방법은 설치 안내(영문)를 보십시오.

프로파일은 명시적입니다. ml-kem-768, ml-dsa-65, falcon-512.r3-padded 등 카탈로그 식별자 하나가 알고리즘 하나, 매개변수 집합 하나, 바이트 인코딩 하나를 가리키며, 계열 이름(ml-dsa)은 다른 것으로 대체되지 않고 거부됩니다. ML-DSA, SLH-DSA, HAETAE, AIMer는 최대 255바이트의 컨텍스트 문자열로 서명하며, 한 컨텍스트로 만든 서명은 다른 컨텍스트에서 검증되지 않습니다.

Rust

[dependencies]
metamui-crypto = "1.0.0-rc.7"
rand = "0.8"
use metamui_crypto::{falcon512, mldsa65, mlkem768, Profile};

fn main() -> Result<(), metamui_crypto::Error> {
    let mut rng = rand::rngs::OsRng;

    let kp = falcon512::generate_keypair(&mut rng)?;
    let sig = falcon512::sign_padded(&kp.secret_key, b"hello", &mut rng)?;
    falcon512::verify_padded(&kp.public_key, b"hello", &sig)?;

    let kem = mlkem768::generate_keypair(&mut rng)?;
    let (ct, ss) = mlkem768::encapsulate(&kem.encapsulation_key, &mut rng)?;
    assert_eq!(mlkem768::decapsulate(&kem.decapsulation_key, &ct)?, ss);

    let dsa = mldsa65::generate_keypair(&mut rng)?;
    let sig = mldsa65::sign(&dsa.secret_key, b"hello", b"my-protocol/v1", &mut rng)?;
    mldsa65::verify(&dsa.public_key, b"hello", b"my-protocol/v1", &sig)?;
    assert!(mldsa65::verify(&dsa.public_key, b"hello", b"", &sig).is_err()); // 다른 컨텍스트

    assert!(Profile::parse("haetae").is_err()); // 계열 이름은 프로파일이 아님
    Ok(())
}

실행 방법: metamui-crypto-rust/metamui-crypto를 경로(path) 의존성으로 갖는 소비자 크레이트에서 cargo run --release. 종료 코드 0.

Python

pip install metamui-crypto==1.0.0rc7
from metamui_crypto.facade import profile

sig = profile("ml-dsa-65")
keys = sig.generate_keypair()
signature = sig.sign(keys.secret_key, b"message", context=b"my-app")
sig.verify(keys.public_key, b"message", signature, context=b"my-app")   # 실패하면 InvalidSignatureError

kem = profile("ml-kem-768")
ek, dk = kem.generate_keypair()
ct, ss = kem.encapsulate(ek)
assert kem.decapsulate(dk, ct) == ss

실행 방법: 새 Python 3.12 가상 환경에 pip install metamui-crypto-python/로 소스 디렉터리를 설치한 뒤 python -I로 위 블록을 실행. 종료 코드 0.

다른 언어

TypeScript, Swift, Go, Java, Kotlin, C#, C 예제는 영문 Quick Start 페이지에 있습니다.

이 예제가 보여 주지 않는 것

다음 단계

  1. 지원 알고리즘 — 카탈로그의 16개 계열, 49개 프로파일 (영문)
  2. 플랫폼 안내 (영문)
  3. API 레퍼런스 (영문)
  4. 보안 범위 (영문)

도움이 필요하면