其中
- 通用版本:即本文未采用任何优化的版本
- 部分汇编优化:仅用汇编优化
gm_i_bn_add_x
、gm_i_bn_sub
、gm_i_bn_mul
三个函数 - 汇编实现:即大部分采用汇编实现,大家可以参考gmssl的汇编实现。
算法 | 计算次数 | 通用版本 | 部分汇编优化 | 汇编实现 |
---|---|---|---|---|
gmp_add | 2亿次 | 12.510s | 5.220s | 1.535s |
gmn_add | 2亿次 | 12.279s | 5.422s | 1.480s |
gmp_sub | 2亿次 | 12.369s | 5.407s | 1.563s |
gmn_sub | 2亿次 | 12.051s | 5.540s | 1.462s |
gmp_mul | 1千万次 | 12.381s | 3.776s | 0.338s |
gmn_mul | 1千万次 | 12.324s | 3.634s | 0.471s |
gmp_sqr | 1千万次 | 12.256s | 3.652s | 0.273s |
gmn_sqr | 1千万次 | 12.278s | 3.652s | 0.405s |
gmp_exp | 1万次 | 4.949s | 1.377s | 0.137s |
gmn_exp | 1万次 | 4.775s | 1.367s | 0.172s |
gmp_inv | 1万次 | 6.011s | 1.715s | 0.091s |
gmn_inv | 1万次 | 5.494s | 1.607s | 0.145s |
point_dbl | 10万次 | 1.232s | 0.380s | 0.039s |
point_add | 10万次 | 2.081s | 0.612s | 0.076s |
point_mul | 1千次 | 6.242s | 1.615s | 0.140s |
gm_sv | 1千次 | 19.420s | 5.502s | 0.221s |
gm_sign | 1千次 | 6.728s | 1.962s | 0.058s |
gm_verify | 1千次 | 12.129s | 3.544s | 0.170s |
未经本人同意,禁止转载!