28、超椭圆网与Tate - Lichtenbaum配对及相关曲线构造研究

超椭圆网与Tate - Lichtenbaum配对及相关曲线构造研究

1. 超椭圆网算法

超椭圆网算法用于计算超椭圆网的特定元素。以下是该算法的详细内容:
- 输入 :超椭圆网的初始项 (W (m, 0))((-6 \leq m \leq 9))和 (W (m, 1))((-4 \leq m \leq 4)),以及整数 (m = (d_kd_{k - 1} \cdots d_1)_2)((d_k = 1))。
- 输出 :超椭圆网元素 (W (m, 0)) 和 (W (m, 1))。

Algorithm 1. Hyperelliptic Net Algorithm
Input: Initial terms W (m, 0) for −6 ≤m ≤9 and W (m, 1) for −4 ≤m ≤4 of a
hyperelliptic net and an integer m = (dkdk−1 . . . d1)2 with dk = 1
Output: Hyperelliptic net elements W (m,0) and W (m,1)
1: V ←[[W (−6, 0), W (−5, 0), . . . , W (9, 0)], [W (−2, 1), W (−1, 1), . . . , W (4, 1)]]
2: for i = k −1 down to 1 do
3:
    if di = 0 then
4:
        V ←Double(V )
5:
    else
6:
        V ←DoubleAdd(V )
7:
    end if
8: end for
9: return V [0, 7] and V [1, 3] // terms W (m, 0) and W (m, 1) respectively

该算法的流程如下:
1. 初始化 (V) 为包含初始项的二维列表。
2. 从 (k - 1) 到 (1) 进行循环:
- 如果 (d_i = 0),则对 (V) 执行 (Double) 操作。
- 否则,对 (V) 执行 (DoubleAdd) 操作。
3. 返回 (V[0, 7]) 和 (V[1, 3]) 作为 (W (m, 0)) 和 (W (m, 1))。

2. 初始值计算

在计算超椭圆网元素时,需要先确定初始值。对于亏格为 2 的情况,除了 (m) 和 (n) 较小时,(W(m, n)) 用雅可比簇上点的坐标表示的表达式非常复杂。以下是计算小 (m) 和 (n) 时 (W(m, n)) 的公式:
- (W(0, 0) = 0)
- (W(1, 0) = W(0, 1) = W(1, 1) = 1)
- (W(2, 0)) 的表达式较为复杂,这里省略具体内容。

其他初始项通过以下公式计算:
[
\frac{W(m + 1, i)W(m - 1, i)}{W(m, i)^2} = F_2([m]P + [i]Q, P)
]
其中 (i = 0, 1),且需要假设 (W(m, 0) \neq 0)((2 \leq m \leq 8))和 (W(m, 1) \neq 0)((-3 \leq m \leq 3))。函数 (F_2(P, Q)) 的计算公式为:
[
F_2(P, Q) = -(v_{11}^2 - b_2u_{11}v_{11} + b_1v_{11} - u_{11}u_{12} + u_{11}^3 - a_4u_{11}^2 + a_3u_{11}) + (v_{21}^2 - b_2u_{21}v_{21} + b_1v_{21} - u_{21}u_{22} + u_{21}^3 - a_4u_{21}^2 + a_3u_{21}) - u_{12}u_{21} + u_{11}u_{22}
]

3. Tate - Lichtenbaum 配对计算

通过超椭圆网可以计算 Tate - Lichtenbaum 配对。设 (m) 为正整数,且 (m | (q - 1)),假设 ([m]P = O)。如果某些特定值都不为零,则可以在 (O(\log m)) 次 (K) 中的操作内计算配对 (\tau_m(P, Q))。这些特定值包括 (W(2, 0), W(3, 0), \cdots, W(8, 0), W(-4, 1), W(-3, 1), \cdots, W(3, 1), \Delta(P)),对于一般的点 (P) 和 (Q),这些值通常都不为零。

4. 示例

以下是一个具体的示例,使用 PARI/GP 进行计算:
设 (q = 47),(m = 23),考虑曲线 (C: y^2 = x^5 + x + 41) 定义在 (F_{47}) 上。设 (D = (x^2 + 6x + 16, 31x + 3)) 和 (E = (x^2 + 29x + 24, 22x + 14)),对应的雅可比簇上的点为 (P) 和 (Q)。通过上述算法计算得到 (W(m + 1, 1) = 43) 和 (W(m + 1, 0) = 8),因此 (\tau_m(D, E) = \frac{43}{8} \bmod (F_{47}^ )^{23} = 23 \bmod (F_{47}^ )^{23})。

