描述了用于生成加密函数参数的方法、系统和计算机程序。在一些示例中,访问定义种子信息和伪随机函数的源代码。通过操作一个或多个数据处理器生成加密函数的参数。该参数是根据种子信息和伪随机函数生成的。该参数在存储器中的大小大于定义种子信息和伪随机函数的源代码的大小。
【技术实现步骤摘要】
【国外来华专利技术】根据紧凑源代码生成加密函数参数要求优先权本申请要求于2015年4月20日递交的美国专利申请No.14/691,337的优先权,通过引用将其全部内容并入本文。
技术介绍
本说明书涉及生成加密系统的加密函数参数。加密系统能够实现通过公共信道的安全通信。加密系统可以执行加密操作,例如根据加密方案对数据进行加密或解密以提供机密性,或者生成签名或对签名进行验证以提供可靠性。在一些加密系统中,选择加密函数参数来提高性能或避免某些类型的攻击。附图说明图1是示出了示例性加密系统的各个方面的示意图。图2是示出了另一示例性加密系统的各个方面的示意图。图3是示出了用于使用紧凑源代码来生成加密函数参数的示例性技术的各个方面的流程图。图4是示出了用于使用基于拼图(puzzle)的算法来生成加密函数参数的示例性技术的各个方面的流程图。图5是示出了用于基于天文事件来生成加密函数参数的示例性技术的各个方面的流程图。各附图中相似的附图标记和标号指示相似的元素。具体实施方式在总体方面,描述了用于生成加密函数参数的方法、系统和计算机程序。在一些方面,访问定义种子信息和伪随机函数的源代码。通过操作一个或多个数据处理器来生成加密函数的参数。该参数是根据种子信息和伪随机函数生成的。该参数在存储器中的大小大于定义种子信息和伪随机函数的源代码的大小。在一些实现中,根据加密通信协议,使用参数来执行加密操作。在一些实现中,加密函数包括椭圆曲线函数,并且该参数包括椭圆曲线函数的常数。在一些实现中,源代码包括用于生成加密函数的参数的最小大小的源代码。在一些实现中,生成参数包括:根据通过以所述种子信息为种子操作所述伪随机函数产生的一个或多个输出来导出参数。在一些实现中,生成加密函数的完整参数集。完整参数集在存储器中的大小大于定义种子信息和伪随机函数的源代码的大小。源代码包括用于生成加密函数的完整参数集的不可压缩的代码。加密系统可以使用加密算法或函数来执行加密操作,例如根据加密方案进行加密或解密以提供机密性,以及生成签名或对签名进行验证以实现可靠性。可以例如通过选择加密函数、加密函数的参数以及系统的其他特征来配置加密系统。在一些实现中,可以使用紧凑源代码来生成加密函数的参数。例如,源代码可以紧凑的方式定义种子信息和伪随机函数,这在一些情况下可以减少操控的可能性。在一些情况下,可以在已经使用种子信息对伪随机函数进行播种之后,基于从伪随机函数获得的输出来生成加密函数的参数。在一些示例中,源代码包括伪随机函数和种子信息的紧凑定义(例如,在计算度量方面最小的复杂度)。在一些实现中,可以使用基于拼图的算法来生成参数。例如,拼图可以用作资源增强器,以减少通过试错法获得恶意参数的可能性。在一些实现中,可以对拼图进行迭代以放大拼图的难度,然后将其应用于伪随机函数以阻碍对加密函数参数的操控。在一些实现中,可以将随机性合并到种子信息中,以例如减少对伪随机函数的依赖。举例说明,种子可以包括从可全球验证的随机源(例如天文事件)获得的信息。在一些实例中,可以根据由合并一个或多个天文事件的随机性的输入来播种的伪随机函数生成加密函数参数。许多加密算法具有这样的参数,使得该算法对于很多参数选择都将正确操作,然而参数通常意味着在算法的大量使用中是固定的。这里的“正确操作”意味着加密算法似乎对其用户有效,但是参数选择不一定保证安全性。在一些实现中,正确操作的签名方案是这样的方案,其中第二用户将能够验证第一用户的数字签名,或者第二用户将能够解密由第一用户为该第二用户生成的密文。通常,存在安全性可能失效的参数的已知实例或值。因此,需要仔细地选择参数。一些加密参数可被容易地验证,而不会显著影响加密算法的正确性。在一些系统中,满足上述要求的参数在加密算法的定义中表现为数值常数。改变参数可以包括改变数值常数,并且加密算法的参数可被称为算法的常数。当参数是恒定的时,可以在一定范围内将其看作数字,通常是整数。在某些情况下,关于常数的一些易于验证的条件可以确保算法的正确性。可能需要一些其他条件来确保对已知攻击的抵抗。与正确性相比,对攻击的抵抗通常更难以确定。加密算法中的常数的一些示例包括SHA-1中的初始值和取整常数、AES中的取整常数、RSA加密系统中的指数(通常使用216+1)、双ECDRBG中的两个点P和Q、以及针对椭圆曲线的下述参数:椭圆曲线的定义域、椭圆曲线定义y2=x3+ax+b中的曲线系数a和b、椭圆组的生成元G、关于哪些公钥定义了Diffie-Hellman共享秘密和ECDSA签名、用于导出“可验证随机”椭圆曲线(如NISTP-256)的种子。尽管本公开中的一些示例性技术是关于选择椭圆曲线进行讨论的,但是示例性技术可以应用于选择其他加密算法的常数。在许多加密算法中,两个通信用户(例如,操作计算机或任何其他数据处理装置的两个或更多个人或者有时是同一人在两个不同时间(如在安全存储的情况下))使用相同参数对于正确操作是必须的。例如,如果两个陌生人希望交换加密的消息,那么他们需要使用加密算法的相同参数。偶尔,可以在运行时在一小群互相信任的用户之间协商参数。例如,在椭圆曲线密码学(ECC)的情况下,一些标准(例如美国国家标准学会(ANSI)X9.62和SEC1(通过引用将其并入本文))允许对参数进行协商。然而,这样的运行时协商的参数可能需要相当大数量的预先计算来确定正确且安全的参数集,例如计算椭圆曲线上的点的数量,并且需要这样的加密算法,该加密算法的安全性取决于用于安全协商参数的一些参数。因此,通常在整个系统(包括大量的用户)上使用固定的算法参数集。图1是示例性加密系统100的示意图。加密系统100包括发送方终端102a、接收方终端102b和对手终端102e(“终端102”)。加密系统100可以包括附加的、更少的或不同的组件。例如,加密系统100可以包括存储设备、服务器、附加终端以及图中未示出的其他特征。示例性终端102a、102b可以彼此通信,并且示例性对手终端102e可以观测终端102a、102b之间的通信。在一些实现中,加密系统100的一些或全部组件通过一个或多个数据网络或其他类型的通信链路彼此通信。例如,终端102a、102b可以通过公共数据网络相互通信,并且对手终端102e可以通过访问公共数据网络来观测通信。在一些实现中,终端102a、102b可以通过私人网络或其他类型的安全通信链路进行通信,并且对手终端102e可以获得对传输的数据中的一些或全部数据的访问。加密系统100使用的通信链路可以包括任何类型的数据通信网络或其他类型的通信链路。例如,加密系统100可以利用有线通信链路、无线通信链路及其组合。举例说明,加密系统100可以利用无线或有线网络、蜂窝网络、电信网络、企业网络、专用公共网络、局域网(LAN)、广域网(WAN)、私人网络、公共网络(例如互联网)、WiFi网络、包括卫星链路的网络、或其他类型的数据通信网络。在一些实例中,加密系统100可以利用由防火墙或实现各种安全级别的类似特征定义的分层网络结构。终端102a、102b使用加密方案(加密或签名或两者)来允许在存在窃听者102e的情况下进行安全通信。在图1所示的示例中,发送方终端102a可以向接收方终端102b发送数据,并且终本文档来自技高网...
【技术保护点】
一种加密方法,包括:访问定义种子信息和伪随机函数的源代码;以及通过操作一个或多个数据处理器来生成加密函数的参数,所述参数是根据所述种子信息和所述伪随机函数生成的,所述参数在存储器中的大小大于定义所述种子信息和所述伪随机函数的源代码的大小。
【技术特征摘要】
【国外来华专利技术】2015.04.20 US 14/691,3371.一种加密方法,包括:访问定义种子信息和伪随机函数的源代码;以及通过操作一个或多个数据处理器来生成加密函数的参数,所述参数是根据所述种子信息和所述伪随机函数生成的,所述参数在存储器中的大小大于定义所述种子信息和所述伪随机函数的源代码的大小。2.根据权利要求1所述的方法,其中,所述加密函数包括椭圆曲线函数,并且所述参数包括所述椭圆曲线函数的常数。3.根据权利要求1所述的方法,其中,生成所述参数包括:根据通过以所述种子信息作为种子操作所述伪随机函数产生的一个或多个输出来导出所述参数。4.根据权利要求1所述的方法,其中,所述源代码包括用于生成所述加密函数的参数的最小大小的源代码。5.根据权利要求1所述的方法,还包括:根据加密通信协议,使用所述参数执行加密操作。6.根据权利要求1所述的方法,包括:生成所述加密函数的完整参数集,所述完整参数集在存储器中的大小大于定义所述种子信息和所述伪随机函数的所述源代码的大小。7.根据权利要求6所述的方法,其中,所述源代码包括用于生成所述加密函数的完整参数集的不可压缩代码。8.一种计算系统,包括:存储器,存储定义种子信息和伪随机函数的源代码;以及一个或多个数据处理器,被配置为:根据所述种子信息和所述伪随机函数生成加密函数的参数,所述参数在存储器中的大小大于定义所述种子信息和所述伪随机函数的源代码的大小。9.根据权利要求8所述的系统,其中,所述加密函数包括椭圆曲线函数,并且所述参数包括所述椭圆曲线函数的常数。10.根据权利要求8所述的系统,其中,生成所述参数包括:根据通过...
【专利技术属性】
技术研发人员:丹尼尔·理查德·L·布朗,
申请(专利权)人:塞尔蒂卡姆公司,
类型:发明
国别省市:加拿大,CA
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。