基于身份的加密和签名方案——1985年Adi Shamir

在这篇论文中,我们介绍了一种新型的加密方案,这个加密方案在不需要交换公私钥,不需要密钥目录,也不需要第三方服务的情况之下,可以确保任何一对用户能够安全的交流并且可以验证双方的签名。这个方案假设一个可信密钥生成中心的存在,中心仅有的一个功能就是当用户首次加入网络的时候给每一位用户发放一个个人智能卡片。卡片中嵌入的信息能够保证用户,不管其他事物独立与否,能以一种完全独立的方式在发送消息时,对消息加以签名和加密,并且在接受消息时对消息的解密并加以验证。当新的用户加入进来时,已有的用户信息不需要去更新,并且多个中心不需要整合他们的活动甚至不需要保留一个用户列表。在所有的卡片被发布之后,中心可以被关闭,但是这个网络将会在无限时间段内以一种完全分散化管理的方式下继续运行。

这个方案对于那些不公开组织的用户来说是一种理想的方案,例如跨国公司或者一个大规模银行分支的主管,因为公司的总部可以视为该公司体系下所有人都信任的密钥生成中心。这个方案对于一个全国性规模、拥有数以百计密钥生成中心以及百万级别用户的情况也同样是实用的,它也可以作为一种新型个人身份证件的基础,这个证件可以以电子的方式进行签署支票、信用卡、法律文件以及电子邮件等操作。

这个方案是基于公钥加密系统的,但是对其作了额外的变动,与公钥加密系统不同的是,该方案不需要生成一对随机的公私钥密码对并公布其中的一个,用户可以直接选择他的名字以及网络地址作为他的公钥。名字,社会保障编号,街道地址、办公电话或固定电话中任何一种组合都可以被使用,只要可以精确识别用户的身份信息,以防她日后否认,且这对于其他组织是相当容易实现的。相应的密钥在密钥生成中心经过计算后,在用户首次入网时以智能卡的方式发放给用户,这个智能卡包含一个微型处理器、一个I/O端口、一个RAM存储器、一个带有密钥的ROM以及一段可以对消息进行加密解密、生成签名以及认证的程序。

基于身份的方案看起来像是一个理想的邮件系统,如果你知道一个人的名字以及地址,那么你就可以发送一封只有他本人可以阅读的邮件,并且你可以验证那个只有他本人方可以产生的签名。这就使得通信的加密层面对于用户来说几乎是透明的,而且那些对密钥和协议一无所知的用户也可以有效地应用这种方案。

当一个用户A想要向用户B发送一条消息,他就可以用他智能卡上面的私钥对消息进行签名,并且用用户B的名字以及地址对结果进行加密,然后再加上自己的姓名以及网络地址,一并发送给用户B。用户B在接收到这条消息的时候,用自己智能卡中的私钥对消息进行解密并且使用发送者的名字以及网络地址作为验证码对签名进行验证。

私钥必须由密钥生成中心进行计算而不是由用户直接生成,因为用户的身份没有什么特别之处:如果用户A可以对对应公钥“A”做计算私钥的的运算,那么用户A也可以对公钥“B”、“C”等等做出相应的私钥运算,因为公钥是由用户自己根据显而易见的身份标识制定的。那么这个方案也就不会是安全的。密钥生成中心通过知晓一些机密信息(理由大整数的分解方法)从而处于一个拥有特权的地位,这样可以保证密钥生成中心可以对网内所有的用户进行密钥计算的工作。

方案总体的安全性基于以下几点:

  1. 底层密码函数的安全性
  2. 储存在密钥生成中心的特权信息的安全性
  3. 在中心发放卡片给用户之前,中心对于用户身份的彻查
  4. 做好用户防止他们卡片丢失、复制、非授权使用行为的预防

这个加密方案有效的将消息与认证信息i进行绑定,同样卡片的拥有着有效的将i与卡片实际的使用者进行绑定,就像任何其他的发放ID卡片的组织,发卡中心应该时刻注意卡片屏幕上的请求,避免错误卡片的发放,同时也要注意中心本身印记的安全性,降低被伪造的风险。用户可以通过密码系统或者记住一部分密钥的方式保护自身对抗卡片未授权使用的风险。

在fig 1中总结了私钥、公钥以及基于身份加密的不同之处,在这些方案当中,消息m使用密钥ke进行加密,以密文C的方式在裸露的信道中进行传输,并且使用kd进行解密。而密钥的选择是完全基于随机数k,在私钥方案中,ke=kd=k,并且分离的密钥信道(通常情况下是情报员)必须时刻维持着密钥的机密性以及权威性(真实性);在公钥方案中,加密与解密密钥来自于K的两种不同的渠道,函数ke=fe(k)以及kd=fd(k),而分离的密钥信道(通常情况下是一种目录)必须维持着密钥的真实性。在基于身份的加密方案中,加密密钥是用户的身份I,解密密钥来源于I 与k的渠道,函数kd=fd(I,k),并且用户之间分开的密钥通道将会被完全的淘汰,取而代之的是在接收者首次接入网络时,密钥生成中心的一个单方面交互。

