密码学中的同态加密算法,保证数据的安全,你了解吗?

目录

  • 密码学中的同态加密算法,保证数据的安全,你了解吗?
    • 1:什么是同态加密?
      • 2:同态加密算法原理
      • 3:标准化进展
      • 4: 主流同态加密算法原理
        • 4.1(1)乘法同态加密算法

1:什么是同态加密?

同态加密(Homomorphic Encryption, HE) 是指满足密文同态运算性质的加密算法,即数据经过同态加密之后,对密文进行特定的计算,得到的密文计算结果在进行对应的同态解密后的明文等同于对明文数据直接进行相同的计算,实现数据的“可算不可见”。同态加密的实现效果如图1所示。

2:同态加密算法原理

如果一种同态加密算法支持对密文进行任意形式的计算,则称其为全同态加密(Fully Homomorphic Encryption, FHE);如果支持对密文进行部分形式的计算,例如仅支持加法、仅支持乘法或支持有限次加法和乘法,则称其为半同态加密或部分同态加密,英文简称为SWHE(Somewhat Homomorphic Encryption)或PHE(Partially Homomorphic Encryption)。一般而言,由于任意计算均可通过加法和乘法构造,若加密算法同时满足加法同态性和乘法同态性,则可称其满足全同态性。

目前,同态加密算法已在区块链、联邦学习等存在数据隐私计算需求的场景实现了落地应用。由于全同态加密仍处于方案探索阶段,现有算法存在运行效率低、密钥过大和密文爆炸等性能问题,在性能方面距离可行工程应用还存在一定的距离。因此,实际应用中的同态加密算法多选取半同态加密(如加法同态),用于在特定应用场景中实现有限的同态计算功能。

3:标准化进展

1)半同态加密标准化

2019年5月,国际标准化组织ISO发布了同态加密标准(ISO/IEC 18033-6:2019)。该标准仅涉及半同态加密,具体包含两种较为成熟的半同态加密机制:ElGamal乘法同态加密和Paillier加法同态加密,并规定了参与实体的参数和密钥生成、数据加密、密文数据解密、密文数据同态运算等步骤的具体过程。

(2)全同态加密标准化

2017年7月,来自学术界、工业界和政界的相关领域研究人员组成了全同态加密标准化开放联盟HomomorphicEncryption.org,在微软研究院举办了首届全同态加密标准化研讨会,开始共同推进全同态加密标准草案的编写工作,并发布了全同态加密安全标准、API标准、应用标准三份白皮书。迄今为止,HomomorphicEncryption.org在三年内已举办五届全同态加密标准化会议,参与成员包括微软、三星SDS、英特尔、IBM、谷歌、万事达卡等企业,以及NIST、ITU等机构的代表和各大高校的学者。在标准化进展方面,HomomorphicEncryption.org已分别于2018年3月和11月发布和更新了全同态加密标准草案。

4: 主流同态加密算法原理

满足有限运算同态性而不满足任意运算同态性的加密算法称为半同态加密。典型的半同态加密特性包括乘法同态、加法同态、有限次数全同态等。

4.1(1)乘法同态加密算法

在实际应用中,密文乘法同态性的需求场景不多,因此乘法同态性通常偶然存在于已有的经典加密算法中。满足乘法同态特性的典型加密算法包括1977年提出的RSA公钥加密算法和1985年提出的ElGamal公钥加密算法等。
① RSA算法
RSA算法是最为经典的公钥加密算法,至今已有40余年的历史,其安全性基于大整数分解困难问题。在实际应用中,RSA算法可采用RSA_PKCS1_PADDING、RSA_PKCS1_OAEP_PADDING等填充模式,根据密钥长度(常用1024位或2048位)对明文分组进行填充,而只有不对明文进行填充的原始RSA算法才能满足乘法同态特性。由于原始的RSA不是随机化加密算法,即加密过程中没有使用随机因子,每次用相同密钥加密相同明文的结果是固定的。因此,利用RSA的乘法同态性实现同态加密运算会存在安全弱点,攻击者可能通过选择明文攻击得到原始数据。
② ElGamal算法

ElGamal算法是一种基于Diffie-Hellman离散对数困难问题的公钥密码算法,可实现公钥加密和数字签名功能,同时满足乘法同态特性。ElGamal是一种随机化加密算法,即使每次用相同密钥加密相同明文得到的密文结果也不相同,因此不存在与RSA算法类似的选择明文攻击问题,是ISO同态加密国际标准中唯一指定的乘法同态加密算法。

(2)加法同态加密算法

Paillier算法是1999年提出的一种基于合数剩余类问题的公钥加密算法,也是目前最为常用且最具实用性的加法同态加密算法,已在众多具有同态加密需求的应用场景中实现了落地应用,同时也是ISO同态加密国际标准中唯一指定的加法同态加密算法。此外,由于支持加法同态,所以Paillier算法还可支持数乘同态,即支持密文与明文相乘。

(3)有限全同态加密算法

