数论假设与Schnorr签名方案详解
1. 数论假设基础
在数论领域,我们常常会涉及到一些关键的假设,这些假设是构建众多密码学方案的基础。下面我们将详细介绍离散对数假设和RSA假设。
1.1 子群生成
假设我们的目标是为素数 $p$ 选取 $Z_p^ $ 的一个素数阶 $q$ 的子群。通常,$p$ 和 $q$ 会有特定的比特长度 $\lambda_p$ 和 $\lambda_q$。具体步骤如下:
1. 生成素数 $q$ :根据素数定理,小于 $n$ 的素数大约有 $n / \ln(n)$ 个。也就是说,一个 $\lambda_q$ 比特长度的随机数是素数的概率为 $1 / \ln(2^{\lambda_q})$。我们可以通过选择足够多的随机数,并使用高效的素性测试来找到合适长度的素数。虽然这种测试可能存在小误差,但通常可以将误差控制到可忽略不计的程度。
2. 生成素数 $p$ :在得到素数 $q$ 后,我们将 $q$ 与 $\lambda_p - \lambda_q$ 比特的偶数 $w$ 反复相乘,以得到 $\lambda_p$ 比特的素数 $p = wq + 1$。这同样需要进行素性测试,并且依赖于在 $\lambda_p$ 比特的整数中存在足够数量的这种特殊形式的素数这一性质。
3. 选取子群生成元 $g$ :我们从 $Z_p^ $ 中随机选择一个群元素 $h$,然后计算 $h^w \bmod p$,并检查该元素是否不等于 1。如果不等于 1,那么我们就找到了子群的生成元 $g$;如果等于
超级会员免费看
订阅专栏 解锁全文
734

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



