Delphi下CnPack 密码算法库

概述

CnPack 密码算法库(CnPack Crypto Library)源于 CnPack 开发组的开源项目 CnVcl 组件包(CnVcl Component Package),是一套以纯 Object Pascal 语言编写的开源加解密源码库,支持 Delphi 5 至最新版本的 RAD Studio,支持 C++Builder 5/6 及 Lazarus/FPC,并支持 32 位与 64 位的 Windows、MacOS、Linux 等操作系统。
CnPack 密码算法库致力于提供强大的加解密算法支持与数据安全保障。它覆盖了国内外常见的加解密算法及中国国家商用密码算法,包括对称加密、非对称加密、杂凑(或名散列、摘要、哈希)等大类及众多其他基础与辅助功能。

密码库下载

点击下载

主要内容

  • 对称加密:SM4、AES、DES、3DES、RC4、ChaCha20、TEA、ZUC
  • 非对称加密:RSA、ECC
  • 椭圆曲线(魏尔斯特拉斯曲线,包括 SM2)、25519/448 椭圆曲线(蒙哥马利及扭曲爱德华曲线)
  • 杂凑:SM3、MD5、SHA1、SHA2/SHA3
  • 系列(192、256、384、512)、SHAKE、CRC8/16/32/64、Poly1305、FNV、一次性杂凑签名算法 OTS
  • 其他密码学领域:SM9、同态加密、协同加密、格密码、NTRU 编码解码:Base64、ASN.1(DER/BER)
  • CA证书:RSA/ECC 证书申请、签发与校验 大数支持:大整数、大有理数、大浮点数、一元大数多项式、二元大数多项式、一元大有理数分式
  • 运算支持:素数运算、浮点复数运算、位运算、矩阵运算、离散傅立叶变换、128 位整型支持
  • 其他:DSA、关联数据认证加密、动态口令
    OTP、密钥派生 KDF、秘密共享的 Shamir 门限方案及 Feldman VSS 方案

国密支持

CnPack 密码算法库对中国国家商用密码算法标准有着完整而强大的支持:

  • SM2:GM/T 0003.x-2012《SM2椭圆曲线公钥密码算法》,1~5
  • SM3:GM/T 0004-2012《SM3密码杂凑算法》
  • SM4:GM/T 0002-2012《SM4分组密码算法》
  • SM9:GM/T 0044-2016《SM9 标识密码算法》
  • ZUC:GM/T 0001.x-2012《祖冲之序列密码算法》,1~3

另外也包括 OTP:《GB/T 38556-2020 信息安全技术动态口令密码应用技术规范》。

安装与使用

在 Windows 系统中解压后运行 cnvcl/GenCrypto.bat,即可在 cnvcl 的同级目录下生成 cncrypto 目录,内有 CnPack 密码算法库所有源码。日常 CnPack 密码算法库也是自 CnVcl 中维护再同步的。

编译引入

CnPack 密码算法库不涉及 VCL/FMX 界面组件,仅是基础库的形式提供,因而可直接将 cncrypto/Source 目录加入 Delphi 的工程搜索路径,便可直接在工程中 uses 相应单元并调用。

另外 CnPack 密码算法库也提供了运行期包的形式,在任一版本 Delphi 中打开 cncrypto/Package/CnCrypto.dpk,即可编译成 BPL 使用。

注:如果在 Delphi 5 下编译 BPL,需手工将 requires 语句中的 vcl 改为 vcl50。

测试用例

cncryptoTest 目录下有一完整的命令行测试用例 CryptoTest.dpr,使用任一版本 Delphi 打开运行即可覆盖验证 CnPack 密码算法库的绝大多数功能,或用 C++Builder 5/6 打开 Crypto.bpr、或用 Lazarus 打开 Crypto.lpi,均同样可以运行。尾部两个用例耗时较长以小时计,跑时需有耐心。

你可能感兴趣的:(Delphi,名库讲解,算法)