kyber-sdk-ios/Sources/CKyber/kyber512.c
2026-05-06 22:28:00 +08:00

30 行
1.1 KiB
C

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

/*
* kyber512.c — Kyber512 变体翻译单元
*
* 安全级别NIST Level 1经典安全性约等于 AES-128
* 参数KYBER_K = 2
* - 公钥800 字节
* - 私钥1632 字节
* - 密文768 字节
* - 共享密钥32 字节
*
* 编译原理:
* 在 #include 各实现文件之前先定义 KYBER_K=2,
* params.h 中的 #ifndef KYBER_K 判断将使用此值,
* KYBER_NAMESPACE 宏展开为 pqcrystals_kyber512_ref_##s,
* 确保本翻译单元中所有符号名带有 "kyber512" 前缀,
* 与 kyber768.c / kyber1024.c 的符号互不冲突。
*
* 注意fips202 / randombytes 不在此处包含,它们在独立翻译单元中编译,
* 链接器负责解析本文件中对 shake128_xxx / sha3_xxx 等函数的引用。
*/
#define KYBER_K 2
#include "internal/kem.inc"
#include "internal/indcpa.inc"
#include "internal/poly.inc"
#include "internal/polyvec.inc"
#include "internal/ntt.inc"
#include "internal/cbd.inc"
#include "internal/reduce.inc"
#include "internal/verify.inc"
#include "internal/symmetric_shake.inc"