密码学中的椭圆曲线、因子分解与离散对数
1. 椭圆曲线密码学
在密码学领域,椭圆曲线密码学是一种重要的加密方式。任何能在整数或其他类型数字上执行的操作,包括密码学操作,都可以应用于椭圆曲线上的点。不过,这里存在两个挑战需要克服:一是如何将信息表示为椭圆曲线上的点,二是如何调整操作以更适合椭圆曲线。
1.1 将信息表示为椭圆曲线上的点
假设我们有一个有限域 $(p, +, ×)$ 中的椭圆曲线,其方程为 $y^2 = x^3 + ax + b$。我们按以下步骤将消息表示为椭圆曲线上的点:
1. 把消息表示为一个整数 $m$,其中 $0 \leq m < p/100$。
2. 从 $j = 0$ 开始,最多尝试 100 个椭圆曲线上的点来表示消息:
- 令 $x_j = 100m + j$。
- 计算 $u$,$u$ 的值可能就是我们要的 $y_j$ 值,或者能帮助我们找到它。
- 检查 $u^{(p–1)/2} \equiv 1 \pmod{p}$ 是否成立。若不成立,则回到步骤 1;若成立,则 $u$ 是 $F_p$ 中的平方数,所以 $y_j \equiv \sqrt{u} \pmod{p}$。
- 若 $p \equiv 3 \pmod{4}$,可以用 $u^{(p + 1)/4} \bmod p$ 计算 $u$ 的平方根,进而得到 $y_j$。
- 若 $p \equiv 5 \pmod{8}$,通过计算 $a^{(p–1)/4} \bmod p$ 来计算平方根。若结果为 $+1$,则平方根为 $y_j \equiv u^{(p + 3)/8} \pmod{p}$;否则(若计算结果为 $–1$)
椭圆曲线与密码学核心难题
超级会员免费看
订阅专栏 解锁全文
51

被折叠的 条评论
为什么被折叠?