如同fig 2描述的那样,公钥方案以及基于身份的签名方案是相应加密系统的一种镜像。消息m签名生成密钥kg进行签名,与他的签名S和发送者的身份信息i一起传送,并且利用签名验证密钥kv进行验证,图中的其余部分应该是不言而喻的。

实现方法

为了实现在以上章节描述的方案,我们需要一个具有额外两个特性的公钥加密方案:

a)、当随机数K已知,对于不可忽略的一部分公钥,可以很容易的计算出私钥。

b)、有随机数K产生的一些确定的公钥对来计算出随机数K这个问题是困难的。

很不幸的是,RSA公钥加密方案不能以某种方式被应用,因为其不可以同时满足以下的几个条件:

a)、如果模数n是用户身份的伪随机函数,密钥生成中心不能将这个n值作为因素计入也不能通过加密指数e来将解密指数d计算出来

b)、如果模数n是普遍,并且其种子是来源于它的秘密因子分解,那么任何一个知晓加密指数e以及其相应解密指数d的人都可以通过计算得到这个随机种子。

在如今这个阶段,仅仅对于基于身份的签名方案我们已经有了具体的实现提案,但是我们同样也在推测基于身份的加密方案是存在的,我们鼓励读者去寻找这样一种系统方案。这种情形会使我们回想起1976那个时期,当时公钥密码加密体制刚刚被定义,并且其潜在的应用也在被研究当中,直到1978年首个具体的实现方案才被发表。

这个签名方案是基于以下的验证条件:

其中m 位传送的信息、s,t是签名、i是用户的身份特征、n是两个大素数的产物、e是与ψ(n)互素的大素数,f是一个单向函数

参数n,e还有函数f是由密钥生成中心来进行选择,并且所有的用户在他们的智能卡里都存有相同的n,e以及对于函数f 的算法描述,但是关于n的因子分解方式仅能有密钥生成中心知晓。对于用户之间唯一不同的区别就是i的值以及对应i的密钥g不同,g的值由以下共识唯一确定:

这个g能够密钥生成中心很容易的计算出来,并且如果RSA方案是安全的那么没有人可以做到对于n的指数型分解。

每一个信息m都会有大量可能的(s,t)签名但是他们的密度非常低以至于随机的查找几乎是不可能找到其中任何一个的。任何一个设定(s,t)其中一个随机的值,然后求解另外一个参数的尝试都会要求指数根的一个分解,但是这被普遍认为在计算上是困难的。然而当g是已知的,即使n的因子分解方式未知对于任何一个消息m产生任何一个签名都存在着一个简单的方案。

为了对消息m进行签名,用户选择一个随机数字r并且计算

那么签证方案将会被重写为

由于e与ψ(n)互素,那么我们可以在指数上消除相同的因素e

于是s就可以不用任何的根式分解就可以被计算出来。

为了抵抗基于不同用户身份(从而也包括g的值)之间多重授权关系的攻击,通过一个普通的单向函数将描述用户身份的字符串转换成为一组长的伪随机字符串并将这个扩展的方式作为验证方案中的i,这种方式是可取的。由于处于网络中的每一个用户都知晓如何应用这个函数,即使签名验证方案并没有与用户的身份信息完全对等,这个方案也可以维持其基于身份的支持。

该方案的安全性依赖于密码分析员不能够通过分析大量对应他选择消息的有效签名来做到对g的隔离,如果f,e的最大公约数位c且c !=1,那么就可能通过多重授权关系的方式做到对于I 的c根分离,使e为一个充分大的素数且f为一个充分强的单向函数,这对避免上述情形在实际中的出现是至关重要的。R的值应该永远不会被重复使用或者被泄露,因此在任何一种签名方案中g都要通过他的随机以及机密性而受到保护。

对于t中1/2发生条件被消除这样的验证条件变形方案(例如使用一个常量对t进行替换)是不安全的,通过使用一个单向函数对m以及t进行完全的混合(可能是通过非封闭以及非可逆的操作)并且企业具有相当数量的可能值。

我们相信通过选择更加合适的参数这个方案会变得更加的安全,但是我们不能够证明这是个能够对等于解决一些著名的计算难题的突破,它最主要的目的是说教性质的,可以将其视为基于身份方案首次存在性证明,Ong-Schnorr-Shamir 签名方案(在一些领域被这样称呼)也可以被用作一个基于身份的方案,鉴于pollard对其早期版本的成功攻击,其安全性在仍然是一个开放性的问题。一如既往,在密码学界有充分的时间证明其安全性之前,我们不建议立马对这次方案加以运用。

现将adi-shamir在1985年密码年会上发表的论文原文附在文章下面,以上翻译有不精确的地方,还希望各位学者在评论处批评指正。

