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

在公钥密码学中,如果Alice想要给Bob发送一条消息,她需要Bob的公钥,一般来说公钥都很长,就像一个随机的字符串。

假设Alice可以不用公钥而是使用Bob的名字或者邮件地址作为他的公钥。实际的来说,这会很方便,Alice不必记住很长的公钥,也不用验证这个类似于随机串的公钥是否真的属于Bob。为了让这变得容易,我们需要基于身份的加密(IBE)。

在IBE中,存在一个实体叫做私钥生成器(PKG)。PKG能够通过Bob的ID和一个主密钥来计算Bob的私钥。一旦Bob已经对PKG认证过自己,那么他就可以向PKG请求他的私钥,一旦他获得了自己的私钥,那么他就可以对任何通过他的ID加密的消息进行解密。

但是这里有一个问题,通过主密钥,PKG可以对任何ID都生成一个私钥,因此PKG可以对任何消息进行解密,这叫做密钥托管,意思就是说你必须信任PKG不会读取你的消息或者你不在乎PKG会读取你的消息。在公司中,高级管理者一般都有权限读取你的邮件,因此IBE方案在这种情况下是很恰当的。

正式的,一个IBE方案包含四个算法:setup,extract,encrypt和decrypt。

setup:采用一个安全参数然后输出主密钥和系统参数,例如明文和密文的消息空间。

Extract:接收一个ID和主密钥,然后返回一个针对ID的私钥。

Encrypt:接收一个消息和ID,然后返回密文。

Decrypt:接收一个密文和公钥,然后返回一个消息。

Boneh和Franklin在2003年给出了一个IBE方案。他们证明了,在一个类似CDH问题的假设情况下,他们的方案在随机oracle模型中是IND-ID-CCA安全的。这意味着任何攻击者在多项式时间内赢得下面的游戏的概率最多比1/2多可忽略的概率。

首先,攻击者:

能够对任何ID请求一个私钥。

能够对任何ID的任何密文进行解密。

然后攻击者选择两个消息\(m_0\)和\(m_1\)和一个之前没有被问询过的ID---\(ID^*\)。攻击者会收到一个基于\(ID^{*}\)对消息\(m_b\)加密的消息\(c\),其中\(b \in {0,1}\)是随机选择的。然后攻击者:

能对任何不是\(ID^{*}\)的ID请求私钥。

能够除了\((c*,ID^{*})\)之外的对进行解密。

最后攻击者输出一位\(b^{'}\),如果\(b^{'}=b\),那么我们说攻击者赢得了游戏。

Boneh和Franklin给出的方案依赖于一个非退化的双线性映射$e:G_1 \times G_1 \rightarrow G_2 \(,其中\)G_1\(的阶是\)q$ ,我们将运算写成加法,而\(G_2\)的阶也是\(q\),我们将运算写成乘法。他们通过椭圆曲线上的Weil对对这个映射进行实例化,但是我们这里省略这个细节。所有双线性性质就是\(e(aP,bQ)=e(P,Q)^{ab}\),其中\(a,b \in Z_q\)。

没有足够的空间来描述所有的方案的细节,但是主密钥是一个非零的\(s \in Z_q\),然后ID的私钥是\(s \cdot H(ID)\),其中\(H\)是一个将比特流映射到\(G_1\)中元素的Hash函数。有两个公共参数\(P\)和\(P_{pub} = s \cdot P \in G_1\)。

为了加密消息\(m\),我们能选择一个随机的串\(\sigma\),然后将\(m\)和随机的串进行异或,得到密文\(C_m\)。然后\(m\)和\(\sigma\)一起进行hash运算获得一个\(Z_q\)中的非零元素\(r\)。最后我们能计算出对\(e(H(ID),P_{pub]})^r\)。然后hash得到的值与\(\sigma\)进行异或,得到\(c_{ID}\)。最后三元组\((r \cdot P,c_{ID},c_m)\)就是密文。

