Public-Key Cryptosystems Based on Composite Degree Residuosity Classes
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文。
论文未全部翻译
Abstract.
本文研究了一个新的计算问题,即合数剩余阶问题(Composite Residuosity Class Problem),及其在公钥密码学中的应用。我们提出了一种新的陷阱门(trapdoor)机制,并从这一技术中推导出了三种加密方案:一种陷阱门排列方案和两种同态概率加密方案,其计算结果与RSA相当。我们的密码系统基于通常的模块化算法,在标准模型的适当假设下可以证明其安全性。
1 Background
然而,我们认为,密码研究已经悄然见证了第三类陷阱门技术的逐步出现:首先在离散对数中被识别为陷阱门,它们实际上是由高剩余度类的常见代数设置产生的。在基于二次剩余的Goldwasser-Micali的方案[9]之后,Benaloh的同态加密函数最初是为电子投票而设计的,并且依赖于素数剩余,它预示了第一次尝试:利用这一理论的纯资源。随后,Naccache和Stern[16],以及Okamoto和Uchiyama[19]分别研究了两种不同的加密方法:中平滑度的剩余和
中质数p的剩余,从而显著地扩展了加密率。同时,其他方案,如Vanstone-Zuccherato[28]在椭圆曲线上或Park-Won[20]探索在其他设置中使用高剩余量。
本文提出了一种新型的陷阱门机构。与素数剩余相比,我们的技术是基于合数剩余,阶数设置为一个难以因子化的数n=pq,其中p和q是两个大素数。容易理解的是,我们相信我们的陷阱门为构想公钥密码系统提供了一个新的密码构建块。
在第2和第3节中,我们介绍了我们的数论框架,并在此背景下研究了一个新的计算问题(合数剩余阶问题),这是我们的主要假设。在此基础上,我们进一步推导出了三种同态加密方案,包括一种新的陷阱门排列。在适当的难处理性假设下,概率方案在语义上是安全的。我们所有的多项式简化都是简单的,并且是标准模型。
注:
1、欧拉函数Φ(n)的意义是求跟n互素,且小于n的元素的个数;
其中p1,p2,...,pr为互不相同的质数。
2、卡迈克尔函数求得是与n互素且小于n的任意一个数,在计算模n的幂次的时候,等于1的那个最小的幂次。
3、lcm(a,b)表示a,b的最小公倍数;
4、Φ(n2)=Φ(p2q2)=Φ(p2)Φ(q2)=p(p-1)q(q-1)=pq(p-1)(q-1)=nΦ(n);其中n=pq,且p,q为大质数。
2 Deciding Composite Residuosity
首先简要介绍了合数阶剩余作为高阶剩余的自然实例,并给出了一些基本的相关事实。我们设置的独创性在于使用一个平方数作为模数。如前所述,n=pq是两个大素数的积。
3 Computing Composite Residuosity Classes
4 A New Probabilistic Encryption Scheme
注:
1、gcd(m,n)求的是m与n的最大公约数;
2、Sn = { u < n2 | u = 1 mod n };
3、任意u属于Sn,L(u) = (u-1) / n;
5 A New One-Way Trapdoor Permutation
6 Reaching Almost-Quadratic Decryption Complexity
7 Efficiency and Implementation Aspects
在本节中,我们简要分析了密码系统所需计算的主要实际方面,并提供了各种提高性能的实现策略。
密钥生成
必须根据常规方法生成素数因子p和q,以使n尽可能难以分解。 快速变体(方案3)额外需要λ = lcm(p-1, q-1),其中λ是160位素数的倍数,可以通过常用的DSA-素数生成或其他类似技术来管理。 基数g可以在可被n整除的元素中随机选择,但请注意,快速变体将需要特定处理(通常将最大阶的元素提升到幂λ/α)。 通过在最后分别执行mod p2和mod q2以及中国剩余g mod p2和g mod q2的计算,可以使整个产生更容易。
加密
加密需要基数g的模幂运算。 通过明智地选择g可以显著加速计算。 作为说明性示例,假设所选择的值满足由设置施加的要求g属于B,取g = 2或小数允许一个立即加速因子1/3。 可选地,如果密钥生成过程包括特定调整,则g甚至可以固定为恒定值。 同时,用于对恒定基数进行取幂的预处理技术可以显著降低计算成本,还可以预先计算rn或gnr mod n2。
解密
通过对n-1 mod 2|n|进行预计算,可以以非常低的成本(只有一个乘法模2|n|)计算L(u),其中u属于Sn。常数参数
也可以预先计算一次。
中国剩余解密
利用中国剩余定理[6]可以有效地降低三种密码系统的解密工作量。要看到这一点,必须使用Lp和Lq函数,定义为
因此,通过分别计算信息mod p和mod q,然后重新组合模块剩余,可以更快地实现解密:
带预计算
其中p-1和q-1必须用快速变量替换。
性能评估
对于每个|n| = 512,... ,2048,将位大小为|n|的模乘作为一元运算,我们假设模乘的执行时间是操作数大小的二次方,并且模数平方由相同的例行程序计算。中国剩余,以及随机数生成的概率方案,被认为是微不足道的。RSA公共指数等于F4=216+1。在我们的主方案中,参数g被设置为2,在陷阱门排列中也如此。假设其他参数、秘密指数或信息在二进制表示中包含大约相同数量的1和0。
这些估计纯粹是指示性的,并不是实际执行的结果。我们没有包括潜在的预处理阶段。密码系统中考虑到了中国剩余,即所有密码系统都不包括ElGamal。
8 Properties
在总结之前,我们想再次强调我们的密码系统的代数特性,特别是方案1和方案3。
随机自约化
这个性质实际上涉及基础的数论问题CR[n]和Class[n],并且在某种程度上,它们的弱化版本D-PDL[n,g]和PDL[n,g]。本质上,随机自约化问题和最坏情况下一样困难:RSA和离散对数问题都有这一特点。这种类型的问题被认为会产生很好的单向函数的候选者[1]。
加法同态性质
自我致盲
任何密文都可以公开更改为另一个密文,而不影响明文:
取决于所考虑的密码系统。这种属性在各种加密设置中都有潜在的应用。
9 Further Research
本文介绍了一个新的数论问题和一种基于合数剩余阶的陷阱门机构。我们基于我们的技术推导出了三种新的密码系统,在充分的不可处理性假设下,所有密码系统都是可靠的。
虽然我们没有提供任何安全性证明,以抵御选定的密文攻击,但我们相信,至少在随机预言模型中,方案1和方案3可能会有细微的修改,以使它们能够抵御此类攻击。
另一个研究主题是利用我们系统的同态特性来设计分布式加密协议(多签名、秘密共享、阈值加密等)或其他加密有用的对象。
References
。。。
Public-Key Cryptosystems Based on Composite Degree Residuosity Classes的更多相关文章
- Get RSA public key ASN.1 encode from a certificate in DER format
RSA public key ASN.1 encode is defined in PKCS#1 as follows: RSAPublicKey :: = SEQUENCE { modul ...
- Domino----The Address Book does not contain a cross certificate capable of validating the public key.
The Address Book does not contain a cross certificate capable of validating the public key. 地址本不包含交叉 ...
- 在iOS中使用OpenSSL的Public Key 进行加密
这几天一直潜心于iOS开发,刚好把遇到的问题都记录一下.这次遇到的问题就是如果根据得到的Public Key在iOS 客户端对用户名和密码进行加密. Public Key如下: -----BEGIN ...
- windows,linux,mac生成ssh public key 和 private key
https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair Creating the key How you create your SSH ...
- 公钥(Public Key)与私钥(Private Key)
公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分.公钥通常用于加密会话密钥.验证数字签 ...
- gpg --verify之"Can't check signature: No public key"
自从XcodeGhost之后下载软件之后也会先验证一下md5sum,现在发现后面还有gpg签名,于是也开始学习一下. gpg的文件在centos6.4上是默认安装的,其安装使用可以参照ruanyife ...
- .NET导入openssl生成的公钥之BEGIN RSA PUBLIC KEY
.NET导入openssl生成的公钥之BEGIN RSA PUBLIC KEY 我得到了一个公钥,形式如下 -----BEGIN RSA PUBLIC KEY----- MIGJAoGBAMroxz3 ...
- 使用public key来做SSH authentication
public key authentication(公钥认证)是对通过敲用户名.密码方式登录服务器的一种替代办法.这种方法更加安全更具有适应性,但是更难以配置. 传统的密码认证方式中,你通过证明你你知 ...
- Firefox 32 支持 Public Key Pinning 对抗中间人攻击。
Firefox 32 支持 Public Key Pinning 对抗中间人攻击.8月28日消息,即将发布的Firefox 32将支持Public Key Pinning机制,以防止中间人攻击.Pub ...
随机推荐
- pandas_处理异常值缺失值重复值数据差分
# 处理异常值缺失值重复值数据差分 import pandas as pd import numpy as np import copy # 设置列对齐 pd.set_option("dis ...
- 因为不知道Java的CopyOnWriteArrayList,面试官让我回去等通知
先看再点赞,给自己一点思考的时间,微信搜索[沉默王二]关注这个靠才华苟且的程序员.本文 GitHub github.com/itwanger 已收录,里面还有一线大厂整理的面试题,以及我的系列文章. ...
- PHP get_resource_type() 函数
get_resource_type() 返回资源(resource)类型. 版本要求:PHP 4 >= 4.0.2, PHP 5, PHP 7高佣联盟 www.cgewang.com 语法 st ...
- luogu P2183 [国家集训队]礼物
LINK:礼物 n个物品 m个人 每个人要分得wi 个物品 每个物品互异 分给每个人的物品不分顺序 求方案数. \(n,p\leq 1e9 m\leq 5\) 方案数 那显然是 第一个人拿了w1件物品 ...
- Taurus.MVC 2.3.4 :WebAPI 文档集成测试功能升级:WebAPI批量自动化测试功能。
前言: 最近升级了一下Taurus.MVC,现在最新版本是:Taurus.MVC 2.3.4,源码版本和nuget同步. 下面分三个步骤介绍下新版本的WebAPI批量自动化测试功能. 1.启用WebA ...
- 一个C++版本的Sqlite3封装--SmartDb
Sqlite是一个非常轻量级的开源数据库,在嵌入式系统中使用的比较多,存储管理数据非常方便,Sqlite库提供的基于C语言的API,用起来也挺简单,但是有一点不太好的就是API使用起来有些繁琐,另外就 ...
- 企业级Gitlab-ci实践
前言 吐槽一波 2020年6月2号刚入职公司时,第一感觉是集群环境是个大坑!内网一套,公网一套.内网采用单节点Kubernetes,公网采用aliyun托管的X节点Kubernetes(还有节点是2C ...
- Spring IOC 原理深层解析
1 Spring IOC概念认识 1.1 区别IOC与DI 首先我们要知道IOC(Inverse of Control:控制反转)是一种设计思想,就是 将原本在程序中手动创建对象的控制权,交由Spri ...
- C#LeetCode刷题之#9-回文数(Palindrome Number)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3840 访问. 判断一个整数是否是回文数.回文数是指正序(从左向右 ...
- golang的树结构三种遍历方式
package main import "log" type node struct { Item string Left *node Right *node } type bst ...