首页> 中国专利> 采用基于排列群的加密技术的加密系统及方法

采用基于排列群的加密技术的加密系统及方法

摘要

本发明公开一种采用基于排列群的加密技术的加密系统,其特征在于,包括:发送终端,用于对消息进行加密并发送;以及接收终端,用于对加密的上述消息进行解码,上述发送终端及接收终端基于排列群来对呈排列形态的对称密钥和非对称密钥进行同时合成,由此在对消息进行加密后发送或接收。

著录项

  • 公开/公告号CN113330712A

    专利类型发明专利

  • 公开/公告日2021-08-31

    原文格式PDF

  • 申请/专利权人 蓝捕快股份公司;

    申请/专利号CN201980088769.4

  • 发明设计人 安世焕;

    申请日2019-11-12

  • 分类号H04L9/30(20060101);H04L9/06(20060101);H04L9/00(20060101);H04L9/08(20060101);

  • 代理机构11641 北京金宏来专利代理事务所(特殊普通合伙);

  • 代理人朴英淑

  • 地址 韩国首尔

  • 入库时间 2023-06-19 12:24:27

说明书

技术领域

本发明涉及一种采用基于排列群的加密技术(cryptographic technologies)的加密方法及系统,更详细地涉及如下的方法及利用其的系统,即,在以互相不同、事先指定或者必要时动态性地事先指定或在每个任意次数或时间或特定通信时间点上都不同并在事先预定的时间内有效的方式生成使得密码生成客体(以下称为“发送者”)和密码解除客体(以下称为“接收者”)通过移动或扩张等来将消息变更成新空间的秘密排列群(secretpermutations group)之后,以每次都不同的方式生成可使得发送者和接收者将要使用的互不相同的空间互相连接/映射的唯一的秘密排列(secret permutation),从而通过互相连接的空间稳定地对密文进行生成/发送/复原,上述新空间为与构成原有消息的消息空间不同。由此,将解决因现有的加密技术每次仅使用相同消息空间和相同特定值而产生的泄露秘密信息的安全上的问题。

背景技术

随着麻省理工大学(MIT)应用数学家彼得·秀尔(Peter Shor)于1994年提出利用量子计算的加密化算法(以下称作量子算法)将显著减少因素分解所耗费的时间,令全世界的安全专家陷入震惊。这是因为可通过Shor算法短时间内解读目前执行指数运算的因素分解技术和基于离散对数问题的公钥加密化。

量子算法有以上提及的Shor算法和Grover算法。根据对称密钥加密产生影响的Grover算法,大多数对称密钥加密方式为将密钥增加到两倍的方式,可实现等级与现有等级相同的安保,若开发实现Shor算法的量子计算机,则当前使用的公钥加密方式将无法继续使用。

目前为止,大多数秘密通过非对称加密形态进行保护。这是惠特菲尔德·迪菲(Whitfield Diffie)、马克·赫尔曼(Mark Hellman)、拉尔夫·默克尔(Ralph Merkle)于1976年在“密码学的新方向(New Directions in Cryptography)”这篇研讨会论文中公开了相应概念之后的事情。让我们想一想RSA、SSL、TLS、HTTPS。这种概念适用于大多数网站、电子签名下载、网上金融交易、虚拟专用网络(VPN)、智能卡、大多数无线网络。现代的保密通信基于传统的数字计算机无法轻松处理多因子关系式,包括大质数。但是,随着引入量子计算,通过这种保护装置加密的秘密全部失效。实际还有如下的观点,即,全世界主要国家为了日后实现解码,对加密的网络通信量的相当部分进行记录及存储,并期待那一天的到来。

在表1中整理了对当前广泛使用的加密技术产生的影响。

表1

以下的表2以比较的方式示出当前使用的加密技术的安全等级在量子计算环境中如何产生变化。

表2

为了在即将到来的量子计算时代不再因安全性差的公钥加密化技术而产生混乱,也需要量子计算机无法解开的后量子加密技术。因此,为了解决这种问题,本发明提供一种在当前计算环境下可有效工作且在量子计算环境下也可安全地保护数据的后量子(post-quantum)加密技术及系统。

发明内容

技术问题

由于需代替因量子计算环境而不再安全的公钥加密技术,因而本发明所提出的后量子加密技术需在性能、安全性、实用性方面比现有公钥方法得到改善,不仅需适用于量子计算机,还需适用于当前使用的计算环境。

因此,本发明实现了以下几点,即,第一,并不使用通过量子基础算法解读的现有的基于复杂的数学算法的方法,而是基于排列群同时合成(composition)分别呈排列形态的对称密钥和非对称密钥的运算方式,在不使用复杂的数学运算的情况下,以密钥排列变换方式通过多维扩张对密钥空间进行扩张,由此提高复杂性,在不使用复杂的数学运算的情况下,通过执行对称密钥加密技术中的代换-置换网络(SPN,substitution-permutation-network)中进行处理的方式那样的值的代替、变换等运算,从而可实现快速的加密处理。

第二,与在现有方式中使用图1所示的那种单次生成的密钥值来执行固定密钥函数的数学运算的方式相比,如图3所示,本发明在每次由发送者发送消息时使用由接收者所选择的多维空间的多个密钥函数,由此每次通过不同空间的多个密钥函数来每次生成不同的多个密钥值并使用,即使像量子计算机那样使得计算机能力提升等的计算能力得到提高,也可提供安全的安全性。

第三,如以下的表3所示,通过比RSA等现有公钥更小的密钥长度呈现高安全性。因此,可无障碍代替在现有计算机中使用的公钥。

表3

解决问题的方案

