隐私计算加密技术基础系列(上)(代码片段)

秃顶的码农 秃顶的码农     2023-03-09     791

关键词:

1 密码学

1.1 背景

隐私计算(Privacy-preserving computation)是指在保证数据提供方不泄露原始数据的前提下,对数据进行分析计算的一系列信息技术,保障数据在流通与融合过程中的**“可用不可见”。 Gartner发布的2021年前沿科技战略趋势中,将隐私计算(其称为隐私增强计算)列为未来几年科技发展的九大趋势**之一。 (数据流通需求推动隐私计算势头火热) 但仍存在诸多阻碍。

2021年被称为隐私计算的元年,这门技术是门综合性非常强的领域,涉及到众多方向,比如密码学、数学、大数据、实时计算、高性能计算、分布式、传统机器学习框架与算法,深度学习框架与算法等等。本系列文章主要介绍下隐私计算使用到的相关密码学的知识。

1.2 密码学简介

密码学在整个人类的历史进程中都有着重要的地位,涵盖了人类活动的方方面面。比如在谍战片中我们经常看到地下工作者使用加密的报文传递重要的情报,比如在互联网冲浪的时候TLS/SSL也在保障我们的信息安全,可以说密码学对人类的影响和作用是深远的,很难想象没有密码学保护的日子是什么样的!那么究竟什么是密码学?如何准确定义密码学习呢?本系列文章将会进行相对详尽的介绍,欢迎大家观看。

首先,密码学的精准定义还是引用下权威机构,以下内容来自百度百科:

密码学(在西欧语文中,源于希腊语kryptós“隐藏的”,和gráphein“书写”)是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。著名的密码学者Ron Rivest解释道:“密码学是关于如何在敌人存在的环境中通讯”,自工程学的角度,这相当于密码学与纯数学的异同。密码学是信息安全等相关议题,如认证、访问控制的核心。密码学的首要目的是隐藏信息的涵义,并不是隐藏信息的存在。密码学也促进了计算机科学,特别是在于电脑与网络安全所使用的技术,如访问控制与信息的机密性。密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。

密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换,随着通信技术的发展,对语音、图像、数据等都可实施加、脱密变换。

密码学一开始的功能是在有恶意攻击者存在的环境下,保护双方通信安全,现在是用来保护信息安全的核心技术。

现代信息安全的基本要求:

  • 信息的保密性 Confidentiality:防止信息泄漏给未经授权的人(加密解密技术)
  • 信息的完整性 Integrity:防止信息被未经授权的篡改(消息认证码,数字签名)
  • 认证性 Authentication:保证信息来自正确的发送者(消息认证码,数字签名)
  • 不可否认性 Non-repudiation:保证发送者不能否认他们已发送的消息(数字签名)

1.3 密码学术语

  • 密钥:分为加密密钥和解密密钥。
  • 明文:没有进行加密,能够直接代表原文含义的信息。
  • 密文:经过加密处理处理之后,隐藏原文含义的信息。
  • 加密:将明文转换成密文的实施过程。
  • 解密:将密文转换成明文的实施过程。
  • 密码算法:密码系统采用的加密方法和解密方法,随着基于数学密码技术的发展,加密方法一般称为加密算法,解密方法一般称为解密算法。
  • 加密(encryption)算法:将普通信息(明文,plaintext)转换成难以理解的资料(密文,ciphertext)的过程;
  • 解密(decryption)算法则是其相反的过程:由密文转换回明文;加解密包含了这两种算法,一般加密即同时指称加密(encrypt或encipher)与解密(decrypt或decipher)的技术。

加解密的具体运作由两部分决定:

一个是算法,另一个是密钥。密钥是一个用于加解密算法的秘密参数,通常只有通讯者拥有。

1.4 现代密码学常见的算法流派

以时间划分,1976 年以前的密码算法都属于古典密码学,基本使用在军事机密和外交领域,它的特点就是加解密过程简单,一般用手工或机械就可以完成,古典密码学现在已经很少使用了,下面是一个古典加密的密码本,提供一对一的映射变换,主要拥有这个密码本,就可以轻易的通过手工的方式进行信息加密与解密。

现代密码学中常见的加密算法,大致可以分为如下几种:

  1. 散列算法:MD5算法、Sha系列算法;
  2. 对称加密:DES、3DES、RC2、RC4、AES等;
  3. 非对称算法:RSA、ECC等;