5. 算法优势

该算法具有以下优势:
- 与 Miller 算法具有相同的复杂度阶。
- 是 Stange 算法的推广,具有相同的优点,如需要较少的求逆操作,复杂度与汉明重量无关。
- 在亏格为 2 的情况下,不需要在二次扩展域上进行操作,避免了计算范数或结式。

6. 亏格 2 超椭圆曲线族研究

在密码学中,椭圆曲线和超椭圆曲线的使用依赖于计算给定曲线雅可比簇阶的能力。以下是相关研究的详细内容:
- 背景 :1985 年,Miller 和 Koblitz 独立提出在公钥密码学中使用有限域上椭圆曲线的有理点群。1989 年,Koblitz 建议在密码学中使用超椭圆曲线的雅可比簇。亏格为 1 的超椭圆曲线就是椭圆曲线,亏格为 2 和 3 的超椭圆曲线更复杂,但在密码学中是椭圆曲线的有吸引力的替代方案。
- 雅可比簇阶计算问题 :对于用于离散对数问题的任何群,需要群的阶包含一个大素因子。对于有限域上的椭圆曲线,Schoof - Elkies - Atkin(SEA)算法在任何特征下都能在多项式时间内运行,在小特征下还有基于 p - 进方法的更快算法。对于亏格为 2 的超椭圆曲线,p - 进方法在小特征下能给出有效的点计数算法,但当基础有限域的特征较大时,目前还没有像 SEA 那样高效的算法。
- 已有研究成果 :Furukawa、Kawazoe 和 Takahashi 给出了 (Y^2 = X^5 + bX) 类型曲线雅可比簇阶的显式闭公式。Satoh 给出了一个算法来测试 (Y^2 = X^5 + aX^3 + bX) 形式的超椭圆曲线雅可比簇的阶是否有大素因子,其方法依赖于曲线的雅可比簇与 (F_{q^4}) 上定义的椭圆曲线的平方是 (F_{q^4}) - 同构的,通过 SEA 算法计算 (F_{q^4}) 上的 zeta 函数,从而得到 (F_q) 上雅可比簇 zeta 函数的候选值,但该方法不明确,有 26 种可能的阶需要测试。
- 配对友好曲线构造 :近年来,许多有用的密码协议使用了双线性映射或配对。配对友好的超椭圆曲线是指适合用于配对密码系统的曲线,这种曲线很少,需要特定的构造方法。对于配对密码系统,雅可比簇的有理点群应具有大素阶子群 (r),嵌入度 (k) 应足够大以使 (F_{q^k}) 中的离散对数问题困难,同时又要足够小以使配对能够高效计算。效率参数 (\rho) 定义为 (\rho = g \log q / \log r),用于衡量雅可比簇阶和子群阶 (r) 的比特大小之比。构造具有小 (\rho) 值的配对友好椭圆曲线的问题已经得到了广泛研究,但对于亏格 (g \geq 2) 的配对友好超椭圆曲线,相关结果很少。
- 新贡献
- 扩展和推广 Satoh 的思想,为 (Y^2 = X^5 + aX^3 + bX) 和 (Y^2 = X^6 + aX^3 + b) 形式的亏格 2 超椭圆曲线雅可比簇的 zeta 函数提供显式公式,通过基本的多项式求根技术证明结果。
- 提出两种算法,补充 Freeman 和 Satoh 的算法,用于生成亏格 2 配对友好超椭圆曲线,方法基于最初用于生成配对友好椭圆曲线的 Cocks - Pinch 方法和 Brezing - Weng 方法。
- 表明之前关于嵌入度的安全考虑对于椭圆曲线是有效的,对于雅可比簇可以放宽。通过 Cocks - Pinch 类方法构造了 (\rho) 值约为 4 的曲线,通过 Brezing - Weng 类方法构造了 (\rho) 值约为 3 的曲线。

以下是一个简单的流程图,展示了超椭圆网算法的主要步骤:

