Skip to content

Latest commit

 

History

History
55 lines (38 loc) · 2.11 KB

README-CN.md

File metadata and controls

55 lines (38 loc) · 2.11 KB

SM3-Fortran 杂凑(哈希)

SM3 密码杂凑算法是一种类似 SHA-256 的哈希算法,属于中国国家标准,本库仅包含一个 GmSSL 的 Fortran 接口及使用示例

基于兴趣,我学习了杂凑算法,我做了一些尝试,但是 Fortran 缺乏无符号整形,不适合实现哈希算法,只能依靠 C Binding。 在开源代码中,GmSSL 以其完成度较高的代码质量,受到欢迎。完全使用 fpm 引入 GmSSL 代码将导致编译失败, 本库选择部分引入 GmSSL/SM3 算法代码,作为 SM3-Fortran 的依赖。Fortran 标准库已经有了 Hash 算法, 引入 SM3-Fortran 有以下意义:

  • SM3 是国家标准的杂凑算法,GmSSL 是国人主导的项目,有着国人情怀;
  • SM3 安全性与 SHA-256 相当;
  • SM3-Fortran 是一个轻量化接口包,Fortran-Stdlib/Hash 体量相对更大;
  • SM3-Fortran 仅引入 SM3 算法,为其他算法的 Fortran Binding 提供实践参考。

中文 | English

依赖

开始

下载或克隆仓库到本地后,可使用 fpm 编译代码:

cd SM3-Fortran
fpm run --example demo      # 运行示例代码
fpm build --profile release
fpm build --profile release --flag "-DSM3_SSE3"     # 启动 SSE3 优化

也可以将 SM3-Fortran 添加到自建 fpm 项目:

[dependencies]
sm3-fortran = { git = "https://gitee.com/fortran-stack/sm3-fortran" }

学习 SM3 算法参考国家标准SM3-Fortran 使用请参考示例

参考链接