36、高效可证明安全的受限部分盲签名:双线性对的应用

高效可证明安全的受限部分盲签名:双线性对的应用

1. 引言

盲签名由Chaum引入,允许接收者在不向签名者透露消息任何信息的情况下获得消息签名。它在电子投票、电子现金等注重匿名性的应用中发挥着重要作用。

电子现金方案存在双花问题。在线电子现金方案虽能解决双花问题,但每次交易商店都需联系银行,导致银行成为系统瓶颈。Chaum提出的离线电子现金方案可事后追踪双花者,但因采用割选协议,效率较低。

受限盲签名由Brands首次提出,允许接收者获得签名者未知消息的盲签名,但消息选择受限。Brands还提出了高效电子现金系统,不过其原始受限盲签名方案基于Chaum - Pedersen的交互式零知识证明,通信成本高且签名长度长。

部分盲签名由Abe和Fujisaki引入,允许签名者为接收者生成盲签名,并明确包含共同商定的信息。它克服了全盲签名的一些缺点,在设计高效电子现金系统中很重要。

Maitland和Boyd首次结合这两种盲签名,提出了可证明安全的受限部分盲签名方案,但仍使用Chaum - Pedersen的零知识证明,增加了通信成本和签名长度。

本文提出了基于双线性对的新受限盲签名方案和受限部分盲签名方案,前者可视为后者的特殊情况。方案使用间隙Diffie - Hellman群,无需低效的零知识证明,具有签名长度短和通信复杂度低的优势,并在随机预言模型中给出了形式化安全证明。

2. 定义
  • 受限部分盲签名 :是一个四元组 (PG, KG, SG, SV)。
    • 系统参数生成PG :输入安全参数k,输出公共系统参数Params。
    • 密钥生成KG :输入Params,输出公私钥对 (pk, sk)。
    • 签名生成SG :用户U和签名者S为概率交互式图灵机。假设info是U和S商定的公共信息,U的公共输入带包含pk和info,S的公共输入带包含info,S的私有输入带包含sk,U的私有输入带包含消息m。U和S进行签名发行协议,在多项式时间内停止。若完成,U的私有输出带包含 (info, m, σ) 或⊥。
    • 签名验证SV :输入 (pk, info, m, σ),输出接受或拒绝。
  • 完整性 :若S和U遵循签名发行协议,对于每个常数c > 0,存在边界k0,使得对于k > k0,S在其适当的带上输出完成和info,U输出满足SV(info, m, σ) = accept的 (info, m, σ) 的概率至少为1 - 1/kc。
  • 受限性 :设m是用户U在盲签名发行协议开始时知道相对于生成元组 (g1, · · ·, gk) 表示 (a1, · · ·, ak) 的消息。协议结束后,设 (b1, · · ·, bk) 是U知道的m的盲化数m′的表示。若存在两个函数I1和I2,使得I1(a1, · · ·, ak) = I2(b1, · · ·, bk),则该协议称为受限盲签名协议。
  • 部分盲性 :设U0和U1是两个遵循签名发行协议的诚实用户。通过一系列步骤,若对于每个常数c > 0,存在边界k0,使得对于所有概率多项式时间算法S∗,S∗输出b′ = b的概率至多为1/2 + 1/kc(k > k0),则签名方案是部分盲的。
  • 不可伪造性 :设S是遵循签名发行协议的诚实签名者。对于任何概率多项式时间算法U∗,在上述游戏中,U∗输出的满足SV(pk, info, mj, σj) = accept(j = 1, · · ·, linfo + 1)的概率至多为1/kc(k > k0,常数c > 0),则部分盲签名方案是不可伪造的。
3. 基于双线性对的受限盲签名
3.1 间隙Diffie - Hellman盲签名方案的变体

引入反转计算Diffie - Hellman问题(RCDHP):给定g, ga和gb,计算满足a ≡ bc mod q的gc。RCDHP与CDHP等价。

