【区块链与密码学】第7-2讲:经典盲签名算法(一)

本文介绍了盲签名算法的基本概念,包括基于RSA和Schnorr签名的两种实现方式。RSA盲签名由David Chaum于1982年提出,依赖大整数分解问题,而Schnorr签名则是一种短签名方案,基于离散对数困难性和哈希函数的单向性。两者都涉及到密钥生成、盲化、签名、去盲化和安全性分析,但RSA方案不提供不可追踪性,Schnorr签名同样存在可追踪性问题。内容涵盖了密钥生成步骤、签名与验证过程以及安全性分析,揭示了在实际应用中可能存在的攻击路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】

7.2.1基于RSA签名的盲签名算法

David Chaum于1982年提出盲签名的概念,并利用RSA算法设计了第一个盲签名方案。该方案的安全性基于大整数分解问题,这里只进行简单介绍,要了解更多详细内容请查阅:

David Chaum. "Blind Signatures for Untraceable Payments." Proc Crypto (1982):199-203.

| 密钥生成

签名者执行以下步骤生成密钥对:

①签名者选择两个大素数p,q,计算n=pqϕ(n)=(p-1)(q-1) ;

②签名者选择两个大整数e,d,满足ed≡1modϕ(n),gcd(e,ϕ(n))=1;

③签名者保存私钥(d,n),并公开公钥(e,n)和安全哈希函数。

| 盲化

①用户选择随机数,计算,其中m是待签名的消息;

②用户将盲化的消息m'发送给签名者。

| 签名

签名者计算,并将σ′发送给用户。

| 去盲化

用户计算

| 签名正确性验证

用户通过验证

| 安全性分析

完备性:如果用户和签名者诚实的执行协议,那么:

 

有效签名总是能够通过验证。

| 盲性

使用的随机数——盲化因子r,能够保证每个消息签名对(m,σ),在统计学上完全独立于签名者在签名过程中可以看到的盲化消息签名对(m′,σ′)。

| 不可追踪性

根据和,可以发现基于RSA签名的盲签名算法不能提不可追踪性,具体攻击如下:

①签名者保存所有盲签名过程中的记录(m′,σ′);

②给定(m,σ),签名者计算和;

③签名者判定m′和m′′是否相等;

④如果相等则找到了签名记录,否则遍历所有记录(m′,σ′)。

7.2.2基于Schnorr签名的盲签名算法

Schnorr签名方案是一个短签名方案,它是ElGamal签名方案的变形,其安全性是基于离散对数困难性和哈希函数的单向性的。假设pq是大素数,使q能被p-1整除,q是大于等于160 bit的整数,p是大于等于512 bit的整数,保证GF(p)中求解离散对数困难;g是GF(p)中元素,且。

| 密钥生成

①Alice选择随机数x为私钥,其中1<x<q

②Alice计算公钥。

| 签名算法 

①Alice首先随机数k,这里1<k<q

②Alice计算;

③Alice计算;

④Alice输出签名(e,s) 。

| 验证算法 

①Bob计算;

②Bob验证,如果相等输出「Accept」,否则输出「Reject」。

| 盲签名算法描述

| 不可追踪性

根据:

以及e=h(w,m),可以发现基于Schnorr签名的盲签名算法不能提供不可追踪性,具体攻击如下:

①签名者保存所有盲签名过程中的记录(k′,w′,e′,s′);

②给定(m,e,s),签名者计算α′=s-α modqβ′=e′-emodq

③签名者计算

并判定e和h(w′′,m)是否相等;

④如果相等则找到了签名记录,否则遍历所有记录(k′,e′,w′,s′)。

今天的课程就到这里啦,下节课我们将继续学习经典的盲签名算法,敬请期待!

同学们可以关注点宽学园,每周持续更新区块链系列课程,小宽带你进入区块链世界。我们下节课见啦。

【区块链与密码学】课堂回顾:

区块链与密码学系列文章合集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值