隐私计算加密技术基础系列(上)

1 密码学

1.1 背景

2021九大战略科技方向-隐私计算

隐私计算(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. 55不互质,因为55的公因数有154. 1和任何数都成倍数关系,但和任何数都互质。

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

1. 两个不同的质数一定互质。例如2713192. 一个数是质数,另一个数不是它的倍数,两者就构成互质关系,比如5263. 如果两个数之中,较大的那个数是质数,则两者构成互质关系,比如97574. 1不是质数也不是合数,它和任何一个自然数(1本身除外)在一起都是互质关系。如199085. 相邻的两个自然数是互质数。如 15166. 相邻的两个奇数是互质数。如 49517. 较大数是质数的两个数是互质数。如9766

3.3 欧拉函数

欧拉

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

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

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

例如,在18之中,与8形成互质关系的是1357,所以 φ(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}
  3. 如果m和n是互质数,那么 ϕ ( m n ) = ϕ ( m ) ϕ ( n ) \phi(mn) = \phi(m) * \phi(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 ) = n ( 1 1 p 1 ) ( 1 1 p 2 . . . ( 1 1 p n ) \phi(n) = n(1-\frac{1}{p_1})*(1-\frac{1}{p_2}*...*(1-\frac{1}{p_n})

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 ) \phi(n) 次方除以n的余数是1,也可以理解为a的 ϕ ( n ) \phi(n) 次方加1可以被n整除。

  • 样例

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

  • 特殊情况:费马小定理

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

a p 1 1 ( m o d    n ) a^{p-1} \equiv 1(mod \; n)

也可以表示成

a p a ( m o d    n ) a^{p} \equiv a(mod \; n)

欧拉定理(费马小定理)的证明涉及到当模是合数(素数就是费马小定理)的时候如何处理包含指数的特定同余式,相关证明大家可以看下数论的相关书籍,推荐阅读《初等数论机及其应用》(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)

  • 样例

比如,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隐私对齐、安全的树模型与神经网络模型等众多模型支持。 业务层面:实现了业务侧的开门红业务落地,开创了新的业务增长点,产生了显著的业务经济效益。 个人比较喜欢学习新东西,乐于钻研技术。基于从全链路思考与决策技术规划的考量,研究的领域比较多,从工程架构、大数据到机器学习算法与算法框架均有涉及。欢迎喜欢技术的同学和我交流,邮箱:[email protected]

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

本文由mdnice多平台发布

猜你喜欢

转载自juejin.im/post/7118352443380858893