科布利茨曲线与弗罗贝尼乌斯展开的整数等价形式及二元域平方根提取
科布利茨曲线相关计算方法
在科布利茨曲线的计算中,我们关注随机 τ - 进非相邻形式(NAF)的整数等价计算。为了简化,这里仅考虑宽度为 2 的 τ - 进 NAF(所有 ϵi ∈ {0, 1, -1})。我们的方法可以概括为以下步骤:
1. 生成一个长度为 m - 1 的随机 τ - 进 NAF。此后,标量乘法可以与其余步骤并行计算。
2. 使用 U 序列,按照算法 3 从展开式构建 d0 + d1τ。
3. 计算整数等价 n = d0 + d1s (mod r)。
在硬件实现方面,如果使用随机整数进行标量乘法,通常需要先将整数对 δ 取模,并且在标量乘法之前计算 τ - 进 NAF。因为现有的产生 τ - 进 NAF 的算法是从右到左进行的,而标量乘法从左到右计算通常更高效。在这种情况下,端到端的计算时间是 Tτ + Tsm,其中 Tτ 是转换时间(包括对 δ 取模和生成 τ - 进 NAF),Tsm 是标量乘法时间。
然而,当在硬件上使用长度为 ℓ 的随机 τ - 进 NAF 进行标量乘法时,如果有单独的专用硬件,整数等价的计算可以与标量乘法同时进行。在合理假设 Tsm > Tτ 的情况下,端到端时间仅为 max(Tτ, Tsm) = Tsm。这里的 Tτ 表示生成随机 τ - 进 NAF 并计算整数等价所需的时间。
为了研究该方法在硬件上的实际可行性,我们实现了一个 FPGA 设计。该设计由两个加法器、两个比较器、一个 U 序列块和一些控制逻辑组成,其结构如图 1 所示。设计有两种工作模式:
- 第一模式
科布利茨曲线整数等价与二元域平方根提取
超级会员免费看
订阅专栏 解锁全文
5911

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



