前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >斯坦福大学密码学-零碎 08

斯坦福大学密码学-零碎 08

原创
作者头像
Daffy
修改2020-11-05 17:49:55
1.3K0
修改2020-11-05 17:49:55
举报
文章被收录于专栏:密码学和区块链

ppt 链接:

Key Derivation

KDF :密钥推导函数。

原密钥是均匀分布的,用PRF构造KDF。

CTX:上下文字符串,是一个唯一的字符串,作为应用的身份。在一个系统中可能有多个应用。多个应用试着建立多个安全密钥。CTX试图将它们区分。

即使源密钥是相同的,CTX也可以用来区分不同的应用。

源密钥不是均匀分布的。

密钥交换协议很有可能生成一个高熵的的密钥,高熵意味着字符串的分布接近均匀,但不是均匀分布。KDF必须接受密钥交换协议不能生成均匀分布的字符串这一事实。

硬件随机数生成器也可能生成不是均匀分布的字符串。

先提取后扩展的机制。

提取器最后不一定产生均匀分布的输出,但生成的分布与均匀的分布不可区分。

提取器输入一个盐,作用是捣乱,不管输入分布如何,输出分布依然与随机分布不可区分。不需保密,可公开,要是随机的。盐是用来防御可能会干扰提取器的恶意的坏的分布。

HKDF。

密钥的提取和扩展都用HMAC。

基于密码的KDF。

如何从密码中提取密钥?密码通常具有很少的熵,约为20位左右的熵。不能直接用HKDF。

一个慢的哈希函数,就用迭代使用一个哈希函数很多很多次,如一百万次。。。。。。

确定性加密

一个加密系统总是将给定明文映射到同一个密文。

查找加密的数据库。

有一个服务器,存储了一个加密的数据库。存储了一个记录,每个记录都有一个索引,密钥k1加密索引,密钥k2加密数据。

加密好的记录发给数据库。同样的事情发生在许多记录上。这样整个数据库保存了许多加密的记录。

当服务器想访问数据库一条记录时,只需要发送k1加密后的索引即可。

确定性的加密不是CPA安全的。

如果两个记录在索引位置正好有相同的密文,那么他就知道这两条记录对应着同一个索引。

形式化表达。

解决办法。

让加密者永远不要用单个密钥来加密同样的明文信息。明文密钥对永不重复。

确定性的CPA安全。

带固定IV的CBC加密不是确定性的CPA安全。

例题。

二次密码本攻击。

确定性CPA安全机制:SIV 和 wide PRP

回顾。

SIV构造方法。适合消息大于16字节的加密。

r集合R的一个元素。

加密机制E是随机计数器模式。随机性R就是随机IV,IV会随密文一并输出,密文比明文略长。

因为我们用F来处理多个信息,F生成的随机字符串将看起来像是真随机字符串,所以是CPA安全的。

SIV提供了密文完整性。

DAE:确定性的认证加密,包括 确定性的CPA安全和密文完整性。

加密过程:

解密过程:解密过程中重新计算IV,判断IV是否为我们使用过的IV。足以提供密文完整性。

直接使用PRP。适合消息短的加密。

注意:并不提供完整性。

构造一个适用于长消息的PRP。

EME构造方法。

EME使用两个密钥K和L。事实上,在EME中,L是由K推出的。我们假设K和L是不同的密钥。首先取明文X,将它分成若干组。然后把每个分组都异或一个特定的密码本函数,我们使用密钥L和函数P来推导密码本。我们对每个分组推到一个不同的密码本,然后我们计算密码本和分组的异或。接下来使用PRP E,密钥k,对每个分组进行操作。我们把这些输出叫做ppp0,ppp1和ppp2。我们把所有的ppp异或起来,我们把异或结果叫做MP。然后用E和K加密MP,输出加密结果叫做MC。计算MP异或MC,得到M。然后用P和M来推导更多的密码本,把这个密码本的输出和所有ppp异或得到ccc。然后把所有的ccc异或,得到一个值叫做ccc0,然后再用E加密一次,再用P和L推导出密码本,异或后,得到EME所有的输出。

可并行,但是比SIV慢很多。

PRP实现DAE。

证明。

微调加密(Tweakable Encryption)

硬盘加密-没有扩充。

即确定性CPA安全 PRP

存在的问题。

每个扇区使用不同的密钥。有一个主密钥 k ,然后每个扇区的密钥都有一个PRF和k生成。

微调分组加密。

我们使用扇区号作为微调,这样一来每个扇区都有它自己独立的PRP。

安全的微调分组函数定义。

实验1选择一个真随机置换的集合,是与微调数目一样多的置换。

实验0选择一个随机密钥,定义置换集合,根据微调空间里的微调定义。

与常规分组密码的区别,在常规分组密码中,你只能与一个置换进行互动,目标是分辨出是在和一个伪随机置换交互,还是和一个真随机置换交互。而在此实验中,你在和|T|个随机置换交互,目标是区分这|T|个随机置换是真是伪。

举例1 简单机制

一次加密给定的微调,一次加密给定的数据。

举例2 XTS机制

比简单机制快了一倍。注意左面的k2应该为k1。

例题。

硬盘中使用XTS。

总结。

保留格式加密(Format Preserving Encryption)

加密信用卡号。

加密信用卡号产生类似信用卡号的消息。

构造原理。

第一步。

取AES分组密码,把它当成128位的PRF,我们获得21位数据在后面填0补充到128位,应用AES,然后截断输出,取低21位(针对信用卡号)。

7轮机制更好。

第二步。

安全性。

文献推荐。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Key Derivation
  • 确定性加密
  • 确定性CPA安全机制:SIV 和 wide PRP
  • 微调加密(Tweakable Encryption)
  • 保留格式加密(Format Preserving Encryption)
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档