查看原文
其他

笔记分享 | 组队学习密码学(1)——密码学与MPC基础

谢彪 隐私计算研习社 2024-01-09

OpenMPC社区主办的第一期组队学习密码学活动在近日圆满完成,活动目的是为了让对密码学感兴趣的朋友们能够更全面深入地学习了解密码学相关的原理及应用,通过组队学习共同进步。第一期的主题是“密码学与MPC基础”,主讲嘉宾是北京航空航天大学密码学博士、星火科技密码学专家lynndell。lynndell老师分享的内容分为7个小节,分别是基础概念、数字签名、公钥加密、不经意传输协议、百万富翁问题与混淆电路、Paillier同态加密及其应用、素性测试。文末可以获取完整版PDF笔记~
1



基础概念

1.1 对称加密

首先双方在安全的信道上共享一个对称密钥Key,然后发送方使用这个Key对数据X进行加密,产生一个密文Y。这个Y就可以在任意信道上传输,因此Y可以被攻击者也可以叫做密码分析人员获得,他们可以解析出是 和 。接收方获得Y之后,他可以通过Key解密获得X。因此如果一个密码算法足够安全,是要求黑客攻击者获得了Y仍然不能够解密获得Key。

1.2 哈希函数

哈希函数非常的简单,将任意一个很长的数据或者是很短的数据映射为一个固定长256 bit的数据,如果数据特别短怎么办?直接补0。下面是哈希函数的6个关键性质:

1.3 素数群

群是一个集合,这个集合需要满足以下6个条件:

群的两个关键概念:

概念1:如果群元素g能够通过有限次本身运算,表达群内其他元素,则称为群的生成元。

概念2:群内元素个数称为群的阶

1.4 椭圆曲线群

椭圆曲线群跟素数群非常的相似,对外的表达还是群的6个性质,只不过它的内部运算原理发生了一点变化。


2



数字签名

本次活动介绍的是应用于比特币的ECDSA签名。数字签名的签名方用自己的私钥进行签名,那些验证方就会用签名方的公钥对它进行校验,也叫做验证。

私钥一般是一个随机数,它的公钥就是。所以已知y和g,如果想要把它的指数x搜出来需要指数时间才能完成,这是不可行的。所以已知私钥能够快速计算公钥,已知公钥计算私钥的难度会非常大,可能需要100年的时间。

根据上图中的签名过程,计算逆元的过程是比较简单的,我们可以快速得到R,再通过哈希函数得到r,模运算后我们可以得到签名(r,s)。而验证过程,其他验证方只需要公钥就可以快速验证,只要R`=R,则验证成功。


3



公钥加密

基于素数群的ElGamal加密:发送方使用对方的公钥加密数据,那么接收方接收到数据的时候就会使用自己的私钥解密数据。

第一种加密方式,我们需要将消息编码为群元素再进行操作,因为编码为群元素了之后消息 m 才可以和群元素进行运算,这里叫做乘法运算。 

第二种加密方式,如果消息m就是一个256bit长度的随机数,就需要进行哈希操作,让变为群元素。

基于椭圆曲线群的ElGamal加密和基于素数群的ElGamal加密高度相似:

4



不经意传输协议

Alice 有两个数据, A0 和A1, Bob 有一个选择比特位 r = 0 或者 r = 1,这个是协议的输入。Alice 输入两个数据, Bob 输入 1 bit 的 r ,是协议运行之后有一个结果, Bob 获得这个Ar,然后 r 等于0 它就获得了A0。r 等于1,它就获得了A1, Bob 不能够获得两个数据。Alice 不知道 Bob 获得了哪个,只知道他一定获得了其中一个。


5



百万富翁问题与混淆电路

假设百万富翁是Alice和Bob, Alice 和 Bob 要进行一个两方运算,算法是f,然后需要构建一个与或非的门,构造出一个布尔电路。

混淆电路主要包括4个步骤:

第一步:Alice生成混淆电路

(1)生成与门逻辑电路的真值表,并且对于真值表按照与门进行计算标注

2)将真值表中的值替换为随机数(隐藏一一映射表,隐藏真实值)

3)使用替换值进行2次AES加密

(4)对加密结果顺序打乱,就是混淆表。混淆表内容和行号无关。就是混淆二字的由来。

第二步:Alice发送混淆表与相关数据

1)Alice发送自己的输入值对应的替换值给Bob

(2)Bob通过不经意传输协议,从Alice那里获得他需要的的输入的替换值

(3)Alice发送与门的混淆表

第三步:Bob混淆表2次AES解密

第四步:Alice和Bob共享结果


6



Paillier同态加密及其应用

Paillier同态性在哪里?两个密文做密文加法运算,叫做密文抽象加。密文抽象加如何加?实际上就叫做两个密文直接相乘,把加法关系带进公式。

7



素性测试



小伙伴们可以点击 “在看” 并分享,公众号后台回复20230410,即可获得完整版PDF笔记《OpenMPC社区讲座:密码学与MPC基础》

END

往期推荐


1.CCVR:一种生成虚拟数据的联邦学习算法
2.PSI系列(2)组件 | OT Extension (IKNP)3.PSI系列(1)组件 | Cuckoo Hashing4.笔记分享 | 冯登国院士MPC讲座(1)——MPC基本概念和基础组件


继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存