graph TD;
    A[输入初始项和整数 m] --> B[初始化 V];
    B --> C[循环 i 从 k - 1 到 1];
    C --> D{di = 0?};
    D -- 是 --> E[V = Double(V)];
    D -- 否 --> F[V = DoubleAdd(V)];
    E --> C;
    F --> C;
    C --> G[返回 V[0, 7] 和 V[1, 3]];

以下是一个表格,总结了不同曲线类型的雅可比簇阶计算方法:
| 曲线类型 | 雅可比簇阶计算方法 |
| ---- | ---- |
| 椭圆曲线 | SEA 算法,小特征下 p - 进方法 |
| 亏格 2 超椭圆曲线(一般情况) | 小特征下 p - 进方法,大特征下暂无高效算法 |
| (Y^2 = X^5 + bX) | Furukawa 等的显式闭公式 |
| (Y^2 = X^5 + aX^3 + bX) | Satoh 方法(不明确,有 26 种可能阶),本文显式公式 |
| (Y^2 = X^6 + aX^3 + b) | 本文显式公式 |

超椭圆网与Tate - Lichtenbaum配对及相关曲线构造研究

7. 具体算法及方法分析
7.1 超椭圆网算法操作步骤

超椭圆网算法的操作步骤可详细拆解如下:
1. 输入准备 :确定超椭圆网的初始项 (W (m, 0))((-6 \leq m \leq 9))和 (W (m, 1))((-4 \leq m \leq 4)),以及整数 (m = (d_kd_{k - 1} \cdots d_1)_2)((d_k = 1))。
2. 初始化 (V) :将 (V) 赋值为包含初始项的二维列表,即 (V ←[[W (−6, 0), W (−5, 0), \cdots, W (9, 0)], [W (−2, 1), W (−1, 1), \cdots, W (4, 1)]])。
3. 循环处理 :从 (k - 1) 到 (1) 进行循环,对于每一个 (i):
- 判断 (d_i) 的值,如果 (d_i = 0),则执行 (V ←Double(V )) 操作。
- 如果 (d_i \neq 0),则执行 (V ←DoubleAdd(V )) 操作。
4. 输出结果 :循环结束后,返回 (V[0, 7]) 和 (V[1, 3]) 作为 (W (m, 0)) 和 (W (m, 1))。

7.2 初始值计算操作步骤

初始值计算的操作步骤如下:
1. 计算小 (m) 和 (n) 时的 (W(m, n))
- 令 (W(0, 0) = 0)。
- 令 (W(1, 0) = W(0, 1) = W(1, 1) = 1)。
- 按照复杂公式计算 (W(2, 0))。
2. 计算其他初始项 :使用公式 (\frac{W(m + 1, i)W(m - 1, i)}{W(m, i)^2} = F_2([m]P + [i]Q, P))((i = 0, 1))计算其他初始项,同时要确保 (W(m, 0) \neq 0)((2 \leq m \leq 8))和 (W(m, 1) \neq 0)((-3 \leq m \leq 3))。
3. 计算 (F_2(P, Q)) :使用公式 (F_2(P, Q) = -(v_{11}^2 - b_2u_{11}v_{11} + b_1v_{11} - u_{11}u_{12} + u_{11}^3 - a_4u_{11}^2 + a_3u_{11}) + (v_{21}^2 - b_2u_{21}v_{21} + b_1v_{21} - u_{21}u_{22} + u_{21}^3 - a_4u_{21}^2 + a_3u_{21}) - u_{12}u_{21} + u_{11}u_{22}) 计算 (F_2(P, Q))。

8. 配对友好曲线构造算法

本文提出的两种用于生成亏格 2 配对友好超椭圆曲线的算法,基于 Cocks - Pinch 方法和 Brezing - Weng 方法,以下是详细介绍:

8.1 Cocks - Pinch 类方法
  • 原理 :借鉴最初用于生成配对友好椭圆曲线的 Cocks - Pinch 方法,针对亏格 2 超椭圆曲线进行调整。
  • 构造过程
    1. 确定基础有限域 (F_q) 和相关参数。
    2. 选择合适的曲线形式 (Y^2 = X^5 + aX^3 + bX) 或 (Y^2 = X^6 + aX^3 + b)((a, b \in F_q^*))。
    3. 通过计算雅可比簇的 zeta 函数,利用显式公式确定曲线的阶。
    4. 筛选出具有大素阶子群 (r) 且嵌入度 (k) 合适的曲线,使得 (\rho) 值约为 4。
