红鱼儿

CnPack 密码算法库

概述

CnPack 密码算法库(CnPack Crypto Library)源于 CnPack 开发组的开源项目 CnVcl 组件包(CnVcl Component Package),是一套以纯 Object Pascal 语言编写的开源加解密源码库,支持 Delphi 5 至最新版本的 RAD Studio 及 Lazarus/FPC,并支持 32 位与 64 位的 Windows、MacOS、Linux 等操作系统。

CnPack 密码算法库致力于提供强大的加解密算法支持与数据安全保障。它覆盖了国内外常见的加解密算法及中国国家商用密码算法,包括对称加密、非对称加密、杂凑(或名散列、摘要、哈希)等大类及众多其他基础与辅助功能。

许可协议

CnPack 开发包以开放源码(Open Source)的形式发布,遵守 CnPack 的许可协议,受 CnPack 许可协议的保护。License 文件中有该协议的详细描述,具体内容可参考协议文件。

主要内容

  • 对称加密: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 位整型支持
  • 其他:关联数据认证加密、动态口令 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 信息安全技术动态口令密码应用技术规范》。

安装与使用

获取源码

有两种途径可获取最新版的 CnPack 密码算法库。第一种途径是 CnPack 网站上下载或 gitee 上直接拉取。第二种途径是 CnPack 网站上下载或 github 上拉取下载最新的 CnVcl 源码包,在 Windows 系统中解压后运行 cnvclGenCrypto.bat,即可在 cnvcl 的同级目录下生成 cncrypto 目录,内有 CnPack 密码算法库所有源码。日常 CnPack 密码算法库也是自 CnVcl 中维护再同步的。

编译引入

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

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

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

测试用例

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

关于我们

CnPack 开发组由互联网上热爱 Delphi/C++Builder 程序开发的一群中国程序员自愿者自发组成,其目标是开发中国人自己的真正优秀的第三方免费开源产品。

网站:https://www.cnpack.org
邮件:master@cnpack.org
微信公众号:CnPack开发组


相关下载:
CnPack 密码算法库 20240518 下载 (已下载 57 次)
Gitee 上的 CnPack 密码算法库 (已下载 12 次)

posted on 2024-05-20 08:01  红鱼儿  阅读(386)  评论(0编辑  收藏  举报