使用广义梅森素数的有限域快速约减求模算法推导实例

本文通过实例介绍了如何利用广义梅森素数对国密素域椭圆曲线SM2的素数p进行快速约减求模运算,详细推导了算法过程,涉及位移、加减运算,旨在提高计算效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

已知国密素域椭圆曲线SM2的素数p = 2^256 - 2^224 - 2^96 + 2^64 - 1

设x是任意64位二进制整数,0 < x < 2^64
令32位二进制整数b = x >> 32
令32位二进制整数a = x & 0xffffffff
则有x = (b * 2^32) + a
同理(x * 2^256)  = (b * 2^288) + (a * 2^256)

现在问题可以提出来了,想要计算(x * 2^256) mod p,该如何进行呢?
通用的大整数对素数p的求模算法诞生于上世纪70年代的计算数学领域,
对于特定的素数p,存在快速约减算法,能够大大提高求模运算的速度。

在电脑内存里,整数(x * 2^256)可表达如下:

|-----------|-----------|-----------|-----------|-----------|
|   2^256   |   2^192   |   2^128   |   2^064   |   2^000   |
|-----------|-----------|-----------|-----------|-----------|
|     x     |     0     |     0     |     0     |     0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值