其中
- 通用版本:即本文未采用任何优化的版本
- 部分汇编优化:仅用汇编优化
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 |
未经本人同意,禁止转载!