本系列文章将会重点描述下对称加密与非对称加密技术,从数学原理、加密算法推导、加密算法原理都会进行介绍。本文内容涉及到数学里面的数论相关知识,针对加密算法会用到的知识,本章会做些适当的介绍,对数论感兴趣的同学可以茶语相关《数论》书籍进行精进,里面推导如果有不严谨的地方,欢迎各位同学帮忙指正。

2 对称加密

2.1 对称加密的定义

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

  • 性能较好:需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。

  • 对称性:所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。

  • 安全性:对称加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。

2.2 常见的对称加密算法

对称加密的特点是算法是公开的,但是秘钥是隐藏的(只有加密解密双方持有),公开的密码算法安全性更高,能被更多人评论和使用,加强漏洞的修补。

对称加密的算法众多,历史上出现过不少的算法实现,不同的算法在某些特定的时期,承担着重要的角色。虽然有些算法在现在已经不再适用,存在着安全漏洞,但是在当时的算力情况下,确实起到过非常重要的作用。给予人们提供安全屏障,保护信息安全。下面就简要对比介绍下比较出名的集中对称加密算法。

加密算法优点缺点破解方式使用场景安全性
DES算法公开、计算量小、加密速度快、效率高;DES目前已经被废除;(1)秘钥位数太少,在现有算力的情况下,非常容易被暴力破解,无法保障安全性;(2)DES是为硬件加密设计的,对于现在软件来说计算效率不够好;(3)一直有人怀疑DES的S盒中隐藏着后门,而这个后门被美国安全局掌握。(4)秘钥管理的泄露风险;暴力破解、穷举普通数据加密
3DES算法公开、计算量小、加密速度快、效率高;秘钥管理的泄露风险难度大普通数据加密较高
AES组模式选择多,加密安全;同DES类似,密码管理都是问题;暴漏过线性密码攻击、查封密码攻击,难度大普通数据加密较高
RC4算法公开、计算量小、加密速度较快不安全,存在安全漏洞,目前基本废弃;由于RC4算法加密是采用的xor,所以,一旦子密钥序列出现了重复,密文就有可能被破解。关于如何破解xor加密,请参看Bruce Schneier的Applied Cryptography一书的1.4节Simple XOR,在此我就不细说了。存在安全漏洞目前基本已经废弃

2.3 对称加密的局限

其实,很多人表达过这样的观点,对称加密不安全,有被破解的风险。其实笔者以为这样的说法不是很严谨,单纯的对称加密比如AES还是很安全的,但是对称加密的一个重要的特性就是加密与解密使用同一个秘钥,对于秘钥的保存和传递都是个非常头疼的问题,一旦泄露就会造成极大的风险。

那么,有没有什么办法可以进一步降低这个泄露的风险呢?答案就是非对称加密。下面我们来介绍下非对称加密。

3 数论基础

在正式介绍RSA算法之前,由于该算法需要较多的数学知识,正所谓“磨刀不误砍柴工,万丈高楼平地起”,所以按照如下的步骤进行讲解。

首先,会介绍下数论的相关的基础知识,主要包含质数、互质关系、欧拉函数、欧拉定理以及模反元素。接着,会介绍下RSA算法的具体实现流程,并且会结合例子进行理论加实践的描述。

然后,会根据前面讲解的数论的知识,进行RSA算法的安全性验证与推导的验证。

最后,通过这一系列的描述与讲解,相信读者对于RSA算法已经进行了掌握,后面会介绍下在网络传输中的应用。

所以本节主要介绍数论的基础知识,为后续的RSA算法的推导和证明提供理论基础。

3.1 质数

质数在数学领域是一个神奇的数字,很多数学定理都是基于质数的。

质数(Prime number),又称素数,大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数)。大于1的自然数若不是素数,则称之为合数(也称为合成数)。例如,5是个素数,因为其正约数只有1与5。而6则是个合数,因为除了1与6外,2与3也是其正约数。

算术基本定理确立了素数于数论里的核心地位:任何大于1的整数均可被表示成一串唯一素数之乘积。为了确保该定理的唯一性,1被定义为不是素数,因为在因式分解中可以有任意多个1(如3、1×3、1×1×3等都是3的有效约数分解)。

3.2 互质关系(互质数)

如果两个整数的公约数只有1,那么叫做互质整数。公约数只有1的两个自然数,叫做互质自然数,后者是前者的特殊情形。