8.2 Brezing - Weng 类方法
  • 原理 :基于 Brezing - Weng 方法,对亏格 2 超椭圆曲线进行适配。
  • 构造过程
    1. 同样确定基础有限域 (F_q) 和相关参数。
    2. 选择合适的曲线形式。
    3. 计算雅可比簇的 zeta 函数,确定曲线阶。
    4. 筛选出满足条件的曲线,使 (\rho) 值约为 3。
9. 不同算法复杂度及优势对比

以下表格总结了不同算法的复杂度及优势:
| 算法 | 复杂度 | 优势 |
| ---- | ---- | ---- |
| 超椭圆网算法 | (O(\log m)) 次 (K) 中的操作 | 与 Miller 算法复杂度阶相同;是 Stange 算法的推广,求逆操作少,复杂度与汉明重量无关;亏格为 2 时无需在二次扩展域操作 |
| SEA 算法(椭圆曲线) | 多项式时间(任何特征) | 能在任何特征的有限域上计算椭圆曲线雅可比簇阶 |
| p - 进方法(椭圆曲线,小特征) | 更快 | 适用于小特征有限域上的椭圆曲线 |
| p - 进方法(亏格 2 超椭圆曲线,小特征) | 有效 | 小特征下可进行亏格 2 超椭圆曲线点计数 |
| Satoh 方法((Y^2 = X^5 + aX^3 + bX)) | 不明确,需测试 26 种可能阶 | 可测试曲线雅可比簇阶是否有大素因子 |
| 本文显式公式方法((Y^2 = X^5 + aX^3 + bX) 和 (Y^2 = X^6 + aX^3 + b)) | - | 提供显式公式,高效生成适合密码学使用的曲线 |

10. 流程图展示构造过程
graph TD;
    A[确定基础有限域 F_q 和参数] --> B[选择曲线形式];
    B --> C[计算雅可比簇 zeta 函数];
    C --> D[确定曲线阶];
    D --> E{是否满足条件};
    E -- 是 --> F[得到配对友好曲线];
    E -- 否 --> B;

这个流程图展示了使用本文方法构造配对友好曲线的主要过程,从确定基础参数开始,经过选择曲线形式、计算 zeta 函数、确定曲线阶,最后筛选出满足条件的曲线。

综上所述,本文对超椭圆网算法、初始值计算、Tate - Lichtenbaum 配对计算进行了详细介绍,并给出了具体示例和算法优势分析。同时,针对亏格 2 超椭圆曲线雅可比簇阶计算问题,扩展和推广了 Satoh 的思想,提供了显式公式。此外,通过提出的两种算法,成功构造出了具有合适 (\rho) 值的配对友好超椭圆曲线,为密码学中超椭圆曲线的应用提供了更有效的方法。

提供了一个基于51单片机的RFID门禁系统的完整资源文件,包括PCB图、原理图、论文以及源程序。该系统设计由单片机、RFID-RC522频射卡模块、LCD显示、灯控电路、蜂鸣器报警电路、存储模块和按键组成。系统支持通过密码和刷卡两种方式进行门禁控制,灯亮表示开门成功,蜂鸣器响表示开门失败。 资源内容 PCB图:包含系统的PCB设计图,方便用户进行硬件电路的制作和调试。 原理图:详细展示了系统的电路连接和模块布局,帮助用户理解系统的工作原理。 论文:提供了系统的详细设计思路、实现方法以及测试结果,适合学习和研究使用。 源程序:包含系统的全部源代码,用户可以根据需要进行修改和优化。 系统功能 刷卡开门:用户可以通过刷RFID卡进行门禁控制,系统会自动识别卡片并判断是否允许开门。 密码开门:用户可以通过输入预设密码进行门禁控制,系统会验证密码的正确性。 状态显示:系统通过LCD显示屏显示当前状态,如刷卡成功、密码错误等。 灯光提示:灯亮表示开门成功,灯灭表示开门失败或未操作。 蜂鸣器报警:当刷卡或密码输入错误时,蜂鸣器会发出报警声,提示用户操作失败。 适用人群 电子工程、自动化等相关专业的学生和研究人员。 对单片机和RFID技术感兴趣的爱好者。 需要开发类似门禁系统的工程师和开发者。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值