基于RCDHP提出间隙Diffie - Hellman盲签名方案的变体:
- 系统参数与前文相同。
- 给定签名消息m和签名者的私钥x,签名为σ = H(m)x−1。任何人可验证 < g, y, σ, H(m) > 是有效的Diffie - Hellman元组。
- 盲签名方案:
- 用户选择随机数r ∈ Z∗q,发送 ˜m = H(m) · yr给签名者。
- 签名者计算 ˜σ = ˜mx−1并发送给用户。
- 用户计算σ = ˜σ · g−r。若 < g, y, σ, H(m) > 是有效的Diffie - Hellman元组,则σ是消息m的有效签名。

3.2 提出的受限盲签名方案
  • 系统参数生成 :给定安全参数k,G1是由g生成的间隙Diffie - Hellman群,阶为素数q,G2是同阶的循环乘法群,双线性对e : G1 × G1 → G2,H : G1 × G1 → G1是密码哈希函数。系统参数为Params = {G1, G2, e, q, g, k, H}。
  • 密钥生成 :签名者的公私钥对为 (x, y = gx)。
  • 签名生成
    1. 签名者生成随机数r ∈ Zq,发送z = mrx, b = mr, a = yr给接收者。
    2. 接收者检查e(z, g) = e(b, y) = e(m, a)。若不满足,终止协议;否则,生成随机数α, λ, u ∈ Zq,计算m′ = mα, z′ = zαλ, b′ = bαλ, a′ = aλ, ˜m = H(m′, z′, b′, a′)yu,并发送 ˜m给签名者。
    3. 签名者响应 ˜σ = ˜mx−1,接收者计算σ = ˜σg−u。
  • 签名验证 :(z′, b′, a′, σ) 是m′的有效签名,当且仅当e(σ, y) = e(H(m′, z′, b′, a′), g) 且e(z′, g) = e(b′, y) = e(m′, a′)。

下面是该方案的流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([开始]):::startend --> B(签名者生成随机数r):::process
    B --> C(签名者计算z = mrx, b = mr, a = yr):::process
    C --> D(签名者发送z, b, a给接收者):::process
    D --> E{接收者检查e(z, g) = e(b, y) = e(m, a)}:::decision
    E -->|否| F([终止协议]):::startend
    E -->|是| G(接收者生成随机数α, λ, u):::process
    G --> H(接收者计算m′ = mα, z′ = zαλ, b′ = bαλ, a′ = aλ, ˜m = H(m′, z′, b′, a′)yu):::process
    H --> I(接收者发送 ˜m给签名者):::process
    I --> J(签名者计算 ˜σ = ˜mx−1):::process
    J --> K(签名者发送 ˜σ给接收者):::process
    K --> L(接收者计算σ = ˜σg−u):::process
    L --> M([结束]):::startend
3.3 方案的安全性分析

该方案具有正确性、盲性和受限性:
- 正确性 :σ = ˜σg−u = H(m′, z′, b′, a′)x−1,所以e(σ, y) = e(H(m′, z′, b′, a′), g);z′ = zαλ = mrxαλ, b′ = mrαλ, a′ = yrλ,所以e(z′, g) = e(b′, y) = e(m′, a′)。
- 盲性 :设 ( ˜m, m, z, b, a, ˜σ) 是签名者看到的协议记录,(z′, b′, a′, σ) 是接收者获得的有效签名。选择唯一盲化因子F = ˜σ/σ,确定m′ = mα, a′ = aλ, F = gu,可得到 ˜m = ˜σx = (σF)x = H(m′, z′, b′, a′)yu, z′ = zαλ, b′ = bαλ。
- 受限性 :接收者获得的签名消息只能是m′ = mα的形式。若m有关于基g1和g2的表示 (μ1, μ2),m′有关于g1和g2的表示 (μ′1, μ′2),则I1(μ1, μ2) = μ1/μ2 = μ′1/μ′2 = I2(μ′1, μ′2) 成立。在电子现金系统应用中,用户选择随机数u作为身份信息,计算m = gu1 g2,与银行进行签名发行协议获得硬币,消费时需证明知道m′关于g1和g2的表示,限制m′必须是mα的形式。