本发明公开一种采用基于排列群的加密技术的加密系统,其特征在于,包括:加密执行客体,用于对消息进行加密;以及解码执行客体,用于对加密的上述消息进行解码,上述加密执行客体及解码执行客体基于排列群来对呈排列形态的对称密钥和非对称密钥中的公钥进行同时合成,由此对消息加密,之后在重新进行解码时,基于排列群并使用呈排列形态的对称密钥和非对称密钥中的私钥来解码成原文。

根据本发明的一实施例,上述加密执行客体及解码执行客体包括:加密器ENC,通过利用加密密钥K

根据本发明的一实施例,上述加密器包括:输入队列,用于对消息输入进行处理;GA运算器,利用一次性公钥并借助排列运算来生成密文;以及输出队列,用于对所生成的上述密文的输出进行处理。

根据本发明的一实施例,上述GA运算器通过从上述加密密钥生成器MKG接收对称密钥Q

根据本发明的一实施例,本发明的特征在于,上述排列运算通过关系式Q

根据本发明的一实施例,上述解码器包括:输入队列,用于对密文输入进行处理;GA运算器,利用一次性私钥并借助排列运算来使原文消息复原;以及输出队列,用于对所复原的上述原文消息的输出进行处理。

根据本发明的一实施例,上述GA运算器通过从上述加密密钥生成器MKG接收对称密钥Q

根据本发明的一实施例,本发明的特征在于,上述排列运算通过关系式H

根据本发明的一实施例,上述加密密钥生成器包括:伪随机数生成器PRNG,通过使用多个参数的密钥导出函数KDF(key derivation function)来生成一次性伪随机数;以及排列生成器,通过上述密钥导出函数KDF生成一次性伪随机数排列PRP并向密钥生成模块提供。

根据本发明的一实施例,上述密钥生成模块包括:主密钥向量

根据本发明的一实施例,上述主密钥向量

并且,本发明公开一种加密及解码方法,本发明包括如下的步骤:加密密钥生成器利用识别因子来生成主密钥;在加密密钥生成器中生成进行加密和解码所需的对称密钥、私钥及公钥对;加密执行客体通过接收对称密钥和作为加密密钥的解码执行客体的公钥来生成密文;以及解码执行客体对通过加密密钥生成器并通过对称密钥和解码执行客体的私钥所生成的密文进行复原。

根据本发明的一实施例,上述识别因子包括含有用户的个人信息的用户识别因子、含有用户终端信息的终端装置识别因子及秘密排列生成因子中的至少一个。

根据本发明的一实施例,上述密文通过利用所生成的上述对称密钥及解码执行客体的公钥来在GA运算器进行运算而生成。

根据本发明的一实施例,本发明的特征在于,通过将加密密钥K