已经获得了私钥\(d = s \cdot H(ID)\)的Bob可以解密密文\((U,V,W)\):首先计算\(e(d,U)\),通过双线性的性质这个值等于\(e(H(ID),P_{pub})^r\)。因此将这个值和\(V\)进行异或得到\(\sigma\)。最后异或\(W\)得到消息\(m\)。最后一步是检查预定信息\(U = r \cdot P\),等式成立表明这就是预期的信息。

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

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

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

  2. ibe加密原理_基于身份加密_IBE_技术研究

    www.cismag.com.cn 64 学术研究 A cademic R esearch 曾 兵,杨 宇,曹云飞 ( 保密通信重点实验室,四川 成都 610041) [ 摘 要 ] 随着信息安全中的 ...

  3. ibe加密原理_基于身份加密(IBE)技术

    在传统的公钥密码学中,公钥是与身份无关的随机字符申存在如何确认公钥真实性的问题.公钥基础设施PKI运用可信任第三方-认证中心( Certification Authority,CA)颁布公钥证书的方式 ...

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

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

  5. ibe加密原理_非对称加密如何实现一对多的加密方式?

    fuzzy-IBE以及ABE,可以实现一加多解(一份密文被多个不同的私钥解密),也可以多加一解(多个不同公钥加密的不同密文可以被同一个私钥解密). 回来写一个Fuzzy-IBE的介绍,从哪里说起呢,从 ...

  6. ibe加密原理_解析基于身份加密IBE

    基于身份加密(IBE)是一种公共密钥加密方法,在这种加密方法中第三方服务器使用简单的识别符:邮件地址.社会保险号等来生成用于加密和解密电子信息的公共密钥.与传统的公共密钥加密方法相比较,这种加密方法为 ...

  7. ibe加密原理_基于身份加密(IBE)技术存在的问题

    自BF-IBE被提出以来,针对IBE的加密.签名.密钥.协商和分层构架等研究不断完善,但IBE成为被广泛使用的公钥体系还有不少问题需求考虑.处理和实用化. 密钥托管与用户私钥安全分发问题 在BF-IB ...

  8. python加密执行_如何在Python中执行PGP(生成密钥,加密/解密)

    PyCrypto支持PGP-尽管您应该测试它以确保它符合您的规范. 尽管文档很难获得,但是如果您查看Util/test.py(模块测试脚本),您可以找到它们的PGP支持的基本示例:if verbose ...

  9. 深度学习核心技术精讲100篇(五十一)-Spark平台下基于LDA的k-means算法实现

    本文主要在Spark平台下实现一个机器学习应用,该应用主要涉及LDA主题模型以及K-means聚类.通过本文你可以了解到: 文本挖掘的基本流程 LDA主题模型算法 K-means算法 Spark平台下 ...

最新文章

  1. jsp java数据,jsp怎么遍历数据
  2. 宗宁:全面解析微博财报数据爆发下的平台机会
  3. python中的位置怎么看_如何知道项目在Python有序字典中的位置
  4. 使用supervisor启动hbase
  5. 服创大赛第二次讨论_2019-01-19
  6. Python模块下载常用地址
  7. 有人一起用沙雕情侣头像吗?
  8. STM32用热敏电阻测温
  9. CUDA学习(十一) 利用npp做图像处理
  10. win10系统任务管理器资源监视器不小心关闭进行导致电脑黑屏
  11. Firefox中文版与英文版转换
  12. office2007每次打开都配置进度_win7下office2007总是配置进度怎么办-解决office2007显示配置进度的方法 - 河东软件园...
  13. 单域安全评估以及加固方案
  14. 计算机错误651是什么故障,宽带连接错误显示代码651是什么原因 宽带连接错误651的解决方法...
  15. 有道再出发:真正的教育事业没有终点
  16. java反射 interface_Java反射
  17. 读《熵减 华为活力之源》
  18. 2020-2-10新生赛
  19. Leetcode 930. 和相同的二元子数组 题解
  20. Bosun RabbitMQ数据收集

热门文章

  1. 什么是Nano Pulse Control
  2. MicroPython——有点东西,但是不多
  3. 如何调节powerpoint的备注栏字体大小?
  4. 阅信短信平台走进网上书店
  5. 中职学校计算机教师 述职报告,中职新教师一年述职报告范文
  6. [蓝桥杯][2019年第十届真题]旋转
  7. Web浏览器(B/S)播放插件
  8. PHP学习笔记(五)数组
  9. ISO-V2原理图解析--GPIO
  10. 计算机二级考试office考试技巧,计算机二级office考试技巧