4. 基于双线性对的受限部分盲签名
4.1 提出的受限部分盲签名方案
  • 系统参数生成PG :给定安全参数k,G1是由g生成的间隙Diffie - Hellman群,其阶为素数q,G2是同阶的循环乘法群,双线性对为e : G1 × G1 → G2。定义两个密码哈希函数H : G1 × G1 × {0, 1}∗→G1,H0 : {0, 1}∗→Zq。系统参数为Params = {G1, G2, e, q, g, k, H, H0}。
  • 密钥生成KG :输入Params,输出签名者的公私钥对 (x, y = gx)。
  • 签名生成SG :设共享信息info = c,签名消息为m′ = mα(α由接收者选择)。
    1. 签名者生成随机数r ∈ Zq,发送z = mrx, b = mr, a = yr给接收者。
    2. 接收者检查e(z, g) = e(b, y) = e(m, a)。若不满足,终止协议;否则,生成随机数α, λ, u ∈ Zq,计算m′ = mα, z′ = zαλ, b′ = bαλ, a′ = aλ, ˜m = H(m′, z′, b′, a′, c)(gH0(c)y)u,并发送 ˜m给签名者。
    3. 签名者响应 ˜σ = ˜m
      1
      H0(c)+x ,接收者计算σ = ˜σg−u。

以下是该方案签名生成过程的表格展示:
|步骤|签名者操作|接收者操作|
| ---- | ---- | ---- |
|1|生成随机数r ∈ Zq,发送z = mrx, b = mr, a = yr| - |
|2| - |检查e(z, g) = e(b, y) = e(m, a),若满足,生成α, λ, u ∈ Zq,计算m′ = mα, z′ = zαλ, b′ = bαλ, a′ = aλ, ˜m = H(m′, z′, b′, a′, c)(gH0(c)y)u,发送 ˜m|
|3|计算 ˜σ = ˜m
1
H0(c)+x ,发送 ˜σ|计算σ = ˜σg−u|

下面是该方案签名生成过程的流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([开始]):::startend --> B(签名者生成随机数r):::process
    B --> C(签名者计算z = mrx, b = mr, a = yr):::process
    C --> D(签名者发送z, b, a给接收者):::process
    D --> E{接收者检查e(z, g) = e(b, y) = e(m, a)}:::decision
    E -->|否| F([终止协议]):::startend
    E -->|是| G(接收者生成随机数α, λ, u):::process
    G --> H(接收者计算m′ = mα, z′ = zαλ, b′ = bαλ, a′ = aλ, ˜m = H(m′, z′, b′, a′, c)(gH0(c)y)u):::process
    H --> I(接收者发送 ˜m给签名者):::process
    I --> J(签名者计算 ˜σ = ˜m
1
H0(c)+x ):::process
    J --> K(签名者发送 ˜σ给接收者):::process
    K --> L(接收者计算σ = ˜σg−u):::process
    L --> M([结束]):::startend
4.2 方案的安全性和效率讨论

在哈希函数H和H0理想随机的假设下,该受限部分盲签名方案具有良好的安全性。它满足部分盲签名的完整性、部分盲性、受限性和不可伪造性等安全性质。从效率方面来看,由于使用了双线性对和间隙Diffie - Hellman群,避免了低效的零知识证明,相比之前的方案,签名长度更短,通信复杂度更低。

4.3 基于该签名方案的电子现金系统

可以利用提出的受限部分盲签名方案构建一个不可追踪的离线电子现金系统。在这个系统中,用户与银行进行签名发行协议获得电子硬币,在消费时,用户向商店提供签名和相关证明信息。商店验证签名的有效性,若有效则接受交易。该系统结合了受限部分盲签名的优点,既保证了用户的匿名性,又能在一定程度上限制用户的行为,同时避免了在线电子现金系统的瓶颈问题和传统离线电子现金系统的低效问题。

总结

