使用乘法秘密共享的RSA解密的制作方法

文档序号:11841946阅读:287来源:国知局
使用乘法秘密共享的RSA解密的制作方法与工艺
本发明大体来说涉及密码编译过程,且更明确地说涉及基于RSA的过程。
背景技术
:非对称密码术,也被称作公共密钥密码术,是指代需要两个单独密钥的密码编译过程的密码术的子集。使用一个密钥(称为私用密钥)来对消息进行解密和签名。使用另一密钥(称为公共密钥)来对消息进行加密且验证消息签名。如其名称所表明,私用密钥由单一实体私密地持有,而公共密钥通常发布给许多不同实体。假设Alice是拥有私用密钥的实体,且Bob是具有公共密钥的副本的任何实体。归功于此不对称设置,任何实体可将机密消息发送给Alice,但只有她可以对机密消息进行解密。并且,如果Alice对消息进行签名,那么任何实体可通过使用Alice的公共密钥检验所述签名来检查所述消息未被篡改。如果此检验成功,那么其还意味着Alice确实对消息进行了签名,因为对于所述公共密钥,只有她的私用密钥可产生有效签名(此过程被称为抗抵赖性)。一种众所周知的不对称密码编译过程为RSA。假设表示整数的集合{1,2,...,N-1},且N=pq是相等大小的两个质数的乘积。N称为RSA模数。RSA公共密钥为对<N,e>,其中e通常在集合{3,17,216+1}中选择。对应的RSA私用密钥为对<N,d>,其中d被计算使得对于任何整数我们拥有MedmodN=M。为计算d,Alice首先计算尤拉商数函数随后计算d作为e模的乘法逆元素,即在此设置阶段之后,加密和解密操作较为简单。在RSA中,明文消息由整数表示。为使用Alice的密钥对所述消息进行加密,Bob计算C=MemodN其产生密文C。当Alice接收此消息时,她使用她的私用密钥执行逆运算,也就是说,M=CdmodN以上运算通常在电子装置中实施。我们关注用于使用Alice的私用密钥对消息进行签名或解密的过程和装置。除了执行签名或解密的这些操作外,这些过程和装置还可用于保护私用密钥的机密性以防我们将称为Marvin的恶意攻击者试图窃听或篡改Alice与Bob之间的通信。如果Marvin设法在未得到Alice的同意的情况下对消息进行签名或解密,那么Marvin的攻击成功。大多数严重的攻击是Marvin成功地从装置自身提取Alice的私用密钥的攻击。存在许多用于尝试此攻击的已知的方法。举例来说,Marvin可观察装置的功率消耗或电磁发送,且使用侧通道分析提取私用密钥的位。Marvin还可操纵装置,改变操作条件或篡改装置的基本组件使得装置输出其存储器内容的一部分。此可在(例如)以下情况下发生:在装置输出所述消息时,含有经解密消息的地址的指针被损坏而指向存储器中的随机地址。如果此地址在含有Alice的私用密钥的存储器区内,则所述攻击成功。应注意,Marvin并不需要猜测私用密钥的所有位才可以成功。部分密钥暴露攻击允许攻击者从对密钥位的仅部分了解恢复整个私用密钥。首先,其是众所周知的,使得当公共密钥指数e为小时,RSA系统泄漏对应私用密钥指数d的最高有效位的一半;参看DanBoneh的“对于RSA密码系统的20年攻击(TwentyyearsofattacksontheRSAcryptosystem)”,AMS通告,第203-213页,1999年2月。在另一论文中,Boneh等人论证以下理论,阐述Marvin可从最低有效位的仅一分数检索完全私用密钥指数,只要对应公共密钥为小,参看DanBoneh等人的“在给定RSA私用密钥的位的小分数的情况下暴露RSA私用密钥(ExposinganRSAprivatekeygivenasmallfractionofitsbits)”,(K.Ohta和D.Pei编),第1514卷,1998年,25-34页。Boneh等人的理论是:假设<N,d>是私密RSA密钥,其中N为n位长。给定/n/4/最低有效位d,Marvin可以时间线性在elog2e中重建全部d。基于以上理论的攻击在Marvin知道d的n/4最低有效位的情况下奏效。相反,在Marvin知道除这些n/4最低有效位外的所有位的情况下,我们可示出类似结果。存在此攻击的许多其它变型。还存在多种已知对策来应对这些攻击。一个此类对策为秘密共享,也被称作多方计算。在该方法中,私用密钥d拆分成均独立使用的若干秘密部分d1、d2、……、dk。每一密钥在加密文本的解密之后产生中间消息,且这些中间消息随后组合在一起以获得原始透明文本消息。此过程使得每一私用密钥共享并不揭示关于原始私用密钥的任何信息,且以相同方式,每一中间消息并不揭露关于原始透明文本消息的任何信息。图1示出秘密共享概念。在图1中,每一指数运算其中=1,2,3可并行且由单独实体进行以减小攻击者获得所有秘密共享的访问权的机率。秘密共享通常利用私密指数d的另一特性,其为:存在可用于解密密文的无限多的等效私密指数d′。假设k∈N以及依据尤拉的理论,我们得到modN=1,且因此在对称密码术中,实施秘密共享的常见方式是将对称密钥拆分为进行异或运算的若干部分,所述若干部分逐位相加在一起以还原原始密钥。可通过用规律整数加法替代异或运算而与RSA一起使用相同方法。RSA私用密钥可随后拆分为k个部分如下:使用这些共享的解密完成如下。首先单独地使用每一密钥部分解密密文以产生中间消息Mi,其中1≤i≤k。随后将所有消息相乘在一起以获得原始密文消息。我们得到M1=Cd1+modNM2=Cd2+modN...Mk=Cdk+modNM=M1·M2...MkmodN]]>如之前所提到,在图1中示出所述方法。将私用密钥拆分为多个部分增加了攻击者必须猜测的位的数目。此外,取决于攻击设定,秘密共享可使攻击者的任务变得困难得多乃至无法实现。为防止部分密钥暴露,已知技术是通过应用尤拉的理论扩展私密指数的大小。举例来说,假设r为64位随机整数。所述想法在于将秘密共享不直接应用到d,而是应用到我们因此得到以下作为私用密钥的秘密共享技术实现要素:尽管所附权利要求书针对特征的特定组合,但应理解,本发明的范围还包括任何新颖特征或本文中所公开的特征的新颖组合。在单独实施例的上下文中描述的特征也可以组合地提供于单个实施例中。相反,为了简洁起见,在单个实施例的上下文中所描述的多种特征也可以单独地或以任何合适的子组合形式提供。此简要概述并不希望限制本发明的范围,而是强调一些特征且介绍本发明的各个方面。各种示例性实施例涉及在处理器中执行密码编译过程,包括:在具有私用密钥d的RSA过程中,将d拆分为k个共享,使得1≤i≤k,其中N为RSA模数,且为尤拉商数函数,且被提供文本C,确定文本M,使得其中1≤i≤k使得M以按顺序执行的k模幂计算,使得其中1≤i≤k且其中M1=M以及C=Mk+1。各种示例性实施例涉及一种用于发送消息M的装置,包括:存储器;与存储器通信的处理器,所述处理器被配置成:执行密码编译过程,包括具有拆分成k个共享的私用密钥d的RSA过程,使得:1≤i≤k,其中N为RSA模数,且为尤拉商数函数;以及确定所述消息M在被提供文本C之后,能够通过计算其中1≤i≤k,使得M以按顺序执行的k模幂计算,使得其中1≤i≤k且其中M1=M以及C=Mk+1。附图说明为促进对本发明的理解,可参考附图,其中:图1为示出现有技术过程的图;图2为示出本发明的一实施例的图;图3为示出另一示意性实施例的图。具体实施方式论述用于在各种应用中拆分私用密钥指数的有利的过程。此过程利用模乘代替加法将指数共享组合在一起。此过程利用应用到密文消息的连续模幂。RSA私用密钥拆分为k个部分如下:使用这些秘密共享,我们得到在图2中针对私用密钥的三个共享分解来示出此方法。在以下论述中,为简单起见,我们采用私用密钥的两个共享分解,即或所公开的过程具有抵抗例如之前论述的部分密钥暴露攻击的内建式阻力。这些攻击需要Marvin知道d=dmod2n/4或给定d,猜测k使得在前一情况中,即使Marvin可恢复和的所有位,他也无法在不知道秘密的的情况下检索d。在后一情况下,检索k的成本平均为可使其充分大以致使攻击不可行。举例来说,如果Marvin必须进行平均来说超过264个猜测,那么进行n位第一共享和48位第二共享就足够(此时e=216+1)来防范此攻击。此仅给出针对1024位模数5%的共享开销,以及针对2048位模数2%的共享开销。相比之下,背景中论述的秘密共享方法不能抵抗部分密钥暴露攻击。两个必须至少n/4位长来防范此先前论述的攻击。否则一方可从他的共享检索原始私用密钥指数。这意味着,在无进一步保护的情况下,先前论述的方法具有针对1024位和2048位模数RSA两者的至少1/4(即,25%)的共享开销。因此,所公开的过程允许安全且更有效的秘密共享。所公开的过程需要较少存储器来将共享重组在一起。实际上,如果两个共享由相同装置计算,那么装置仅必须计算且接着丢弃C并计算在先前使用的过程中,必须保持中间消息用于稍后重组,且因此需要另外一个n位缓冲器,这对于低端装置来说可能是非常显著的问题。最后,所公开的过程与任何标准RSA库一起且针对相同参数长度工作。更确切地说,假定针对某一最大模数长度n,Alice仅能够访问提供称为RSADECRYPT()的接口的简单装置。这足以供Alice实施所公开的共享方法,但对于先前使用的方法来说是不够的。对于后者,Alice还需要简单装置并不提供的模乘接口。并且,即使此接口确实存在,所公开的过程仍具有提供对于部分密钥暴露的防范的优点,即使对于装置所支持的最大密钥长度也如此。利用先前使用的后台过程,Alice将可以选择减小最大密钥大小以允许使用如较早解释的经扩展密钥d′,或使用具有高得多的共享开销的更大共享。我们描述若干示意性实施例过程。在第一过程中,Alice使用提供常见RSA解密接口的装置,如下文在过程1中详述。我们假定这些装置以某一安全方式存储私用密钥,且此密钥在某一设置阶段期间馈送到所述装置。如果Alice具有若干此类装置,那么她可应用所公开的过程,如下。我们假定她具有两个此类装置。首先,她将她的私用密钥指数d拆分为两个部分和如等式(2)中所指示。她以密钥将第一装置初始化且将此装置给予她的最好的朋友Alix,Alix承诺不向除Alice以外的任何人给予对装置的访问权。随后她以密钥将她的第二装置初始化。每当她得到经加密消息C,她就拜访她的朋友Alix,使用第一装置解密所述消息以产生第一中间消息X,且接着使用她自身的装置来解密X且产生原始明文消息M。Alice的所有装置不需要为相同的。在第二情境中,Alice将具有单一强大装置和若干轻量装置。这些装置通常较便宜且电力方面较友好,但解密消息的速度慢的多。Alice可以类似方式实施本发明,同时仍实现高总体性能。为实现此目标,她将仅产生针对轻量装置的小共享(例如,64位共享),且针对她自身的较强大装置计算剩余共享,如等式(3)给定。因为由轻量装置处理的密钥短得多,所以对总体性能的影响较小,尽管这些装置不太强大。并且,即使有人将盗窃Alice的装置,他们将不能够在不与Alice最好的朋友协作的情况下解密指向Alice的消息。在较特定情境中,在智能电网设置或物联网中,可存在以网状网络连接的产生组合测量值的若干传感器。期望最终测量值由完整网络自身签名。为保护所述密钥,可将小共享给予传感器中的每一个传感器,且接着将更大的共享给予例如网络集线器。随后,更大的装置(即,具有适当处理能力的装置)将从网络收集个别测量值且将其组合以产生最终经加密测量值。在第三实施例中,所有共享在单一装置中处理。此装置模仿与前两个实施例中相同的操作,只是所有部分存储在相同装置中,且所述装置调用RSADecrypt接口若干次来解密单一消息。此准许对于实施攻击的较好防范。参看下文的过程2。解密步骤不需要全部在相同函数中按顺序发生。解密步骤可在不同函数中进行,且在程序的不同阶段处进行以较好地隐藏密钥共享。在第四实施例中,单一装置在如过程3中解密密文消息之前自动计算新共享。此方法增加上一共享的计算所需要的小开销,但此总体上可忽略。此方法使侧通道分析变得困难得多,因为所有新解密使用新密钥位,且攻击者无法使用部分密钥暴露攻击来减小他的工作负荷。此方法允许使用等于基本整数库所支持的最大密钥长度的密钥长度。函数RSADecryptRndShare可由共享的数目k参数化以产生随机共享的位长度m(例如,k=2,m=64)。每当RSA在电子装置中、在通信协议中等使用时,所公开的过程可适用。所述过程确切地说适合于其中密钥较多暴露且密钥位较容易被提取的应用领域,例如软件密码编译库或白盒实施方案。所公开的过程可用于解密会话密钥,所述会话密钥可以是可用于例如DES、3DES、AES等块算法的解密的对称密钥。在其它应用中,所公开的过程可用于验证抗抵赖性上下文中的签名。此外,如所提到,所公开的过程可存储在非暂时性机器可读存储装置或移动电话、智能卡、智能电话、计算机、上网本或笔记本、机顶盒或其它装置中。图3示出用于提供用户装置安全内容和处理所述安全内容的软件应用的系统的例子。所述系统包括内容服务器300、应用服务器320、用户装置350、352,以及数据网络340。用户装置350、352可请求经由数据网络340访问由内容服务器300提供的安全内容。数据网络可以是提供用户装置350、352与内容服务器300和应用服务器320之间的连接性的任何数据网络。用户装置350、352可以是(例如)机顶盒、媒体等浮电缆、数字视频记录器、平板计算机、移动电话、膝上型计算机、便携式媒体装置、智能手表、台式计算机、媒体服务器等多个装置中的一个装置。用户的请求访问可首先需要下载可用于处理由内容服务器300提供的安全内容的软件应用。所述软件应用可从应用服务器320下载。软件应用可使用上文描述的技术来遮蔽以及如上文描述而操作。一旦用户装置350、352安装了软件应用,用户装置接着就可从内容服务器300下载安全内容,且使用所下载的软件应用访问所述安全内容。举例来说,所下载的软件应用可执行从内容服务器接收的经加密内容的解密。在其它实施例中,软件应用可执行其它安全操作,例如加密、数字签名产生和检验等。内容服务器300可控制对提供到用户装置350、352的安全内容的访问。因此,当内容服务器300接收对于安全内容的请求时,内容服务器300可将安全内容发送到请求的用户装置。同样,应用服务器320可控制对提供到用户装置350、352的软件应用的访问。因此,当内容服务器320接收对于软件应用的请求时,应用服务器320可将软件应用发送到请求的用户装置。请求软件应用或安全内容的用户装置还可在将软件应用或安全内容提供到用户装置之前由相应服务器验证。内容服务器300可包括经由一个或多个系统总线308互连的处理器302、存储器304、用户接口306、网络接口310和内容存储装置312。将理解,图3在一些方面中构成抽象图,且装置300的组件的实际组织可比所示出的更复杂。处理器302可以是能够执行存储在存储器304或存储装置312中的指令的任何硬件装置。由此,处理器可包括微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或其它类似装置。存储器304可包括各种存储器,例如L1、L2或L3高速缓冲存储器或系统存储器。由此,存储器304可包括静态随机存取存储器(SRAM)、动态RAM(DRAM)、快闪存储器、只读存储器(ROM)或其它类似的存储器装置。用户接口306可包括用于实现与例如管理员等用户的通信的一个或多个装置。举例来说,用户接口306可包括显示器、鼠标和用于接收用户命令的键盘。网络接口310可包括一个或多个装置以实现与其它硬件装置通信。举例来说,网络接口310可包括网络接口卡(NIC),其被配置成根据以太网协议通信。另外,网络接口310可实施TCP/IP堆栈以用于根据TCP/IP协议通信。用于网络接口310的各种替代的或另外的硬件或配置将是显而易见的。内容存储装置312可包括一个或多个机器可读内容存储媒体,例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储媒体、光学存储媒体、快闪存储器装置或类似存储媒体。在各种实施例中,内容存储装置312可存储将提供给用户的内容。应用服务器320包括与在内容服务器300中的元件类似的元件,并且内容服务器300中的类似的元件的描述适用于应用服务器320。另外,应注意,内容服务器和应用服务器可以在单个服务器上实施。并且,此类服务器可以在分布式计算机系统上实施以及在上云计算机系统上实施。如将理解,本文中描述的模幂、编码或数字签名方法可以在图3的系统或类似系统内以各种方式部署和利用。举例来说,用户装置350、352可由制造商或其它卖方提供,所述用户装置被预配置成将经签名的消息发送到内容服务器300以请求内容的提供。可替换的是,用户装置350、352可能不完全预配置以用于此运算;实际上,应用服务器320可与用户装置350、352通信以实现此配置。举例来说,应用服务器可发送代码指令以用于实施本文中所描述的方法或限定一个或多个查找表的数据。在另外的实施例中,已接收我们的所公开过程的实施例的上文提及的下载的(一个或多个)装置接着可使用私用密钥真实地对消息或文件进行签名或可验证各种交易。所公开的过程的实施例可见于支付卡、支付相关软件、安全访问、停车访问、交通访问和支付、以及银行、软件和数字媒体(电影、音乐等)发送,以及移动电话上的安全应用。可有利地在白盒密码编译应用中采用所公开的过程。但其也可用于灰盒或黑盒应用中。还可有利地使用所公开的过程来对抗侧通道攻击。参考特定示意性例子描述各种示意性实施例。选择示意性例子来辅助本领域的一般技术人员形成对各种实施例的清晰理解且实践所述各种实施例。然而,可被建构成具有所述实施例中的一个或多个实施例的系统、结构和装置的范围,以及可根据所述实施例中的一个或多个实施例实施的方法的范围决不限于已经呈现的特定示意性例子。相反,如相关领域的一般技术人员基于此描述将容易认识到,可根据所述各种实施例实施许多其它配置、布置和方法。在已使用例如顶部、底部、上部、下部等位置名称描述本发明的程度上,应了解,那些名称是参看对应图式而给定,且如果装置的定向在制造或操作期间改变,那么可改为应用其它位置关系。如上文所描述,出于清楚起见(而非限制)描述那些位置关系。已相对于特定实施例且参看特定图式描述本发明,但本发明不限于此,而是仅由权利要求书陈述。所描述的图式仅是示意性的,而非限制性。在图式中,出于示意性目的,各种元件的大小可被夸示且未按特定比例绘制。希望本发明涵盖组件及其操作模式的相关容差和特性的微不足道的变化。希望涵盖本发明的不完全实践。在本发明的示出书和权利要求书中使用术语“包括”时,并不排除其它要素或步骤。在参考单数名词使用不定冠词或定冠词(例如“一”或“所述”)时,除非以其它方式特定地陈述,否则此包括所述名词的复数形式。因此,术语“包括”不应解释为限于其后所列的项目;其并不排除其它要素或步骤,且因此表达“包括项目A和B的装置”的范围不应限于仅由组件A和B组成的装置。此表达表示,相对于本发明,装置的唯一相关组件是A和B。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1