2005年提出的Boneh-Goh-Nissim方案是一种基于双线性映射的公钥密码方案,支持任意次加法同态和一次乘法同态运算。方案中的加法同态基于类似Paillier算法的思想,而一次乘法同态基于双线性映射的运算性质。由于双线性映射运算会使得密文所在的群发生变化,因此仅能支持一次乘法同态运算,但仍支持对乘法后的密文进一步作加法同态运算。

密码学中的同态加密算法,保证数据的安全,你了解吗?相关推荐

  1. Jmeter中使用循环如何保证数据不重复

    在Jmeter中设置并发为S,循环次数为N时,参数化文件可能被重复读取N次,无法保证每次读取的数据均不一样,此处介绍保证数据不重复的方法. 启动jmeter 新建一个线程组 在线程组下添加一个CSV ...

  2. 密码学之BGN同态加密算法

    BGN同态加密算法: BGN是一种同态加密方案,是Bonel h等人在2005提出的一种具有全同态性质的加密方案.和传统的仅能支持单同态的elgamal和paillier加密方案不一样,BGN能够同时 ...

  3. 【联邦学习邂逅密码学系列】基于同态加密算法python代码实现

    这是我的学习笔记,若有不足和错误之处,欢迎交流和指正,谢谢! 联系方式:lrcgnn@163.com 前言 联邦学习是一种参与方之间联合隐私训练的新范式,受到学术界和工业界的关注.然而一些研究表明,联 ...

  4. 关于ETL过程如何保证数据量的准确性和数据的正确性的讨论

    关于 ETL 过程如何保证数据量的准确性和数据的正确性的讨论 Flywolf2000 这个问题很简单,就是 ETL 过程中,你怎么保证数据的准确性,这个准确性包含两个方面:数据量的准确性,数值的正确性 ...

  5. 密码学加密算法分类_密码学中的国际数据加密算法(IDEA)

    密码学加密算法分类 Introduction 介绍 International Data Encryption Algorithm (IDEA) is a type of cryptography a ...

  6. 计算机密码学思路,密码学中加密算法的研究和实现

    密码学是一门古老而深奥的学科,是研究计算机信息加密.解密及其变换的科学,是数学和计算机的交叉学科,也是一门新兴的学科[1].早在四千年前,古埃及人就开始使用密码来保密传递消息.两千多年前,罗马国王Ju ...

  7. 网络中数据如何保证数据的安全性?

    在当今网络的时代中,到底是如何保证数据传输的安全的呢?下面在原理上来阐述实现过程. 一.安全标准 网络信息安全标准由美国国家标准与技术研究院(National Institute of Standar ...

  8. 如何保证数据在传输过程中的安全

    数据加密被公认为是保护数据传输安全惟一实用的方法和保护存储数据安全的有效方法,它是数据保护在技术上最重要的防线. 数据加密技术是最基本的安全技术,被誉为信息安全的核心,最初主要用于保证数据在存储和传输 ...

  9. c# mysql代码中写事务_代码中添加事务控制 VS(数据库存储过程+事务) 保证数据的完整性与一致性...

    [c#]代码库代码中使用事务前提:务必保证一个功能(或用例)在同一个打开的数据连接上,放到同一个事务里面操作. 首先是在D层添加一个类为了保存当前操作的这一个连接放到一个事务中执行,并事务执行打开同一 ...

最新文章

  1. SpringSecurity-eclipse
  2. 构造函数与析构函数到底做了啥?
  3. Oxite分析(记录)
  4. Android画布的保存,Android canvas用法介绍之save()和restore()
  5. ai人工智能编程_从人工智能动态编程:Q学习
  6. BE的完整形式是什么?
  7. H3C MSR路由器GRE over IPv4典型配置案例
  8. 创建一个django的项目 使用自创的虚拟环境
  9. 用websocket技术开发的web聊天系统
  10. OpenStack实践系列②认证服务Keystone
  11. 个性化推荐与知识图谱在剧本杀行业的应用与实践
  12. POJ 2975 Nim(博弈论)
  13. asp英语是什么意思_如何在ASP.NET Core中使用JSON Patch
  14. 推荐几个我珍藏的公众号~超级无敌!
  15. spring init
  16. 如何基于 Spark Streaming 构建实时计算平台
  17. SPSS 相关系数例题、斯皮尔曼相关系数SPSS分析
  18. 阿里云centos7.4安装并部署svn1.10.0版本(配置多仓库,加入开机自启动)
  19. shell 执行qt生成文件_(原创)如何在QT下执行shell或外部程序(QT4)(shell)(mini6410)(smplayer)...
  20. Oracle练习题(三)

热门文章

  1. Linux 下使用杀毒软件clamav扫描木马病毒
  2. H5唤起手机电话功能
  3. 节点电压法解复杂反馈的op电路
  4. 中国首次成功实现4K超高清电视5G网络传输测试
  5. ProcessOn思维导图插入LaTeX数学公式初体验
  6. 计算机丢失mfc110d.dll,msvcp110d.dll
  7. [呼吁]用奶粉代替母乳是误区
  8. HHKB 使用一月体验
  9. 高精度光照传感器基本介绍
  10. 苹果cms采集后怎么添加或是导入播放器