热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

EIGamalencryptionVSPairingencryption

1.EIGamalencryptionElGamalisascheme,thatcanbeappliedtoanykindofgroupstructure.Theonlyrequ

1. EIGamal encryption

ElGamal is a scheme, that can be applied to any kind of group structure. The only requirement is that DDH has to be hard (e.g. not (Zp,+)(\mathbb{Z}_p,+)(Zp,+)).


  • 若基于multiplicative groups (Zp∗,⋅)(\mathbb{Z}_p^*,\cdot)(Zp,)来实现EIGamal encryption,则需要larger groups, due to attacks like index calculus。【Index Calculus攻击是一种企图解决DLP(离散对数问题)的方法。简单来说,算法把目标值写成在因子基数上的元素幂的乘积,对数已知的元素,然后利用对数定律提取目标值。】
  • 若使用elliptic curves来实现EIGamal encryption,则可以使用smaller groups,因为在elliptic curves不存在index calculus攻击问题。【但是Elliptic curves with pairings are not suitable to be used, because in that case the DDH problem is not hard. Therefore, you can not design protocols with efficiently computable pairings.】


One property of ElGamal is, that it is (semi-)homomorphic w.r.t. the group operation. If you see that as an unwelcome property, you can also call that malleable. If you consider this property useful or a security risk, depends on your point of view and your actual goal.




1.1 基于multiplicative groups (Zp∗,⋅)(\mathbb{Z}_p^*,\cdot)(Zp,)的EIGamal encryption实现

根据ppt Efficient Zero-Knowledge Argument for Correctness of a Shuffle 有:
在这里插入图片描述
根据上图公式可知,基于multiplicative groups (Zp∗,⋅)(\mathbb{Z}_p^*,\cdot)(Zp,)的EIGamal encryption实现具有乘法同态性。


1.2 基于ECC的EIGamal encryption实现

基于ECC的EIGamal encryption实现为:
在这里插入图片描述

相比于1.1的实现,多增加了第一步映射和最后一步逆运算内容:


  • 基于公共已知的函数fff先将待加密的消息mmm映射成elliptic curve EEE上的一个point PmP_mPm
  • 基于PmP_mPm进行加密成相应的密文(C,D)(C,D)(C,D)
  • 从密文(C,D)(C,D)(C,D)中可解密出相应的PmP_mPm
  • 基于fff进行逆运算f−1(Pm)f^{-1}(P_m)f1(Pm)获得原始的消息mmm

其中用于消息映射的公共已知函数fff应可逆,fff函数的选择可有:


  • 参照Neal Koblitz 1987年论文 《Elliptic Curve Cryptosystems》,其有一种实现方式为将m映射为曲线方程式中的xxx坐标,相应的yyy坐标可根据曲线方程式直接计算。【这种方式构建的EIGamal encryption不具有同态性。(Projecting the point to the x coordinate does not give you a homomorphism.)】
    在这里插入图片描述
  • 借助1.1EIGamal标准实现中的exponential思路,将消息mmm映射a point MMM on the curve (using an injective efficiently invertible encoding),M=m⋅PM=m\cdot PM=mP,其中PPP为generator, mmm为an integer in the order of the group。【基于这种思路构建的EIGamal encryption具有加法同态性。】
    在这里插入图片描述

2. Pairing encryption

可参见博客 加法/乘法同态加密算法及在zk-SNARK中的应用 和 An Introduction to Pairing-Based Cryptography学习笔记。

pairing具有乘法同态性。
若从

参考资料:
[1] ppt Efficient Zero-Knowledge Argument for Correctness of a Shuffle
[2] https://crypto.stackexchange.com/questions/14437/elgamal-with-elliptic-curves-i
[3] https://crypto.stackexchange.com/questions/9987/elgamal-with-elliptic-curves/9990#9990
[4] https://www.ams.org/journals/mcom/1987-48-177/S0025-5718-1987-0866109-5/
[5] 博客 第三十六个知识点:Index Calculus算法
[6] Neal Koblitz 1987年论文 《Elliptic Curve Cryptosystems》


推荐阅读
  • Logging all MySQL queries into the Slow Log
    MySQLoptionallylogsslowqueriesintotheSlowQueryLog–orjustSlowLog,asfriendscallit.However,Thereareseveralreasonstologallqueries.Thislistisnotexhaustive:Belowyoucanfindthevariablestochange,astheyshouldbewritteninth ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 在Qt框架中,信号与槽机制是一种独特的组件间通信方式。本文探讨了这一机制相较于传统的C风格回调函数所具有的优势,并分析了其潜在的不足之处。 ... [详细]
  • Squaretest:自动生成功能测试代码的高效插件
    本文将介绍一款名为Squaretest的高效插件,该工具能够自动生成功能测试代码。使用这款插件的主要原因是公司近期加强了代码质量的管控,对各项目进行了严格的单元测试评估。Squaretest不仅提高了测试代码的生成效率,还显著提升了代码的质量和可靠性。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
  • 本文详细介绍了 Node.js 中 OS 模块的 arch 方法,包括其功能、语法、参数以及返回值,并提供了具体的使用示例。 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 服务器虚拟化存储设计,完美规划储存与资源,部署高性能虚拟化桌面
    规划部署虚拟桌面环境前,必须先估算目前所使用实体桌面环境的工作负载与IOPS性能,并慎选储存设备。唯有谨慎估算贴近实际的IOPS性能,才能 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
  • SSAS入门指南:基础知识与核心概念解析
    ### SSAS入门指南:基础知识与核心概念解析Analysis Services 是一种专为决策支持和商业智能(BI)解决方案设计的数据引擎。该引擎能够为报告和客户端应用提供高效的分析数据,并支持在多维数据模型中构建高性能的分析应用。通过其强大的数据处理能力和灵活的数据建模功能,Analysis Services 成为了现代 BI 系统的重要组成部分。 ... [详细]
  • 求助高手调试程序,非常感谢您的支持!在编写C语言程序时遇到了一些问题,具体代码如下:```c#include #include #include #define MAX 50int t;```希望有经验的开发者能提供指导,帮助解决调试中的难题。感谢您的时间和帮助! ... [详细]
  • 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细]
  • 在使用Python 3.x的argparse模块时,如果输入参数中包含&符号,会遇到解析错误。本文介绍了如何解决这一问题,确保输入参数能够正确解析。 ... [详细]
author-avatar
张丽君2502934023
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有