本文围绕受限部分盲签名展开研究,提出了基于双线性对的受限盲签名方案和受限部分盲签名方案。通过引入反转计算Diffie - Hellman问题(RCDHP),构建了间隙Diffie - Hellman盲签名方案的变体,并在此基础上设计了受限盲签名方案。进一步提出的受限部分盲签名方案将受限盲签名作为特殊情况包含在内。对这些方案进行了详细的安全性分析,证明其具有正确性、盲性、受限性和不可伪造性等安全性质。同时,在效率方面,这些方案相比传统方案具有签名长度短、通信复杂度低的优势。最后,利用受限部分盲签名方案构建了不可追踪的离线电子现金系统,为电子现金领域的发展提供了新的思路和解决方案。

基于51单片机,实现对直流电机的调速、测速以及正反转控制。项目包含完整的仿真文件、源程序、原理图和PCB设计文件,适合学习和实践51单片机在电机控制方面的应用。 功能特点 调速控制:通过按键调整PWM占空比,实现电机的速度调节。 测速功能:采用霍尔传感器非接触式测速,实时显示电机转速。 正反转控制:通过按键切换电机的正转和反转状态。 LCD显示:使用LCD1602液晶显示屏,显示当前的转速和PWM占空比。 硬件组成 主控制器:STC89C51/52单片机(与AT89S51/52、AT89C51/52通用)。 测速传感器:霍尔传感器,用于非接触式测速。 显示模块:LCD1602液晶显示屏,显示转速和占空比。 电机驱动:采用双H桥电路,控制电机的正反转和调速。 软件设计 编程语言:C语言。 开发环境:Keil uVision。 仿真工具:Proteus。 使用说明 液晶屏显示: 第一行显示电机转速(单位:转/分)。 第二行显示PWM占空比(0~100%)。 按键功能: 1键:加速键,短按占空比加1,长按连续加。 2键:减速键,短按占空比减1,长按连续减。 3键:反转切换键,按下后电机反转。 4键:正转切换键,按下后电机正转。 5键:开始暂停键,按一下开始,再按一下暂停。 注意事项 磁铁和霍尔元件的距离应保持在2mm左右,过近可能会在电机转动时碰到霍尔元件,过远则可能导致霍尔元件无法检测到磁铁。 资源文件 仿真文件:Proteus仿真文件,用于模拟电机控制系统的运行。 源程序:Keil uVision项目文件,包含完整的C语言源代码。 原理图:电路设计原理图,详细展示了各模块的连接方式。 PCB设计:PCB布局文件,可用于实际电路板的制作。
【四旋翼无人机】具备螺旋桨倾斜机构的全驱动四旋翼无人机:建模与控制研究(Matlab代码、Simulink仿真实现)内容概要:本文围绕具备螺旋桨倾斜机构的全驱动四旋翼无人机展开研究,重点进行了系统建模与控制策略的设计与仿真验证。通过引入螺旋桨倾斜机构,该无人机能够实现全向力矢量控制,从而具备更强的姿态调节能力和六自由度全驱动特性,克服传统四旋翼欠驱动限制。研究内容涵盖动力学建模、控制系统设计(如PID、MPC等)、Matlab/Simulink环境下的仿真验证,并可能涉及轨迹跟踪、抗干扰能力及稳定性分析,旨在提升无人机在复杂环境下的机动性与控制精度。; 适合人:具备一定控制理论基础和Matlab/Simulink仿真能力的研究生、科研人员及从事无人机系统开发的工程师,尤其适合研究先进无人机控制算法的技术人员。; 使用场景及目标:①深入理解全驱动四旋翼无人机的动力学建模方法;②掌握基于Matlab/Simulink的无人机控制系统设计与仿真流程;③复现硕士论文级别的研究成果,为科研项目或学术论文提供技术支持与参考。; 阅读建议:建议结合提供的Matlab代码与Simulink模型进行实践操作,重点关注建模推导过程与控制器参数调优,同时可扩展研究不同控制算法的性能对比,以深化对全驱动系统控制机制的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值