E(M,K

其中,Q

根据本发明的一实施例,本发明的特征在于,在上述密文的复原方面,通过将解码密钥K

D(C,K

其中,HQQ为排列函数H、Q的排列运算,消息M=(m

并且,本发明提供一种采用基于排列群的加密技术的签名验证系统,其特征在于,包括:签名执行客体,用于在制作密文时生成签名文;以及验证执行客体,为了将上述密文解码成原文消息,对上述签名文进行验证,上述采用基于排列群的加密技术的签名验证系统基于排列群并利用呈排列形态的对称密钥和非对称密钥来生成并验证签名文。

根据本发明的一实施例,上述签名执行客体及验证执行客体包括:签名器,借助排列运算来生成签名文;验证器,借助排列运算来验证上述签名文;以及加密密钥生成器MKG。

根据本发明的一实施例,上述签名器包括:输入队列,用于对消息输入进行处理;GA运算器,利用一次性私钥并借助排列运算来生成签名文;以及输出队列,用于对所生成的上述签名文的输出进行处理。

根据本发明的一实施例,上述签名器的GA运算器通过从上述加密密钥生成器MKG接收对称密钥Q

根据本发明的一实施例,本发明的特征在于,上述签名器的排列运算通过关系式Q

根据本发明的一实施例,上述验证器包括:输入队列,通过接收签名文来进行处理;GA运算器,利用一次性公钥并借助排列运算来验证签名文,由此生成所接受的原文消息;以及输出队列,用于对所接受的上述原文消息的输出进行处理。

根据本发明的一实施例,上述验证器的GA运算器通过从上述加密密钥生成器MKG接收对称密钥Q

根据本发明的一实施例,本发明的特征在于,上述验证器的排列运算通过关系式G

根据本发明的一实施例,上述加密密钥生成器包括:伪随机数生成器PRNG,通过使用多个参数的密钥导出函数KDF来生成一次性伪随机数;以及排列生成器,通过上述密钥导出函数KDF生成一次性伪随机数排列PRP并向密钥生成模块提供。

根据本发明的一实施例,上述密钥生成模块包括:主密钥向量

根据本发明的一实施例,上述主密钥向量

并且,本发明公开一种密文签名及验证方法,其包括如下的步骤:加密密钥生成器利用识别因子来生成主密钥;在加密密钥生成器中生成加密和解码所需的对称密钥、私钥及公钥对;签名执行客体通过接收所生成的上述对称密钥和作为签名密钥的验证执行客体的私钥来生成签名文;验证执行客体通过接收上述对称密钥和作为验证密钥的签名执行客体的一次性公钥来对通过签名执行客体生成的签名文进行验证,根据上述验证的结果,接受或拒绝原文消息。

根据本发明的一实施例,上述识别因子包括内含用户的个人信息的用户识别因子、内含用户终端信息的终端装置识别因子及秘密排列生成因子中的至少一个。

根据本发明的一实施例,本发明的特征在于,通过将签名密钥K

S(M,K

其中,Q

根据本发明的一实施例,本发明的特征在于,上述签名文的验证通过将验证密钥KV代入到验证函数V并借助排列运算(S×K→S)来以以下关系式生成,V(S,K

其中,GQQ为排列函数G、Q的排列运算,消息M=(m

发明的效果

本发明中提出的方法可代替因量子计算环境下并不安全而无法使用的基于数学的公钥加密系统,因而可预防即将到来的量子计算时代因数据安全问题而造成的混乱。

根据本发明,接收者的私钥和对称密钥为存在收发连接的情况下仅生成一次的一次性密钥,因而即使未经许可的参与者窃取相关信息也无法生成相同的密钥,因此无法对所窃取的密文进行解码,即使发生中间人攻击等黑客攻击也安全。

并且,可通过本发明的签名算法来判断所生成的密文是否被恶意的攻击者窃取并伪造,并且提供无法否认自身所发消息的不得否认(non-repudiation)功能。

另一方面,即使在现在的计算环境下,也无需经过复杂的数学处理过程,与数学加密系统相比,可确保充分的安全性以及大加密密钥空间,不仅继承了这种置换方式(S-box)的对称密钥优点,还可通过在以上内容中所提到的本发明的效果来解决现有基于置换方式(S-box)的对称密钥加密系统所具有的的密钥交换问题和因密文泄露而引起的安全问题,不仅可在现有系统中构建有效、安全的加密系统及加密通信系统,还可在需满足低容量、低速、低价运营等条件的物联网设备(IoT Devices)或云端(Cloud)等新计算环境下构建有效、安全的加密系统及加密通信系统。

附图说明

图1为示例性地示出RSA加密系统的密码空间(cipher space)(K、E、C)的示意图。

图2为示出排列运算(group action)的示例的示意图。

图3为示出本发明的系统中的密码空间(K、E、C)的示意图。

图4为加密通信系统的示意图。

图5为用于进行加密/解码的系统的结构图。

图6为加密器的结构图。

图7为解码器的结构图。

图8为密钥生成器的示意图。

图9为示出加密运算示例的示意图。

图10为加密/解码步骤流程图。

图11为示出作为加密/解码第一步骤的设置示例的示意图。

图12为示出作为加密化/解码第二步骤的生成示例的示意图。

图13为示出作为加密第三步骤的密文生成的示意图。

图14为示出作为解码第三步骤的消息生成的示意图。

图15为用于进行签名/验证的系统的结构图。

图16为签名器的结构图。

图17为验证器的结构图。

图18为签名/验证步骤流程图。

图19为示出作为签名/验证第一步骤的设置示例的示意图。

图20为示出作为签名/验证第二步骤的生成示例的示意图。

图21为示出作为签名第四步骤的生成签名(signature)的示意图。

图22为示出作为验证第四步骤的验证消息接受/拒绝的示意图。

图23为签名后的消息的加密器系统的结构图。

图24为签名后的消息的解码器系统的结构图。

图25为示出对签名后的消息进行加密的示意图。

图26为签名后的消息的加密或解码及验证步骤流程图。

图27为示出对签名后的密文进行解码的示意图。

具体实施方式

以下,参照附图详细说明在本说明书中公开的实施例,与附图标记无关,对相同或相似的结构要素赋予相同的附图标记,将省略对其进行的重复说明。

与在以下说明中使用的结构要素相关的词尾“模块”及“部”仅为了便于制作说明书而赋予或混用,其本身并不具备互相区分的含义或作用。

并且,在对本说明书中公开的实施例进行说明的过程中,若判断对于相关公知技术的具体说明有可能混淆在本说明书中公开的实施例的主旨,则将省略其详细说明。

并且,附图仅用于更便于理解在本说明书中公开的实施例,在本说明书中公开的技术思想并不限定于附图,应理解为包括本发明的思想及技术范围中所包括所有变更、等同技术方案以及代替技术方案。

“第一”、“第二”等包含序数的术语用于说明多种结构要素,上述结构要素并不限定于上述术语。

上述术语仅用于区分一个结构要素和其他结构要素。

当提及某个结构要素与其他结构要素“相连接”或“相联接”时,可与其他结构要素直接连接或直接接触,但应理解为还可在中间设置其他结构要素。相反,当提及某个结构要素与其他结构要素“直接连接”或“直接联接”时,应理解为中间不存在其他结构要素。

只要未在文中明确表示其他含义,则单数的表达包括复数的表达。

在本说明书中,“包括”或“具有”等术语应理解为说明书中记载的特征、数字、步骤、动作、结构要素、部件或它们的组合的存在,而不是预先排除一个或一个以上的其他特征、数字、步骤、动作、结构要素、部件或它们的组合的存在或附加可能性。

在本说明书中说明的多个执行客体(加密执行客体、解码执行客体、签名执行客体、验证执行客体等)和构成执行客体的多个结构要素(加密器、解码器、签名器、验证器、加密密钥生成器等)可分别形成物理上区分的结构,也可仅在功能上被区分。

在仅按功能区分的情况下,这种多个执行客体和多个结构要素可包括在一个控制部。

上述控制部可包括:硬件,涉及用于执行单一系统或云服务等的分散应用程序环境内的特定功能的应用程序接口(API)、执行特定功能的模块、部件(component)、芯片、终端等;软件,涉及应用程序、程序等。

I.术语的定义

a)信息的表达及处理方法

将通过计算机或通信系统发送的信息形成数字、文字、图像、视频、软件等多种形态,但在系统内以二进制(binary)单位构成,即以由比特(bit)构成的字节(byte)单位构成。这将变换成美国信息交换标准代码(ASCII)、统一码(UNICODE)等代码形态来由系统内的应用程序识别,人们将由此重新以数字、文字、图像等的信息形态接收。

通常,消息是指人们希望通过计算机或通信系统向对方传递的信息,如上所述,在该系统中以字节(byte)等系统内消息单元(message unit)构成,在系统内,所有信息将变换成可处理的一个系统内的消息单元(message unit)的列。即,所要传递的消息可由消息单元(message unit)表达,对可通过消息单位表达的情况进行罗列的被称作消息集M。

例如,在消息单位为比特(bit)的情况下,M={0,1},消息可由消息单元的列来表达,如00110101,在消息单位为字节(byte)的情况下,M={0,1,……,255}(若由十进制数表达),消息可以是64 68 72 82。

在此情况下,若以数学方式进行表达,则消息集M为M={m

若按顺序罗列消息集M的各个元素并按集表示按其顺序罗列的元素的指数,则I

在此情况下,消息的指数集被表达成I

排列(permutation)P=(p

例如,能够以排列

换句话讲,如同σ(1)=3,σ(2)=4,……,σ(5)=1,通常集S={x1,x2,…,xn}的排列将表达成

若以函数方式表达排列,则在从域X向陪域Y的双射函数F:X→Y中表示X和Y的对应关系,若以集的含义表达,则表示与任意集的元素相关的排列顺序。

由n个元素形成的任意集的排列还可被称作n个数字或文字的排列,同样适用于之前提及的消息集M。

因此,所有消息可由消息集M的排列来表达。

排列将根据任意集的各个元素的排列来成为其他排列,所有情况下的多个排列集成排列群(Group)。即,排列群(Permutaion Group)为将任意集的所有情况下的排列(premutation)作为元素来形成的集。

排列群G={σ|σ:S→S,σ为S={x

即,若M={1,2,……,n},则n个文字的Sym(M)由S

若排列σ,π∈G(排列群),则群运算(composition of permutation)的结果也成为排列,结果的排列也会成G的元素。即,排列群G对于群运算关闭。

构成G的排列的数量为|G|=n!个。

排列运算(Group Action)是指排列群G的各个元素P对集S的多个元素进行排列的方法,将起到一种函数那样的作用。换句话讲,若将排列P的排列运算适用于集S的元素,则意味着集S的元素借助排列P重新排列。即,将改变集S的元素排列顺序的运算称作排列运算。(即,对于集S而言,通过排列P的方法重新排列S的元素,即改变S的指数集I

当G:Permutation Group、M:non-empty set时,与集M相关的排列群G的排列运算为满足以下3种性质的函数f:G×M→M。

※对于属于集M的所有元素x,f(1,x)=x(group G的单位元为1)

※满足f(x,y)=1的y=x

※属于G的所有排列g,对于属于h和M的所有元素x成立f(g,f(h,x))=f(gh,x)(结合法则成立,左乘)

图2示出排列运算的示例。

G的度(degree)为构成G的集M的元素数量|M|,G的阶(order)为G的元素数量(cardinality)|G|。即,与由n个元素组成的集M相关的群的度(degree of group G)为n,群的阶(order of group G)为n!。

b)密码学及发明系统

伪随机数生成器(PRNG,Pseudo Random Number Generator):将为了模仿随机数而通过算法生成的随机数值称作伪随机数,在此情况下,将生成伪随机数的算法称作伪随机数生成器(pseudorandom number generator,PRNG)。这可由如下函数F:X→Y over(X,Y)表示。对于任意输入值X产生任意的伪随机数值Y。

伪随机函数(PRF,Pseudo Random Function):通过向基于伪随机数生成器导出的函数输入任意输入值来始终产生伪随机数数列。伪随机数函数可由如下的函数F:K×X→Yover(k,X,Y)表示。

伪随机排列(PRP,Pseudo Random Permutaion):与伪随机函数相似的方式生成伪随机数列或存在始终起到相同域的作用的一对一映射,存在有效的逆函数D(k,X)。若无法根据从伪随机数生成器PRNG生成的随机数区分根据伪随机排列生成的数列,则将称作可靠的伪随机排列(secure PRP)。并且,由充分大的X定义的可靠的伪随机排列为可靠的伪随机函数(secure PRF)。(伪随机数排列)

这由如下的函数E:K×X→X over(k,X)。

陷门函数(TDF,Trapdoor Function):陷门函数(trapdoor function,秘密通道单向函数)为单向函数的一种。虽然无法像普通单向函数那样求得函数的逆函数,若存在称作陷门的特殊信息,则可轻松求得逆函数。陷门函数的数学定义如下。由于存在某个秘密值y,因而在不存在y时很难对某个x求得f(x),但若有y,则可根据f(x)轻松得到x值,这种函数f为陷门函数。

密码(Cipher)=(G,E,D),密码空间(cipher space)=(k,M,C):密码(cipher)为执行加密及解码的算法,如同在密码空间(K,M,C)上起到作用的一种函数。密码由G、E、D等三个算法(函数)构成。分别使用如下的简称。

G:密钥生成函数

E:加密(Encryption)函数

D:解码(Decryption)函数

K:密钥空间(Key Space)

M:消息空间(Message Space)

C:密文空间(Ciphertext Space)

MKG(Magic Key Generator)为加密密钥生成器,是指用户进行加密/解码而处理用户识别及注册、密钥生成、分配等的密钥管理装置。可设置于加密器或解码器等的系统内,还可通过设置于其他第三系统来联动。能够以仅使授权的参与者与加密密钥生成器连接的方式通过用户认证来保障安全的信息通道。

秘密排列群(SPG,Secret Permutation Group)是指消息集M中的所有排列群(permutation group)G的子集(subset),将形成该子集的各个排列称作秘密排列候选(SPC,Secret Permutation Candidates),在此情况下,将秘密排列候选中的特定的一个候选称作秘密排列(SP,Secret Permutation)。图3中示出了与秘密排列群、秘密排列相关的示例。

II.系统结构

图4为示出本发明的系统的一实施例的示意图。该系统包括用于发送密文的通信通道和与之相连接的两个终端。各个终端具备与加密或解码相关的加密密钥K

1.加密/解码系统

如图5所示,图4中的发送端及接收端的各个终端由加密器ENC、解码器DEC以及加密密钥生成器MKG构成。

如图6所示,加密器ENC包括:输入队列,用于对消息输入进行处理;GA运算器,利用通过本发明一实施例的算法得到的一次性公钥并借助排列运算生成密文;以及输出队列,用于对所生成的密文的输出进行处理。

在GA运算器中,在输入消息后,从加密密钥生成器MKG接收发送终端及接收终端的对称密钥Q

另一方面,在其他一实施例中,虽然不对密码复杂度产生很大影响,但在向发送终端输入的消息包含重复的文字列的情况下,为了进行去除,可通过异或(XOR)运算器对扩散函数(diffusion function)F(x)进行预处理,从而可通过使加密器的消息队列接收经预处理的消息来生成密文。

如图7所示,解码器DEC包括:输入队列,用于对密文输入进行处理;GA运算器,利用通过本发明一实施例的算法得到的一次性私钥并借助排列运算来使原文消息复原;以及输出队列,用于对所复原的原文消息的输出进行处理。

在GA运算器中,在输入密文后,从加密密钥生成器MKG接收发送终端及接收终端的对称密钥Q

在GA运算器中处理的排列运算为H

另一方面,在其他一实施例中,在对发送终端采用扩散函数的情况下,对于在解码器中复原的消息,可通过异或(XOR)运算器对向发送终端采用的相同的扩散函数F(x)进行后处理,从而可使原文消息复原。

如图8所示,加密密钥生成器MKG可由伪随机数生成器PRNG、排列生成器(permutation generator)、多个密钥生成模块

伪随机数生成器PRNG通过使用预先注册的只有发送接收参与者知晓的参与者固有的个人标识符(ID)、设备(device ID)、事件、时间等多个参数(parameter)的密钥导出函数(KDF,key driven function)生成一次性伪随机数。分别向排列生成器和密钥生成模块提供所生成的伪随机数。

排列生成器通过伪随机数生成器和固有的密钥导出函数生成一次性伪随机数排列PRP。将向各个密钥生成模块提供所生成的伪随机数数列。

多个密钥生成模块包括:主密钥向量

私钥模块将生成私钥。私钥将通过先在主密钥向量模块指定的位置先排列从主密钥标量模块生成的随机数值并在剩余位置排列从排列生成器提供的随机数数列而生成。

与加密器或解码器的排列运算器分别执行生成密文和原文消息所需的运算不同,加密密钥生成器内的排列运算器起到通过对称密钥和私钥来生成公钥的作用。若将从私钥模块SK生成的密钥设为H,将从对称密钥模块MPK生成的密钥设为Q,将通过在排列运算器中运算来生成的公钥设为G,则在排列运算器中运算的排列运算为G=Q

接着,通过图9了解一下加密器的工作。

在消息集M由0~9的数字构成的情况下,即|M|=10时,将从用户A向用户B发送10个数字消息,即4581290367。图9示出通过用户A终端的加密器生成密文5301689742。

2.加密/解码方法及步骤

根据本发明的上述实施例,可根据图10中示出的方法及步骤来实现基于排列群的消息加密发送方法。

为了利用实施例中的系统来发送消息,发送参与者及接收参与者需预先在系统注册个人识别信息等来以授权参与者得到认可。

因此,本发明实施例的发送方法的第一步骤为设置(setup)步骤,以可识别参与客体的方式在加密密钥生成器MKG注册用户识别因子(phone number,user id,emailaddress etc.)、终端装置识别因子(device id,MAC address,ip address,faceid,fingerprint etc.)、秘密排列(Secret Permutation)生成因子等个人识别信息,加密密钥生成器MKG生成根据该信息注册的客体的识别号、主密钥等。

主密钥为可在消息总排列群中特定多个秘密排列候选SPC的向量函数,这种密钥向量函数T将形成(tp,tv)向量对,

第二步骤为密钥生成步骤,即,在加密密钥生成器中生成用于加密的密钥,将生成进行加密和解码所需的对称密钥和私钥及公钥对。将通过发送参与客体及接收参与客体独有的预先注册信息来生成只有发送参与客体及接收参与客体两者知道的对称密钥。并且,向在设置步骤中生成的主密钥(函数)分配一次性函数值来指定秘密排列SP,与此同时在设置步骤中基于预先注册的个人识别信息来生成私钥。公钥通过所生成的对称密钥和私钥的排列运算GA来生成。

在第三步骤中,为了生成密文而使得发送者通过加密密钥生成器请求并得到作为加密密钥的接收者的公钥。对称密钥已通过第二步骤来分别由发送终端及接收终端拥有。在此情况下,由于已经在作为第二步骤的密钥生成步骤中生成相应多个参与客体的多个密钥,因而可轻松获得。将通过排列运算器对接收者的公钥和已有的对称密钥进行运算来生成密文。可如下通过数学方式表示这一过程。

消息M=(m

D=d

在第四步骤中,为使所接收的密文复原,接收者将通过加密密钥生成器来得到作为加密密钥的接收者的私钥。对称密钥已通过第二步骤来分别由发送终端及接收终端拥有。在此情况下,由于已经在作为第二步骤的密钥生成步骤中生成相应多个参与客体的多个密钥,因而可轻松获得。将通过排列运算器对接收者的私钥和已有的对称密钥进行运算来使原文消息复原。可如下通过数学方式表示这一过程。

消息M=(m

解码化函数D可通过作为构成K

X=x

3.消息加密/解码发送方法实施例

在图11至图14中,示出了本发明一实施例的消息加密发送方法的各步骤的具体示例。

在示例中,从将0~9中的数字作为元素的消息集中将由10个数字构成的数字列“4581290367”作为消息来从终端A向终端B输入,由此生成并发送密文,在接收该密文后使原文消息复原,通过图11至图14来按执行步骤具体示出了执行如上所述的步骤的过程。

图11示出了作为第一步骤的设置步骤,即,为了发送或接收信息而向加密密钥生成器注册发送终端A和接收终端B的识别号(ID),由此生成主私钥向量函数{(2,v1),(4,v2),(6,v3),(8,v4)},并设置主公钥生成函数。

图12示出了作为第二步骤的密钥生成步骤,即,主密钥向量函数的向量值分配和如何由此生成私钥。并且,示出了如何通过排列生成器向对称密钥生成函数分配函数值,与之同时如何通过私钥和排列运算器生成公钥。

图13示出了作为第三步骤的密文生成步骤,即,通过具体示例示出了如何通过经第一步骤、第二步骤生成的加密密钥MPK、SK、PK来在排列运算器中借助排列运算进行运算,如何生成密文。

图14示出了作为第四步骤的密文解码步骤,即,通过具体示例示出了如何通过经第一步骤、第二步骤生成的加密密钥MPK、SK、PK来在排列运算器中借助排列运算进行运算,以及所接收的密文如何解码成原文消息并复原。

4.签名/验证系统

电子签名系统的各个发送终端及接收终端在功能上以与之前的一实施例中说明的加密器或解码器相同的结构工作,但在使用不同密钥和不同输入进行运行这一点上存在不同。如图15所示,签名/验证系统的用于进行发送及接收的各个终端由签名器(SIGN)、验证器(VERIFY)以及加密密钥生成器(MKG)构成。

如图16所示,签名器(SIGN)包括:输入队列,用于对消息输入进行处理;GA运算器,利用通过本发明一实施例的算法生成的一次性私钥并借助排列运算生成签名文;以及输出队列,用于对所生成的签名文的输出进行处理。

在GA运算器中,在输入消息后,从加密密钥生成器MKG接收发送终端及接收终端的对称密钥Q

另一方面,在其他一实施例中,虽然不对密码复杂度产生很大影响,但在向发送终端输入的消息包含重复的文字列的情况下,为了进行去除,可通过异或(XOR)运算器对扩散函数F(x)进行预处理,从而可通过使签名器的消息队列接收经预处理的消息来生成签名文。

如图17所示,验证器包括:输入队列,用于对签名文输入进行处理;GA运算器,利用通过本发明一实施例的算法得到的一次性公钥并借助排列运算验证签名文,来生成接受的原文消息;以及输出队列,对验证/接受的原文消息的输出进行处理。

在GA运算器中,在输入签名文后,从加密密钥生成器MKG接收发送终端及接收终端的对称密钥Q

在GA运算器中进行处理的排列运算为G

另一方面,在其他一实施例中,在向发送终端采用扩散函数的情况下,可通过异或(XOR)运算器对将在验证器中验证的消息适用于发送终端的相同扩散函数F(x)进行后处理,从而可使原文消息复原。

如图8所示,图15中的签名/验证系统中的加密密钥生成器MKG包括伪随机数生成器PRNG、排列生成器、多个密钥生成模块(

5.签名/验证方法及步骤

根据本发明的上述实施例,可按照图18所示的方法及步骤利用基于排列群的消息加密或解码算法来执行签名/验证方法。

图18的一实施例的与消息相关的签名及验证方法可通过分4个步骤的过程来执行,作为第一步骤的对发送参与客体及接收参与客体进行注册及设置的方法和作为第二步骤的密钥生成方法及步骤将以与在上述加密或解码方法的一实施例中说明的方法和步骤相同的方式执行。

在第三步骤中,为了生成签名文,发送者通过加密密钥生成器来请求并得到作为签名密钥的发送者的私钥。对称密钥已通过第二步骤来分别由发送终端及接收终端拥有。在此情况下,由于已经在作为第二步骤的密钥生成步骤中生成相应多个参与客体的多个密钥,因而可轻松获得。将通过排列运算器对发送者的私钥和已有的对称密钥进行运算来生成签名文。可如下通过数学方式表示这一过程。

消息M=(m

D=d

在第四步骤中,为了验证所接收的签名文,接收者通过加密密钥生成器来得到作为验证密钥的发送者的一次性公钥。对称密钥已通过第二步骤来分别由发送终端及接收终端拥有。在此情况下,由于已经在作为第二步骤的密钥生成步骤中生成相应多个参与客体的多个密钥,因而可轻松获得。将通过排列运算器对发送者的公钥和已有的对称密钥进行运算来验证签名文,之后接受或拒绝验证后的原文消息。可如下通过数学方式表示这一过程。

消息M=(m

验证函数V可通过作为构成Kv的排列函数Q、G的排列运算的左乘来表示成V=GQQ。因此,V(S,K

X=x

6.消息签名/验证发送方法的示例

在图19至图22中,示出了本发明一实施例的消息签名文发送方法的各步骤的具体示例。

在示例中,从将0~9中的数字作为元素的消息集中将由10个数字构成的数字列“4581290367”作为消息来终端A向终端B输入,由此生成并发送签名文,在接收该签名文后验证原文消息,通过图19至图22来按执行步骤具体示出了执行如上所述的步骤的过程。

图19示出了作为第一步骤的设置步骤,即,为了发送或接收信息而向加密密钥生成器注册发送终端A和接收终端B的识别号(ID),由此生成主密钥向量函数{(1,v

图20示出了作为第二步骤的密钥生成步骤,即,主密钥向量函数的向量值分配和如何由此生成一次性私钥。并且,示出了如何通过排列生成器向对称密钥生成函数分配函数值,与之同时如何通过私钥和排列运算器生成公钥。

图21示出了作为第三步骤的签名文生成步骤,即,通过具体示例示出了如何通过经第一步骤、第二步骤生成的加密密钥MPK、SK、PK来在排列运算器中借助排列运算进行运算,如何生成签名文。

图22示出了作为第四步骤的验证消息接受/拒绝步骤,即,通过具体示例示出了如何通过经第一步骤、第二步骤生成的加密密钥MPK、SK、PK来在排列运算器中借助排列运算进行运算,以及所接收的签名文如何按原文消息得到验证及如何接受/拒绝。

7.包括消息的签名/验证的加密/解码系统

如图5所示,提供电子签名及验证的密码系统中的各个发送终端及接收终端包括加密器ENC、解码器DEC以及加密密钥生成器MKG等相同结构,但如图23和图24所示,加密器ENC和解码器DEC还可变更为包括签名器和验证器。

其中,如图23所示,加密器ENC形成使图6中的加密器与图25中的签名器相结合的结构,包括进行消息输入处理的输入队列和密文生成用GA运算器、签名文生成用GA运算器等两个其他GA运算器,密文生成用GA运算器从输入队列接收消息并从签名文生成用GA运算器接收签名文来以图25中所示的示例(消息+签名文)的方式执行排列运算并由此生成密文。

另一方面,如图24所示,解码器DEC形成使图6中的解码器与图27中的验证器相结合的结构,包括进行密文输入处理的输入队列和消息复原用(解码用)GA运算器、签名文验证用GA运算器等两个其他GA运算器,消息复原用(解码用)GA运算器从输入队列接收密文并解码来使(消息+签名文)复原,这里的签名文将向验证用GA运算器传递,如图27所示,验证用GA运算器将生成验证后的消息。分别从不同的两个GA运算器输出的消息将通过AND运算确定是否接受或拒绝消息。

8.签名后的消息的加密发送及解码/验证方法

在图26中示出了根据本发明的一实施例来利用基于排列群的公钥对签名后的消息进行的加密发送方法。

如图26所示的一实施例的签名后的消息的加密发送方法可分6个步骤执行,能够以与在上述图10中的加密或解码方法的一实施例中说明的方法和步骤相同的方式执行作为第一步骤的与发送参与客体及接收参与客体相关的注册及设置方法和作为第二步骤的密钥生成方法及步骤。

作为第三步骤的签名文生成方法即步骤与图18中的消息签名/验证方法相同。

如图25所示,在第四步骤中,通过使所要发送的消息和在第三步骤中生成的签名文相结合来借助接收者的公钥对(消息+签名文)进行加密。

即,如同E(M’,K

即,D(C’,K

在第六步骤中,以V(M

9.其他实例及适用示例

用于加密的加密密钥将使用数字(Digit)、字符(Character)、图像(Images)等构成消息空间的要素。例如,为了对文字进行加密,可将扩张美国信息交换标准代码(extended ASCII Code)扩张成加密密钥空间来体现256字节(byte)加密系统。

本发明的系统可由两层结构(2tier)或三层结构(3tier)体现。

在两层结构(2Tier)中,还可适用于以在发送加密化消息的发送者(Sender)与通过接收加密化消息来解码的接收者(Receiver)之间不经过加密通信中间介质的方式进行通信的结构。

可对发送及接收加密化消息的发送者与接收者之间的作用单程、固定且不变动的单向(One-way)通信方式和互相发送/接收加密消息的双向(two way)通信方式都能实现,在此情况下,发送者和接收者都搭载加密执行客体和解码执行客体两者。

这种系统的实例还可适用于一对一通信、对等通信(Peer to PeerCommunication)、一对多通信方式(One to Many Communication)等。

在三层结构(3Tier)中,还可适用于如下的结构,即,在发送加密化消息的发送者与接收加密消息或纯文本的接收者之间执行加密/解码功能或向其他通信协议变换等的与其他系统之间执行中继或联动功能的通过网关(Gateway)进行通信。

在此情况下,网关将在向由发送者指定的接收者发送消息时执行自身解码来发送纯文本本身,通过按接收者所希望的其他加密化方式或其他通信协议形式进行变换作业,来发送变更后的形式的消息,或者还可向接收者发送由发送者所发送的加密后的消息本身。

这种系统可适用于被称作传感器-网关-服务器(Sensor-Gateway-Server)、传感器-网关-传感器(Sensor-Gateway-Sensor)等的物联网网络方式、传统三层结构方式或N层结构(N-Tier)方式的多重客体参与通信系统。

另一方面,在本说明书中使用的术语中,发送终端或接收终端是指能够以可通过至少一个网络进行通信的方式相连接的终端,作为一例,可指手机、智能手机(smartphone)、手提式计算机(laptop computer)、数字广播用终端、个人数字助理(PDA,personaldigital assistants)、便携式多媒体播放器(PMP,portable multimedia player)、触屏平板计算机(slate PC)、平板电脑(tablet PC)、超极本(ultrabook)等移动终端,可以是数字电视(TV)、台式计算机等固定终端,但并不受特定限制。

根据本发明的一实施例,可构建安全且可适用于多种环境的利用基于排列群的一次性公钥的非对称方式的密码通信系统。

可实现如下的使用仅通过一次性公钥和私钥才能够实现的非对称密钥的加密通信系统,即,将利用一次性生成的公共排列(Public Permutation)的一次性公钥作为对消息进行加密的密钥,为了使通过加密生成的密文解码成纯文本,上述私钥只利用由接收终端一次性生成的私人排列(Private Permutation)。

在此情况下,可实现如下的系统,即,一次性公钥和一次性私钥都只能通过可对密文进行解码的接收终端的主私钥生成,并将通过安全的方法向发送终端共享一次性公钥。由此通过密码学的陷门函数体现很难用与发送终端所拥有的一次性公钥相关的信息或由此生成的密文来复原或推定原文。

以提高安全性等作为目的,可在加密通信过程中或通信之后每次以随机方式自动或手动变更公钥和私钥,这种生成变更作业仅由拥有具备解码权限的主私钥的用户/系统/设备来执行。通过这种功能,体现如下的特性,即,很难泄露加密通信系统内所使用的公钥、收集私钥和密文以及通过逆向工程(Reverse Engineering)等进行的推定。

无密钥交换的对称密钥加密通信

并且,能够体现并不直接发送作为加密通信系统所需的密码相关密钥的排列密钥的方式。例如,加密过程和解码过程中所需的公钥/私钥可在由接收终端生成之后,当发生生成及变更时,由预先约定的发送终端和接收终端分别在自己的排列运算器包含相应生成条件(时间、空间等),由此实现发送终端自主生成相同的虚拟公钥,因而并不执行直接对加密通信过程中必要的加密相关密钥信息进行接收/发送的步骤,可构建类似无密钥交换的对称密钥加密通信的系统。

通过用于加密的公钥发送的值由仅利用只有很难推定实际值的接收者拥有的主私钥内的信息中的部分信息来生成的私钥推导,因而可实现很难用与之相关的信息来解码或推定纯文本的加密通信系统。

即使在密钥泄露的情况下也维持安全

可实现如下的系统,即,由于公钥和私钥根据安全政策或系统条件来每次随机变更,因而即使泄露相关信息之后,在拥有之前信息的恶意用户进行窃取后生成的密文也无法肆意或强行被解码。

在上述内容中所看到的,由于基于排列采用非对称方式并以字节单位或所需大小的消息处理单位进行加密处理,因而本申请的发明可根据消息类型来以多种方式体现。

并且,与由于在应用程序消息处理单元直接进行运算而在以块单位对消息进行加密后需将其重新构建成可在应用程序中使用的形态的现有技术相比,本申请的发明可突破性地提高处理速度。由此,本申请的发明还可用于低性能的中央处理器(CPU)设备。

并且,本发明可在单一密码系统中体现对称密钥方式以及非对称密钥方式两种,可在应用程序内全部处理多种消息形态,可在2层及3层通信结构下实现弹性功能,可在基于密码/PIN码的人对机器(Human to Machine)方式的现有系统或采用新型机器对机器(Machine to Machine)方式的系统中均适用。

即,本申请发明的系统还可在基于轻型/低容量设备的多种通信结构下运行的新物联网(iot)环境下适用于单一系统,并且,可与现有的基于加密技术的系统相联动。

计算机可读记录介质

以上说明的本发明一实施例的利用基于排列群的一次性公钥的消息发送方法可形成可通过多种计算机结构要素执行的程序指令形态,可记录在计算机可读记录介质。上述计算机可读记录介质能够以单独或组合的方式包含程序指令、数据文件、数据结构等。记录在上述计算机可读记录介质的程序指令可以是为了本发明特别设计并构成的,但也可以是计算机软件领域的技术人员公知并使用的。计算机可读记录介质的例包括:硬盘、软盘以及磁带等磁介质;只读光盘、高密度数字视频光盘等光记录介质;光磁软盘(flopticaldisk)等的磁光介质(magneto-optical media);以及只读存储器(ROM)、随机存取存储器(RAM)、快闪存储器等以存储并执行程序指令的方式特别构成的硬件装置。程序指令的例不仅有通过编码器制成的机械语言代码,还包括通过使用解释器等来在计算机中运行的高级语言代码。上述硬件装置能够以作为一个以上的软件模块运行的方式构成,以便执行本发明中的处理,反之亦然。

III.发明的效果等

因每次变更的密钥,密钥空间及密码空间每次提供不同空间,由此扩张为多维空间,与现有方式在对暴力破解(brute-force)攻击的每次尝试过程中因降低空间概率而脆弱相比,本发明的系统的空间概率将始终提供相同的概率,因而若导出密钥的随机函数提供均匀(even)的概率分布,则暴力破解攻击在概率上变得很低。

并且,并不通过复杂的数学运算进行加密,由于并不使用现有方式这样的固定函数值,因而会以如上所述的方式通过使用排列群所包含的变动函数来将密钥空间和密码空间扩张成多维空间,即使对加密结果通过量子计算机等计算能力得到提高的计算机执行密码解密,也很难进行解密,因而具备后量子性(quantum resistant)。

并且,在现有的非对称密钥方式中,对于中间人攻击(Man-in-the-Middle)脆弱,因而为了解决这种问题而需通过第三方认证机构(Certificate Authority)向参与加密通信的所有参与者发放认证证书(Certificate),需以根据认证证书的真伪来实现加密通信的方式构建基础设施。因此,为了实现对于中间人攻击安全的非对称密钥方式的加密通信而需花费很大费用构建基础设施,由于这种基础设施,存在加密执行过程复杂、处理时间长的问题。本发明的系统每次生成不同的密钥来执行加密或解码,因而不会受到中间人攻击,因此,即使不用为了解决这种问题而导入认证机构(CA)或认证证书,也可以安全地进行加密通信。

以上,参照附图详细说明了本发明的优选实施例。本发明的说明仅属于示例,本发明所属技术领域的普通技术人员可以理解,可在不改变本发明的技术思想或必要特征的情况下,能够轻松变形成其他具体实施方式。

因此,本发明的范围由发明要求保护范围表示,而不是上述详细说明,应解释为从发明要求保护范围的含义、范围以及等同概念导出的所有变更或变形的实施方式属于本发明的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号