基于身份的加密和签名方案——1985年Adi Shamir相关推荐

  1. 基于CH568芯片加密SD卡方案

    基于CH568芯片加密SD卡方案 简介 基于CH568芯片加密SD卡方案采用CH568芯片实现,CH568芯片内置USB2.0高速接口.SD卡接口以及SM4加密算法.可通过按键或指纹模块等进行密码的输 ...

  2. 基于身份的加密(IBE)——使用PBC库实现 Identity Based Encryption(IBE) - Pairings Based Crypto (PBC) library

    基于身份的加密(IBE)--使用PBC库实现 Identity Based Encryption(IBE) - Pairings Based Crypto (PBC) library 前言: 近期在学 ...

  3. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]51.基于ID的加密安全模型,描述IBE方案

    这是一系列博客文章中最新的一篇,该文章列举了"每个博士生在做密码学时应该知道的52件事":一系列问题的汇编是为了让博士生们在第一年结束时知道些什么. 在公钥密码学中,如果Alice ...

  4. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第51篇]什么是基于ID的加密的安全模型,描述一个IBE方案

    在公钥密码学中,如果Alice想要给Bob发送一条消息,她需要Bob的公钥,一般来说公钥都很长,就像一个随机的字符串. 假设Alice可以不用公钥而是使用Bob的名字或者邮件地址作为他的公钥.实际的来 ...

  5. 基于身份的常数级环签名

    0x00 写在前面 没错,又是一期的环签名,其实最近一直都在研究环签名的改进方向,论文看到现在,发现环签名或者说所有的签名机制的改进也无外乎这几个方面:时间效率(计算复杂度),签名长度(空间效率),安 ...

  6. 身份基加密方案的安全性证明

    在上一篇博客中,介绍了Boneh-Franklin的基于身份的加密方案,准确地说,是介绍了Boneh-Franklin论文[1]中最基础的方案--BasicIdent.在这篇博客中,主要论述Basic ...

  7. ibe加密原理_第五十一个知识点:什么是基于ID的加密的安全模型,然后描述一个IBE方案...

    第五十一个知识点:什么是基于ID的加密的安全模型,然后描述一个IBE方案 在公钥密码学中,如果Alice想要给Bob发送一条消息,她需要Bob的公钥,一般来说公钥都很长,就像一个随机的字符串. 假设A ...

  8. ibe加密原理_ibe 基于身份的IBE加密源代码,采用C++语言编写,能够运行。 Crypt_De algrithms 解密 238万源代码下载- www.pudn.com...

    文件名称: ibe下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Visual C++ 文件大小: 3128 KB 上传时间: 2014-06-08 下载次数: 8 详细说明:基于身份 ...

  9. 基于身份的密码体制 BF IBE 2001 方案及安全性证明 内容小结

    基于身份的密码体制 BF IBE 2001 方案及安全性证明 内容小结 密码学可证明安全推荐书目(系列博客内容为这两本书学习笔记与内容小结): <密码学中的可证明安全性>杨波 :清华大学出 ...

最新文章

  1. 微服务“大门”如何选择?
  2. Spring Cloud 微服务开发系列整理
  3. 如何處理不同版本的 Gem 執行檔,以 Rake 0.9.0 地雷為例
  4. python打开另一个程序_python 新手问题啊,为什么我运行一个python程序,另一个就会自动退出呢?始终只能运行一个...
  5. mysql oracle mvcc_PostgreSQL、Oracle/MySQL和SQL Server的MVCC实现原理方式
  6. 美观实用的标签切换菜单
  7. c语言分配内存空间方法,C语言之动态分配内存空间
  8. BZOJ 1026 windy数 (数位DP)
  9. 实时检测input的长度_目标检测——TinyYOLOv3
  10. windows服务开发(一、安装)
  11. bootstrap3-iframe-modal子页面在父页面显示模态框
  12. 松鼠快跑——安徽芜湖“三只松鼠”案例
  13. 计算机主要应用是什么意思,admin是什么意思 Admin的用途介绍
  14. am57xx Damo根文件加载过程
  15. 让Win7系统下的硬盘不在狂闪的诀窍【mfxp】
  16. rancher部署安装好后,无法部署pod
  17. Kubernetes微服务入门教程:部署spring-boot应用
  18. ubuntu16.04 basler相机 图像采集卡设置
  19. 服装行业拼的是实力——智能制造
  20. 纯函数、柯里化、组合函数的解析以及代码实现

热门文章

  1. 如何查看操作系统的块大小
  2. Qt 使用live555
  3. qcom dts知识
  4. 立夏吃什么水果蔬菜更健康科学
  5. Ubuntu16.04下使用ros_qtc_plugin在qt下进行编译
  6. X-Ways Forensics v20.1
  7. 可惜了!哈工大2名大四准毕业生被开除,好前途毁于一旦,原因令人哭笑不得......
  8. 记录弃用TeamViewer,使用Microsoft Remote Desktop for Mac的过程
  9. 大功率可编程直流电源的功率和芯片如何选择?
  10. GOES-16数据下载(保姆级教程)