A system, device and method for reservations encryption in fast format are provided. Input strings can be divided into blocks (possibly with different lengths). A set of cryptographic pipelines can perform operations on different blocks, each of which provides output blocks. The cipher pipes can interact so that the output blocks depend on each other to provide strong encryption. The pipe can operate efficiently on the block, and the operation can be carried out partially in parallel.
【技术实现步骤摘要】
【国外来华专利技术】可变长度数据的快速格式保留加密
技术介绍
在一些情况下,应用程序需要为特定目的而执行特定类型的加密。例如,对于某些应用程序,为了符合数据标准或规定,加密密文必须与原始未加密明文具有相同的大小和格式。加密输出密文与输入明文具有相同格式的加密方案可以称为格式保留加密。以前对明文输入进行格式保留加密的方法存在许多问题,这些问题包括但不限于:需要大型数据库、过度消耗CPU、密码安全性不足或者对输入文本的大小有限制。本专利技术的各实施方案涉及单独地和共同地解决上述问题和其他问题。
技术实现思路
各实施方案提供与格式保留加密的实现有关的设备、方法和系统。格式保留加密(FPE)的各种实施方案可以满足附加标准,包括:前缀保留、一致性、不可逆性、明文与密文之间的一一对应关系、伪随机性和校验和。一些实施方案可以通过使用多图形替换密码将明文数字块映射到密文数字块来为任意长度的明文提供快速且安全的FPE。在示例性实施方案中,输入字符串可以被分成多个块(可能具有不同的长度)。一组密码管道可以对不同的块执行操作,每个管道都提供输出块。密码管道可以相互作用,使得输出块互相依赖。每个管道都可以用作为密文一部分的另一个N位数块替换一个N位数明文块。密码可以保留明文的某些前缀。密码也可以使用一个或多个加密微调。因此,明文(包括前缀)中的任何改变都会对密文的加密部分产生明显的随机且不可预测的影响。为了加密明文,密码可以跳过明文的要保留的任何部分,然后从要加密的部分开始,将明文的该部分分成一个或多个指定大小的块(子字符串)。对于长度为N的块P,可以使用替换表来执行替换操作以提供输出块C。对应于长度N的替换 ...
【技术保护点】
1.一种用于执行格式保留密码运算的方法,所述方法包括在计算机系统处执行以下操作:接收M个字符的输入字符串,M是大于4的整数将所述输入字符串分成多个子字符串;存储一个或多个替换表,所述一个或多个替换表中的每一个都对应于至少一个子字符串,并基于相同的相应数量的字符的输入块来提供相应数量的字符的输出块;加载多个密码管道,每个所述密码管道都对应于所述多个子字符串中的一个,其中所述多个密码管道具有有序排列,使得起始密码管道具有一个前向相邻管道,最终密码管道具有一个反向相邻管道,而任何其他密码管道都具有两个相邻的管道;对于所述多个密码管道中的每一个:使用与对应子字符串相同大小的对应替换表来执行第一替换操作,以基于对应于所述输入字符串的第一输入块来获得第一输出块,在所述第一替换操作之后,当存在前向相邻管道时,将所述第一输出块发送到所述前向相邻管道,以使所述前向相邻管道在第一组合运算中使用所述第一输出块和对应于相邻子字符串的相邻块,以获得要被用于相邻替换操作的相邻输入块;将掩码函数应用于对应于所述第一输出块的中间输入块,以获得中间输出块,所述掩码函数取决于所述多个密码管道中的至少两个的输出块;当所述密 ...
【技术特征摘要】
【国外来华专利技术】1.一种用于执行格式保留密码运算的方法,所述方法包括在计算机系统处执行以下操作:接收M个字符的输入字符串,M是大于4的整数将所述输入字符串分成多个子字符串;存储一个或多个替换表,所述一个或多个替换表中的每一个都对应于至少一个子字符串,并基于相同的相应数量的字符的输入块来提供相应数量的字符的输出块;加载多个密码管道,每个所述密码管道都对应于所述多个子字符串中的一个,其中所述多个密码管道具有有序排列,使得起始密码管道具有一个前向相邻管道,最终密码管道具有一个反向相邻管道,而任何其他密码管道都具有两个相邻的管道;对于所述多个密码管道中的每一个:使用与对应子字符串相同大小的对应替换表来执行第一替换操作,以基于对应于所述输入字符串的第一输入块来获得第一输出块,在所述第一替换操作之后,当存在前向相邻管道时,将所述第一输出块发送到所述前向相邻管道,以使所述前向相邻管道在第一组合运算中使用所述第一输出块和对应于相邻子字符串的相邻块,以获得要被用于相邻替换操作的相邻输入块;将掩码函数应用于对应于所述第一输出块的中间输入块,以获得中间输出块,所述掩码函数取决于所述多个密码管道中的至少两个的输出块;当所述密码管道具有反向相邻管道时,将第一中间块发送到所述反向相邻管道,以在第二组合运算中将所述第一中间块与相邻中间块一起使用,所述第一中间块是所述中间输出块或者是从所述中间输出块导出的;以及使用所述对应替换表来执行最终替换操作,作为基于所述中间输出块获得最终输出块的一部分,当存在所述前向相邻管道时,进一步基于所述第二组合运算获得所述最终输出块,其中所述最终输出块具有与所述对应子字符串相同的大小;以及组装所述多个密码管道的所述最终输出块,以获得M个字符的输出字符串。2.根据权利要求1所述的方法,其中所述多个子字符串中的第一子字符串具有K个字符,而一个或多个其他子字符串具有N个字符,其中K等于M模N,N是小于M的整数。3.根据权利要求2所述的方法,其中存储一个或多个替换表包括:存储第一替换表,所述第一替换表基于N个字符的输入块提供N个字符的输出块;以及存储第二替换表,所述第二替换表基于K个字符的输入块提供K个字符的输出块。4.根据权利要求1所述的方法,其中所述前向相邻管道在第一相邻替换操作中使用所述相邻输入块来获得相邻输出块,以在存在另一相邻管道时发送到所述另一相邻管道。5.根据权利要求1所述的方法,进一步包括由所述计算机系统执行以下操作:使用随机数生成器来生成所述一个或多个替换表中的至少一个。6.根据权利要求1所述的方法,进一步包括由所述计算机系统执行以下操作:使用加密密钥来生成所述一个或多个替换表中的至少一个的多个条目。7.根据权利要求1所述的方法,其中所述密码运算包括对所述M个字符的输入字符串进行加密,以获得M个字符的加密输出字符串。8.根据权利要求7所述的方法,进一步包括由所述计算机系统执行以下操作:使用所述加密输出字符串来计算第一总和;以及确定校验和字符,使得所述第一总和与所述校验和字符的校验和提供期望值;以及将所述校验和字符添加到所述加密输出字符串以创建用于发送到另一设备的消息。9.根据权利要求7所述的方法,其中所述M个字符的输入字符串是较大字符串的一部分,所述方法进一步包括由所述计算机系统执行以下操作:标识所述较大字符串的不会被加密的一组字符;将所述一组字符与M个字符的所述加密输出字符串组合,以创建由明文和密文组成的消息;以及将所述消息发送到另一设备。10.根据权利要求9所述的方法,进一步包括由所述计算机系统执行以下操作:将微调函数应用于所述多个密码管道中的一个或多个密码管道的一个或多个中间输出块,以在在所述一个或多个密码管道中执行所述最终替换操作之前生成一个或多个新中间块,其中所述微调函数依赖于所述不会被加密的一组字符。11.根据权利要求1所述的方法,其中所述输入字符串包括非数字字符,所述方法进一步包括由所述计算机系统执行以下操作:使用编码表将所述输入字符串的所述非数字字符转换为数字值。12.根...
【专利技术属性】
技术研发人员:E·皮沃瓦罗夫,
申请(专利权)人:维萨国际服务协会,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。