区块链与密码学第6-6讲:基于身份的数字签名算法

Posted Dig Quant

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链与密码学第6-6讲:基于身份的数字签名算法相关的知识,希望对你有一定的参考价值。

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

6.6 基于身份的数字签名算法

PKI是指由数字证书、证书颁发机构 (CA) 和证书注册机构(RA)组成的一套系统:

数字证书公钥和私钥

加密算法和摘要算法

证书链

受信任的根证书颁发机构——中级根证书颁发机构——用户证书

证书管理:申请、颁发、吊销、重新颁发、续期等

数字证书主要用途是绑定用户的身份和公钥,可以用于公钥加密、密钥写上、数字签名等领域。

证书的可靠性问题

从证书可靠性角度来评估中国互联网的安全性,中国互联网面临着三大安全风险:

风险一:大部分重要系统没有部署SSL证书

例如:邮件系统、移动APP中的手机银行、移动社交软件

风险二:部分重要系统都部署外国CA签发的SSL证书,如:银行网银证书、电子商务系统

例如:网上银行、证券交易所等

风险三:一些重要系统部署了不安全的SSL证书

例如:12306购票系统、高校的VPN系统和各种需要登录的系统都在使用自签证书

证书的管理问题

CA体系从根证书开始,逐级签发各级证书,从而形成树状信任体系。

弊端:

难以构造复杂的身份标志体系

难以同步数字证书的撤销与数字签名的「作废」

数字证书的管理难度以及风险随系统规模的增大而增加

数字证书和私钥都需要载体,使用起来不方便

证书查找与证书验证的开销

层次化证书结构示意图

1984年,以色列密码学家Adi Shamir提出了基于身份的密码系统(Identity-based Cryptography, IBC)的概念,并设计了一个采用RSA算法的基于身份的数字签名算法。

密码学科普之Adi Shamir

Adi Shamir,以色列密码学家。他与罗纳德·李维斯特和伦纳德·阿德曼共同发明了RSA加密算法,他是差分密码分析的发明者之一,以及在密码学和计算机科学等领域做出许多杰出贡献而知名。RSA被广泛使用在计算机安全应用上,包括https。

2002年,他与罗纳德·李维斯特和伦纳德·阿德曼一起因在公钥密码学RSA加密算法取得的杰出贡献而获得图灵奖

在2001年,D.Boneh和M.Franklin,R.Sakai,K.Ohgishi和M.Kasahara利用椭圆曲线上的双线性对设计了基于身份的加密算法。

同年,C.Cocks利用平方剩余难题设计了基于身份的加密算法。D.Boneh和M.Franklin提出的IBC (BF-IBC)的安全性可以证明并且有较好的效率,引起了极大的反响。

算法构成

一个基于身份的数字签名算法由以下4个子算法构成:

初始化

输入:安全参数k

输出:系统参数params和主密钥master-key  

用户私钥生成

输入:系统参数params、主密钥master-key和用户身份ID∈0,1*

输出:用户私钥dID

签名

输入:系统参数params,消息M和签名者的私钥dID

输出:签名σ

验证

输入:系统参数params,签名σ,签名者公钥(身份)ID∈0,1*, 消息M

输出:「Accept」或者「Reject」

Shamir提出了一个采用RSA算法的基于身份的数字签名算法:

初始化

选取两个大素数p,q,计算它们的乘积n; 

选取与Φ(n)互素的整数e,计算主私钥d满足e×d=1 mod Φ(n) 

选取一个单向函数h

输出系统参数:n, e, h;保存主密钥: n和d

用户私钥生成

给定用户的ID,PKG计算用户的私钥gID=h(ID)d mod n

签名

用户利用私钥gID执行如下步骤,签署消息m:

选取随机整数r,计算t=r e mod n; 

计算s=gID×"r"h(t, m) mod n; 

输出签名σ = <s, t>

验证

验证者收到σ = <s, t>,消息m和签名者的公钥(身份ID), 验证下式是否成立

    s e = h(ID) × "t "h(t, m) mod n

如果成立则输出「Accept」,否则输出「Reject」

效率

签名和验证都需要模幂(Modular Exponentiations),模乘(Modular Multiplication) 和哈希运算(Hash Operation)

安全性

分解因子问题困难Integer Factorization Problem (IFP)

今天的课程就到这里啦,下一堂课我们将继续学习国密算法中的SM9数字签名算法,带大家继续了解数字签名,敬请期待!

-- 完 --

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

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

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

以上是关于区块链与密码学第6-6讲:基于身份的数字签名算法的主要内容,如果未能解决你的问题,请参考以下文章

区块链与密码学第9-6讲:基于身份的群签名算法 I

区块链与密码学第9-6讲:基于身份的群签名算法 I

区块链与密码学第8-4讲:ZK环签名算法

区块链与密码学第7-4讲:经典盲签名算法

区块链与密码学第8-5讲:基于SM2签名算法的环签名

区块链与密码学第9-4讲:基于PKI的群签名算法 I