例如:

1. 8,10的最大公因数是2,不是1,因此不是整数互质。
2. 7,11,13的最大公因数是1,因此这是整数互质。
3. 5和5不互质,因为5和5的公因数有1、5。
4. 1和任何数都成倍数关系,但和任何数都互质。

关于互质关系,总结一下,有如下的性质

1. 两个不同的质数一定互质。例如2与7,13和19。
2. 一个数是质数,另一个数不是它的倍数,两者就构成互质关系,比如5和26。
3. 如果两个数之中,较大的那个数是质数,则两者构成互质关系,比如97和57。
4. 1不是质数也不是合数,它和任何一个自然数(1本身除外)在一起都是互质关系。如1和9908。
5. 相邻的两个自然数是互质数。如 15与 16。
6. 相邻的两个奇数是互质数。如 49与 51。
7. 较大数是质数的两个数是互质数。如97与66。

3.3 欧拉函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AHqjwYcK-1643945255776)(https://tse1-mm.cn.bing.net/th/id/R-C.73c6029c7f0c436b82764c82fd34713f?rik=9wiHHJoE5q3SoA&riu=http%3a%2f%2fimg.zxxk.com%2f2017-10%2fZXXKCOM201710131031361828768.jpg&ehk=8i3gDhxh8EbA2o7PQ7NTF62eA5ccWfcE8o4BWGn1WfY%3d&risl=&pid=ImgRaw&r=0)]

提到欧拉,就不得不多说几句,莱昂哈德•欧拉(Leonhard Euler,1707年4月5日~1783年9月18日)是瑞士巴塞尔附近一个牧师的儿子,他除了学习神学外,还研究数学,并且取得了巨大的成绩。他被一些数学史学者称为历史上最伟大的两位数学家之一(另一位是卡尔•弗里德里克•高斯)。数学中很多名词以欧拉的名字命名,如欧拉常数,欧拉方程,欧拉恒等式,欧拉示性数等等。

欧拉被公认为人类历史上成就最为斐然的数学家之一。在数学及许多分支中都可以见到很多以欧拉命名的常数、公式和定理,他的工作使得数学更接近于现在的形态。他不但为数学界作出贡献,更把数学推至几乎整个物理领域。此外欧拉还涉及建筑学、弹道学、航海学等领域。瑞士教育与研究国务秘书Charles Kleiber曾表示:“没有欧拉的众多科学发现,今天的我们将过着完全不一样的生活。”法国数学家拉普拉斯则认为:读读欧拉,他是所有人的老师。

那么在数论中对于正整数n来说,欧拉函数 φ(n)的计算逻辑就是小于n的正整数中与n互质的整数的数目。

例如,在1到8之中,与8形成互质关系的是1、3、5、7,所以 φ(n) = 4。
  1. 如果n是质数,那么φ(n) =n-1。反之,如果n是正整数且满足φ(n) =n-1,那么n是质数。
  2. 如果n是质数,a是一个正整数,那么 ϕ ( n a ) = p a − p a − 1 \\phi(n^a) = p^a - p^a-1 ϕ(na)=papa1
  3. 如果m和n是互质数,那么 ϕ ( m n ) = ϕ ( m ) ∗ ϕ ( n ) \\phi(mn) = \\phi(m) * \\phi(n) ϕ(mn)=ϕ(m)ϕ(n)
  4. 如果 n = p 1 a 1 ∗ p 2 a 2 ∗ . . . ∗ p n a n n=p_1^a_1 * p_2^a_2*...*p_n^a_n n=p1a1p2a2...pnan,那么 ϕ ( n ) = n ( 1 − 1 p 1 ) ∗ ( 1 − 1 p 2 ∗ . . . ∗ ( 1 − 1 p n ) \\phi(n) = n(1-\\frac1p_1)*(1-\\frac1p_2*...*(1-\\frac1p_n) ϕ(n)=n(1p11)(1p21...(1pn1)

3.4 欧拉定理

上面我们介绍了质数、互质关系以及欧拉函数,基于这些知识,我们继续介绍欧拉定理,

  • 定义

如果两个正整数a和n互质,则n的欧拉函数 φ(n) 可以让下面的等式成立,可以理解为a的φ(n)次方被n除的余数为1。

a ϕ ( n ) ≡ 1 ( m o d    n ) a^\\phi(n) \\equiv 1(mod \\; n) aϕ(n)1(modn)

用通俗的语言描述下,就是a的 ϕ ( n ) \\phi(n) ϕ(n)次方除以n的余数是1,也可以理解为a的 ϕ ( n ) \\phi(n) ϕ(n)次方加1可以被n整除。

  • 样例

正整数3和8互质,其中8的欧拉函数是4(互质数是1,3,5,7),则3的4次方是81,81减去1正好是80,80除以8正好被整除。

  • 特殊情况:费马小定理

假设正整数a与质数p互质,因为质数p的φ§等于p-1,则欧拉定理可以写成

a p − 1 ≡ 1 ( m o d    n ) a^p-1 \\equiv 1(mod \\; n) ap11(modn)

也可以表示成

a p ≡ a ( m o d    n ) a^p \\equiv a(mod \\; n) apa(modn)

欧拉定理(费马小定理)的证明涉及到当模是合数(素数就是费马小定理)的时候如何处理包含指数的特定同余式,相关证明大家可以看下数论的相关书籍,推荐阅读《初等数论机及其应用》(Kenneth H. Rosen著),里面的讲解还是比较清晰的。

3.5 模反元素(模逆运算)

  • 定义

模反元素亦叫模逆运算,定义如下:如果两个正整数a和n互质,那么一定可以找到整数b,使得 ab-1 被n整除,或者说ab被n除的余数是1。这时,b就叫做a的“模反元素”。

a ∗ b ≡ 1 ( m o d    n ) a*b\\equiv 1(mod \\; n) ab1(modn)

  • 样例

比如,3和14互质,那么3的模反元素就是5,因为 (3 × 5)-1 可以被14整除。显然,模反元素不止一个, 5加减14的整数倍都是3的模反元素 …,-23, -9, 5, 19, 33,…,即如果b是a的模反元素,则 b+kn 都是a的模反元素。

4 未完待续

至此,进行RSA加密算法推导与证明的数学知识介绍完毕,后续章节将继续介绍RSA相关知识以及应用场景。

5 参考资料

6 番外篇

个人介绍:杜宝坤,隐私计算行业从业者,从0到1带领团队构建了京东的联邦学习解决方案9N-FL,同时主导了联邦学习框架与联邦开门红业务。
框架层面:实现了电商营销领域支持超大规模的工业化联邦学习解决方案,支持超大规模样本PSI隐私对齐、安全的树模型与神经网络模型等众多模型支持。
业务层面:实现了业务侧的开门红业务落地,开创了新的业务增长点,产生了显著的业务经济效益。
个人比较喜欢学习新东西,乐于钻研技术。基于从全链路思考与决策技术规划的考量,研究的领域比较多,从工程架构、大数据到机器学习算法与算法框架均有涉及。欢迎喜欢技术的同学和我交流,邮箱:baokun06@163.com

一切有为法,如梦幻泡影,如露亦如电,应作如是观

学习:基于avx-512指令集的同态加密算法中大整数运算性能优化与突破

...以忽视的安全风险。除了模型本身可能存在的投毒风险,隐私数据泄露导致的数据重构等风险,都可能造成一定的社会及经济损失。数据安全共享解决方案在数字经济迅速发展的大背景下,如何能够利用安全、合规、有序的数据... 查看详情

同态加密开源框架整理

开放隐私计算 2022-11-1619:17 发表于浙江以下文章来源于隐私计算研习社 ,作者庄智廉隐私计算研习社.开放隐私计算社区开放隐私计算开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享... 查看详情

opengauss数据库源码解析系列文章——数据安全技术(上)(代码片段)

...数据安全技术”的相关精彩内容介绍。openGauss采用了多种加密解密技术来提升数据在各个环节的安全性。9.6.1数据加解密接口用户在使用数据库时,除了需要基本的数据库安全之外,还会对导入的数据进行加密和解密的操... 查看详情

bsv上用于通用计算的隐私非交互式赏金(代码片段)

我们提出了一种新颖的赏金机制,可以在区块链上安全私密地外包任意计算。解决方案和付款的交换是原子的和无需信任的:赏金发布者获得解决方案而赏金收集者获得奖励,或者两者都不发生。赏金发布者部署一个... 查看详情

万向区块链技术研究报告|隐私链相关调研-oasis(代码片段)

...本文作者:万向区块链通用架构技术部宋广洋1.概要隐私始终是保护用户和扩大加密货币使用的基本要求,并被认为是Web3.0的重要方向之一。隐私赛道的角逐日益激烈,协议与应用层都诞生了诸多主打隐私的项目,... 查看详情

什么是隐私计算,它是怎样保护我们的隐私安全?

 目录​​隐私计算简单理解​​​​一、隐私安全保护面临的挑战​​​​二、隐私计算技术概念及技术路线​​​​1、安全多方计算(MPC)​​​​2、联邦学习(FL)​​​​联邦学习和多方安全计算的区别​​​​3、... 查看详情

计算机网络https协议详解(代码片段)

...f0c;是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。HTTPS默认工作在TCP协议443端口2.“加密”是什么加密相关术语:明文:要传输的原始的消息密文:通过一定的规则将明文变换后的内容加密:... 查看详情

23篇大数据系列sql基础知识(史上最全,建议收藏)(代码片段)

...作者、大数据&Python领域优质创作者。维护多个大数据技术群,帮助大学生就业和初级程序员解决工作难题。我的使命与愿景:持续稳定输出,赋能中国技术社区蓬勃发展!大数据系列文章,从技术能力、业... 查看详情

隐私计算之全同态加密

...的渺小和微不足道,会越发地敬畏技术和未知,隐私计算也不例外。读了一点儿文章和paper,觉得还是ACM上的这篇综述(https://queue.acm.org/detail.cfm?id=3561800)可以对全同态加密有一个概貌,从而了解其脉... 查看详情

隐私计算之全同态加密

...的渺小和微不足道,会越发地敬畏技术和未知,隐私计算也不例外。读了一点儿文章和paper,觉得还是ACM上的这篇综述(https://queue.acm.org/detail.cfm?id=3561800)可以对全同态加密有一个概貌,从而了解其脉... 查看详情

6.java加解密技术系列之3des

...于DES是一种非常简便的加密算法,但是密钥长度比较短,计算量比较小,相对来说,比较容易被 查看详情

23篇大数据系列scala基础知识全集(史上最全,建议收藏)(代码片段)

...作者、大数据&Python领域优质创作者。管理多个大数据技术群,帮助大学生就业和初级程序员解决工作难题。我的使命与愿景:持续稳定输出,赋能中国技术社区蓬勃发展!大数据系列文章,从技术能力、业... 查看详情

非对称加密技术-rsa算法数学原理分析(代码片段)

非对称加密技术,在现在网络中,有非常广泛应用。加密技术更是数字货币的基础。所谓非对称,就是指该算法需要一对密钥,使用其中一个(公钥)加密,则需要用另一个(私钥)才能解密。但是对于其原理大部分同学应该都... 查看详情

2021年数据中台行业十大关键词(代码片段)

...年中数据中台行业十大热门关键词,包括了云原生、隐私计算这类热门技术;国产化信创、PBC这类市场趋势;还有轻量级数据中台、CDP等热门业务方向。这些概念在丰富现有模式的同时,也为未来行业发展带来了... 查看详情

美团隐私计算平台通过行业权威认证

近日,在2022年隐私计算大会上,中国信通院公布第六批可信隐私计算评测结果,美团隐私计算平台通过“联邦学习安全”和“多方安全计算基础能力”两个专项评测认证。2021年,美团已经通过“联邦学习基础能... 查看详情

数据加密(代码片段)

...连接起来,使具备互相通信的条件,但是通信信息有些事隐私,有些通信不能被其他人知道。互联网私人生活交流信息不被恶意者随意窃取,也应该是社会秩序正常稳定的表现,平时的通信不过如此,涉及到商业信息,数据保密... 查看详情

同态加密实现数据隐私计算,能让你的小秘密更加秘密

摘要:同态加密作为实现数据隐私计算的关键技术,在云计算、区块链、隐私计算等领域均存在着广泛的应用需求和一些可行的应用方案。本文分享自华为云社区《同态加密在联邦计算中的应用》,作者:生也有... 查看详情

大数据与人工智能系列文章

目录文章目录目录隐私计算隐私计算《隐私计算—Overview》《隐私计算—安全多方计算—Overview》《隐私计算—联邦学习—Overview》《隐私计算—联邦学习—联邦迁移学习》《隐私计算—TEE—Overview》《隐私计算—区块链—Overview... 查看详情