基于生物特征点拓扑结构的非对称加解密方法

文档序号:6575713阅读:218来源:国知局
专利名称:基于生物特征点拓扑结构的非对称加解密方法
技术领域
本发明涉及密码学的非对称加(解)密技术,也涉及基于生物特征点拓扑结构的
生物模式识别技术,尤其涉及基于生物特征点拓扑结构的非对称加(解)密方法。
背景技术
非对称加(解)密方法是分别采用加密密钥进行加密和解密密钥解密的方法。由于可通过公开部分密钥(简称公钥)即可公开地构建经由隐秘密钥(简称私钥)进行加密通信的信息安全通道,因此该加(解)密方法也称为公(私)钥加(解)密方法。
正是非对称加密方法具有可公开构建安全通信通道的特性,因此自非对称加密方法问世以来,专家及学者们提出了许多种非对称加密方法。这些非对称加密方法的安全性都是基于复杂的数学难题。其中著名的非对称加(解)密方法是ECC(Elliptic CurveCryptography),它是椭园曲线非对称加(解)密方法的简称,椭园曲线非对称加(解)密方法是Miller, Koblitz 1985年独立提出的。 可以把现行的非对称加(解)密方法称之为传统非对称加(解)密方法。尽管传
统非对称加(解)密方法凭借发布公钥和隐藏私钥就可依此公开地构建安全通信通道,但
该公钥因为并没能包含表征发布人生物特征点拓扑结构的信息,从而不能以此认证该发布
人的生物特征。这不利于构筑基于发布人公钥可信身份识别认证的安全通信通道。 获取发布人生物特征的生物模式识别技术是基于模式识别的数字图像预处理技
术。通过使用该技术可获取人的生物特征点拓扑结构。该技术是已有技术。通过互联网检
索可以看到该技术的一个重要而广泛的应用是基于生物特征的电子护照、电子身份证。 用于生物特征识别认证的生物模式识别技术,是基于生物特征点拓扑结构比对的
生物特征识别技术。通过使用该技术可进行人的生物特征识别认证。该技术也是已有技术。
该技术的一个重要而广泛的应用是基于生物特征的指纹识别、人脸识别等。 可以例举人的生物特征有指纹特征、虹膜特征、面相特征、声音特征、基因特征等,
表征生物特征的特征点拓扑结构即生物特征点拓扑结构,如指纹特征点拓扑结构、面相特
征点拓扑结构等。

发明内容
本发明的目的是提供一种基于生物特征点拓扑结构的非对称加(解)密方法,使
用该方法可产生包含表征发布人生物特征点拓扑结构信息的公钥,且凭借发布公钥和隐藏
私钥依此既可公开地构建安全通信通道,又可认证该发布人的生物特征,从而有利于构筑
基于发布人公钥可信认证的安全通信通道。 为了实现本发明目的,本发明方案的技术特征包括, 1、设定基于生物特征点拓扑结构的非对称加(解)密模式;设定该非对称加(解)密模式中描述生物特征点拓扑结构的数据,为基于该生物特征点拓扑结构的矩阵向量;设定该矩阵向量的元素集合是设定坐标系下基于该生物特征点坐标参数的集合;设定该集合的指定生物特征点坐标参数为该矩阵向量的运算基准,该运算基准包括运算基准点和运算基准方向点,设定具有指定运算基准的矩阵向量为起始运算矩阵向量;设定矩阵向量的基本运算是把该矩阵向量作为该运算的起始运算矩阵向量,并对该矩阵向量按设定运算基准的设定位移、旋转值进行位移、旋转的运算;设定矩阵向量的某一轮运算是把该矩阵向量作为该轮运算的起始运算矩阵向量,并对该矩阵向量按该轮运算所设基本运算次数进行位移旋转的该一轮所设次基本运算,其中该一轮所设次即该一轮所设基本运算次数,该一轮运算所设每次基本运算的位移、旋转值是该一轮运算所设位移、旋转步长;设定矩阵向量的若干轮运算是把该矩阵向量作为该若干轮运算的起始运算矩阵向量,并对该矩阵向量按所设若干轮、以及每轮所设基本运算次数、再及每次基本运算所设位移步长和旋转步长进行位移旋转的该若干轮所设轮次基本运算,其中该若干轮所设该若干次数值是该若干轮所设轮次;设定加密包括首先把解密方公开的起始运算矩阵向量和经其私设轮次运算过的起始运算矩阵向量作为加密方运算的起始运算矩阵向量,并对该俩矩阵向量按加密方私设轮次进行该轮次运算,然后把该后者运算结果编码值和待加密值相加,计算该俩值之和作为加密信息值与前者一起发送给解密方;设定解密包括首先把加密方所公开且经其私设轮次运算的起始运算矩阵向量作为解密方运算的起始运算矩阵向量,并对该矩阵向量按解密方原私设轮次进行该轮次运算,然后把该运算编码值减去加密方所发送来的加密信息值,计算该俩值之差作为解密信息值,且该值等于该待加密值。 2、根据l,该特征还包括其实现的步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9)、
(10) 、 (11) 、 (12) 、 (13) 、 (14) 、 (15) 、 (16)。以下即该步骤: (1)设定基于生物特征点拓扑结构的非对称加(解)密模式 根据l,包括设定该加密模式C和解密模式E如下 设定加密模式C可以是C = {string (Matrix-Vector = J*G) , Cm = [f (Matrix_0P = J*W)+M]},
设定解密模式E可以是E = {matrix(Matrix-String = string(Matrix-Vector = J*G)), Em =Cm-f(Matrix-OP = K*(J*G))},
其中定义 *是本发明矩阵向量运算符、该运算符的设定实现是步骤(5), G和W是解密方公开的起始运算矩阵向量、该矩阵向量的设定实现是步骤(2)、
(4) 、 (6) 、 (7), J是加密方为设定矩阵向量运算轮次所设的私设轮次值(即加密私钥),
K是解密方为设定矩阵向量运算轮次所设的私设轮次值(即解密私钥),
J*G、 J*W是使用J对G和W进行*运算、该运算的设定实现是步骤(3) 、 (5) 、 (6)、(7), K* (J*G)是使用K对(J*G)进行*运算、该运算的设定实现是步骤(3) 、 (5) 、 (6)、(7), string (Matrix-Vector = J*G)是先使用J对G进行*运算然后对包括运算基准的该J*G进行数字串编码的操作、该操作的设定实现是步骤(8), matrix (Matrix—String = string (Matrix—Vector = J*G)) 是 还 原string (Matrix-Vector = J*G)为该矩阵向量的反操作、该反操作的设定实现是步骤(8),
f (Matrix-OP = J*W)和f (Matrix-OP = K* (J*G))是对该矩阵向量进行相关*运算及散列法运算编码、该运算及编码的设定实现是步骤(9),
M是待加密值, Cm是加密方计算f (Matrix-OP = J*W)与M俩值之和作为加密信息值、该计算实现是步骤(15), Em是解密方计算Cm与f (Matrix-OP = K* (J*G))俩值之差作为解密信息值、该计算实现是步骤(16), (2)设定G为基于生物特征点拓扑结构的矩阵向量,G包括子集Gl和G2
根据l和步骤(l),设定该非对称加密模式中的G,为基于生物特征点拓扑结构矩阵向量;设定G可以是基于指纹特征点拓扑结构的矩阵向量,也可以是基于人脸面相特征点拓扑结构的矩阵向量;G的子集Gl和G2可以分别是该指纹特征点拓扑结构的端点和叉点矩阵向量,也可以分别是该人脸面相眼部和嘴部特征点拓扑结构的矩阵向量;设定G的元素集合可以是设定直角坐标系下基于该生物特征点坐标参数(xGn' yGn)的集合,即G =KxGpyG》(xG2,yG2)." (xG(n—d, yG(n—J (xGn, yGn)},或G = {(xGn, yGn) |n = 1,2,3, ...,n-l,nh其中n是G的元素数; 设定G包括子集G1和G2、即G = {G1,G2,…h其中
①、Gl是(xGlm, yGlm)的集合、即 Gl = KxGl" yGl》(xGl2, yGl2)…(xGl(迈—0 , yGl(迈—J (xGl迈,yGlm)}或
Gl = KxGl迈,yGl迈)|m = 1,2,3,, m_l, m},其中m是Gl的元素数,
②、G2是(xG2/ , yG2m')的集合、即 G2 = KxG2" yG2》(xG22, yG22)…(xG2(迈'—0 , yG2(迈,—J (xG2迈',yG2迈')}或
G2={(xG2m' , yG2迈')|m' =1,2,3,…,m' _1, m' h其中m'是G2的元素数, 上述Gl和G2的元素数之和应小于等于G的元素数,即m+m'《n ;
设定Gl和G2的指定生物特征点坐标参数为该矩阵向量的起始运算基准,设定该运算基准所包括运算基准点为P和运算基准方向点为D,设定Gl[l]和G2[1]是G1和G2具有指定运算基准PD的起始运算矩阵向量; (3)设定BioTPM[N+l] = f (BioTPM[N] , Move[N] , Round[N] , MRN咖ber[N])
根据1和步骤(1)及(2),设定BioTPM[N]为起始运算矩阵向量、N为大于零的整数(其中N = 1、2、…、N) 、PD为运算基准、MRNumber[N]为基本运算次数、Move[N]为位移步长、Roimd[N]为旋转步长;设定该矩阵向量的基本运算是设定MRNumber[N]等于1且把BioTPM[N]按PD的Move[N]和Round[N]数值各进行一次位移、旋转的运算;设定该矩阵向量的某一轮运算为第N轮运算,设定该矩阵向量的第N轮运算是设定MRNumber[N]大于1且把BioTPM[N]按PD的Move[N]和Round [N]数值进行位移、旋转的MRNumber[N]次基本运算;设该第N轮轮运算结果值为BioTPM[N+l]、且该BioTPM[N+l]由该第N轮的MRNumber[N]次基本运算结果赋值获取,则可把该第N轮运算用函数表达式表示,即
BioTPM[N+l] = f (BioTPM[N] , Move[N] , Round[N] , MRNumber [N]),
其中MRNumber[N] > 1 ;当MRNumber[N] = 1则该式即为该矩阵向量的基本运算函数表达式; 其中该运算的Move[N]、 Round[N]、 MRNumber[N]设定实现是步骤(10)、 (11)、(13); (4)设定G及子集Gl和G2的第N轮运算 根据1和步骤(1) 、 (2)及(3),设该G = G[l]及Gl = Gl [1]和G2 = G2 [1],设定G1或G2的第N轮运算是把N等于1代入N,把G1[1]或G2[1]分别代入BioTPM[N] 、Gl [2]或G2[2]代入BioTPM[N+l],连同把Move[N]、Round[N]、MRNumber[N]代入BioTPM[N+l]=f (BioTPM[N] , Move[N] , Round [N] , MRNumber[N])进行该第1轮运算,经该第1轮运算分别可得的G1[2]和G2[2]的值;根据G二 {Gl, G2,}、及G = G[l],可得G[2] = {G1 [2],G2[2],};同理由G[N] = (G1[N], G2[N],"]及N二1、2、3、、 N,分别把Gl [N]或G2[N]代入BioTPM[N]、Gl[N+l]或G2[N+1]代入BioTPM[N+l],连同把Move [N] 、Round[N]、MRN咖ber[N]代入BioTPM[N+l] = f(BioTPM[N], Move[N], Round[N], MRNumber[N]),进行该第N轮运算,把经该轮运算的相关结果分别赋值给Gl [N+l]或G2 [N+l],从而由获取子集G1[N]和G2[N]的值获得该G[N+1 = {G1 [N+l] , G2 [N+l] ,};
该设定的计算实现是步骤(13); (5)设定BioTPM[K+l] = fK(BioTPM[K] , Move[K], Round[K], MRN咖ber[K])=K*BioTPM[K]根据l和步骤(1)、 (2)、 (3)及(4),设定该矩阵向量的若干轮运算为K轮次运
算,设定起始运算矩阵向量是BioTPM[l],根据步骤(3)对BioTPM[l]进行第l轮运算,该
矩阵向量的第1轮运算结果值为BioTPM[2],同理经过第K轮运算该矩阵向量第K轮运算
结果值为BioTPM[K+l];由此定义该矩阵向量的K轮次运算是根据步骤(3)把BioTPM[l]
进行由第1轮运算连续到第K轮运算;经过K轮次运算该矩阵向量的K轮次运算结果值为
BioTPM[K+l];把该K轮次运算用函数表达式表示,即BioTPM[K+l] = fK(BioTPM[l] , Move[l] , Round[l] , MRNumber[l]),其中该运算的Move[N] 、 Round[N] 、 MRNumber [N]设定是步骤(10) 、 (11) 、 (13); 定义fK(BioTPM[l] ,Move[l] , Round [1] , MRNumber [l])可表示为K*BioTPM[l],其
中*是步骤(1)所定义;即BioTPM[K+l] = K*BioTPM[l]; (6)设定G及子集Gl和G2的K轮次运算 根据1和步骤(1) 、 (2) 、 (3) 、 (4)及(5),设定G或Gl和G2的K轮次运算,包括分别把G1 = G1[1]和G2二G2[1]代入BioTPM[l]、Gl[K+l]或G2[K+1]代入BioTPM[K+l],由K =1、2、3、4、…、K,连同Move[K]、Round[N]、MRNumber[N]代入BioTPM[K+l] = fK(BioTPM[K],Move[K], Round[K], MRN咖ber[K]) = K*BioTPM[l],即经该K轮运算可得BioTPM[K+l]=K*BioTPM[l],也即分别得G1[K+1] =K*G1[1]或G2[K+1] = K*G2 [1],从而得G[K+1]={G1[K+1],G2[K+1], ...} = {K*G1[1],K*G2[1], ...} = K*G[1];因K*G = K*G[1] ,K*G1 =K*G1 [1] , K*G2 = K*G2 [1],故
K*G = {K*G1, K*G2, ...};
该设定的计算实现是步骤(13);
(7)设定W = K*G、 J*W、 J*G、 K* (J*G)的运算
,G2[1], ...} = {K*G1[1],K*G2[1], ...} = {W1,W2, ...} 其中设定Wl = Wl [1]和W2 = W2 [1], 又可得Wl = Wl [1] = K*G1 [1] = Gl [K+l] W2 = W2 [1] = K*G2 [1] = G2 [K+l], 从而可得W = K*G[1] = G[K+1];
② 、设定J*W = J*{(W1), (W2), ...} = {(J*W1), (J*W2), ...}: 其中根据①设定Wl = Wl [1]和W2 = W2 [1] 又可得:J*W1 = J*W1 [1] = Wl [J+l], J*W2 = J*W2[1] = W2[J+1];
③ 、设定J*G = J*G[1] = J*{G1,G2, ...} = {(J*G1), (J*G2), ".}、 其中根据步骤(2)设定Gl = Gl [1]和G2 = G2[l] 又可得:J*G1 = J*G1 [1] = Gl [J+l], J*G2 = J*G2[1] = G2[J+1];
④ 、设定K氺(,G) = K*{(J*G1), (J*G2),} = {(K*(J*G1)), (K*(J*G2)),}; 其中根据③设定J*G1 = J*G1[1]和J*G2 = J*G2[1] 又可得K氺(,Gl) =K*(J*G1[1]) =K*G1[J+1], K*(J*G2) =K*(J*G2[1]) =K*G2[J+1]; 该设定的计算实现是步骤(13);
(8)设定string (Matrix-Vector)禾口 matrix (Matrix-String) 根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6)及(7),设定string (Matrix-Vector) 包括把括弧内Matrix-Vector对象按string规则进行编码,设定Matrix-Vector对象组成 包括该矩阵向量、还包括该运算基准,设定string编码规则可以是按从左到右从上到下的 顺序把Matrix-Vector进行编码、且使之串接成为该集合元素的数字串,设定该数字可以 是十进制数也可以是二进制数,设定串接可以是按运算基准、矩阵向量的顺序排列连接为 串;其中Matrix-Vector对象可以是G、 W、 J*G、 J*W、 K* (J*G),也可以是J*W1 、 J*W2,还可以 是K* (J*G1) 、K* (J*G2),艮卩string (Matrix-Vector)可以是string (Matrix-Vector = G或 W或J*G或J*W或K* (J*G)),也可以是string (Matrix-Vector = J*W1或J*W2或K* (J*G1) 或K* (J*G2)),连带该运算基准PD ; 设定matrix (Matrix-String)包括把括弧内Matrix-String对象按matrix格 式进行还原,设定该Matrix-String对象组成包括该矩阵向量数字串、还包括该运算基 准数字串,设定matrix还原格式可以是按从左到右从上到下的顺序把Matrix-String 进行还原,包括把运算基准数字串与矩阵向量数字串分开,包括把二者还原为特征 点坐标参数;其中Matrix-String对象可以是string (Matrix-Vector = G),也可 以是string (Matrix-Vector = W),还可以是string (Matrix-Vector = J*G),艮卩 matrix(Matrix-String) 可 以 是matrix(Matrix-String = string(Matrix-Vector =G)),也可以是matrix (Matrix-String = string (Matrix-Vector = W)),还可以是matrix (Matrix-String = string (Matrix-Vector = J*G)),连带该运算基准PD ; 该设定的操作实现是步骤(15) 、 (16); (9)设定f (Matrix-OP = J*W)和f (Matrix-OP = K*(J*G)) 根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7)及(8),设定散列法是f (XORM),设定f (Matrix-OP = J*W)或f (Matrix-OP = K*(J*G))是该子集的f (XORM)运算,该运算包括把括弧内Matrix-OP = (J*W)或(K*(J*G))按f (XORM = (J*W1, J*W2,...))或f (XORM=(K*(J*G1), K*(J*G2),…)),即按设定f(XORM)进行各子集异或散列的运算,该运算值即该编码值;设定该运算编码实现包括 ①、设定f (Matrix-OP = J*W)的f (XORM)运算包括
f (Matrix-OP = J*W) = f (XORM = (J*W1, J*W2,...)) 可以设定异或散列法f (XORM = (J*W1, J*W2,…))是各子集按步骤(8)进行编
码操作,然后进行各子集编码的异或,异或散列的长度可以是最短子集编码长度,即 /(XORM= (J*W1, J*W2,)) =/(string (Matrix-Vector==J*Wl)) @/ (string (Matrix-Vector==J*W2 ) ) 也可以设定异或散列法f (XORM = (J*W1, J*W2,…))是各子集各自元素纵横坐标的异或,即 /(XORM= (J*W1, J*W2,…))=/(XORM=J*Wl)十/(XORM=J*W2) … 其中设定 a、f (XORM = J*W1) = f (XORM = Wl [J+l]),其中 / (XORM=Wl[J+l]) ={ xWl[J+lh十xWl[J+l]2a " xWl[J+l] (m.P xWl[J+l]m} { _yWl[J+l] l[J+l]2 …"W1[J+1] (m-i) "Wl[J+l]m} b、f (XORM = J*W2) = f (XORM = W2 [J+l]),其中 /(XORM=W2[J+l]) ={ ;cW2[J+l]! xW2[J+l]2xW2[J+l] (m.P @;cW2[J+l]m} {少W2[J+lh十少W2[J+1]2十 _yW2[J+l]_yW2[J+l]m } 其中 W1[J+1] = KxWl[J+lL,yWl[J+l]》(xWl[J+l]2,yWl[J+l]2) ... (xWl[J+l](m—",yWl[J+l](『d) (xWl[J+l]m,yWl[J+l]m)}, W2[J+1] = KxW2[J+lL, yW2[J+l]》(xW2[J+l]2, yW2[J+l]2) ... (xW2[J+l](迈'—d,yW2[J+l](迈,—丄))(xW2[J+l]m, ,yW2[J+l]m, )} ②、设定f (Matrix-OP = K* (J*G))的f (XORM)运算包括 f (Matrix_OP = K* (J*G)) = f (XORM = (K* (J*G 1) , K* (J*G2),...)) 可以设定异或散列法f (XORM = (K*(J*G1),K*(J*G2),...))是各子集按步骤(8)
进行编码操作,然后进行各子集编码的异或,异或散列的长度可以是最短子集编码长度,
即 /(XORM= (K* (J*G1), K* (J*G2),))■=/(string (Matrix-Vector=K* (J*G1)) @/(string (Matrix-Vector=K* (J*G2)) 也可以设定异或散列法f(XORM = (K*(J*G1), K*(J*G2),…))是各子集各自元素纵横坐标的异或,即 /(XORM= (K* G*G1), K* (J*G2),)) =/(XORM=K* (J*G1))
/(XORM=K* (J*G2))
其中设定a、f (XORM = K*(J*G1)) = f (XORM = K*G1 [J+l]),其中 / (XORM=K*Gl[J+l]) ={ ,Gl[J+lh0xK^Gl[J+l]2十… xK*Gl[J+l] xK*Gl[J+l]m} { yK*Gl[J+l] Gl[J+l]2 …"K*G1[J+1] (m-D yK*Gl[J+l]M }b、f (XORM = K*(J*G2)) = f (XORM = K*G2 [J+l]),其中
/XORM=K*G2[J+l])= { xK^G2[J+lh ;cK*G2[J+l]2 @. jcK*G2[J+l](m—" xK*G2[J+l]m}
{ ,G2[J+lh yK*G2[J+l]2 … yK*G2[J+l]"K*G2[J+l]m }
其中 K*G1[J+1] = KxK氺Gl[J+lL, yK氺Gl[J+l]》(xK*Gl[J+l]2, yK*Gl[J+l]2)
... (xK*G 1 [J+1 ] (m—d , yK*G 1 [J+1 ] (m—d) (xK*G 1 [J+1 ]m, yK*G 1 [J+1 ]m)},
K*G2[J+1] = KxK氺G2[J+lL, yK氺G2[J+l]》(xK*G2[J+l]2, yK*G2[J+l]2)
…(xK*G2[J+l](m'—d, yK*G2[J+l](m, —d) (xK*G2[J+l]m, , yK*G2[J+l]m, )},
该设定的计算实现是步骤(15) 、 (16); (10)设定Gl [N] 、 G2 [N]与Move [N] 、 Round [N] 、 MRNumber [N]映射相关 根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8)及(9),可以设定: ①、Move [N] = f (Matrix-OP = Gl [N]) ②、Round [N] = f (Matr ix_0P = G2 [N])③、MRNumber [N] = f (Matrix-OP = (Gl [N] , G2 [N])) 即设定该第N轮运算的基本运算次数(即MRNumber [N])、位移步长(即Move [N])、 旋转步长(即Ro皿d[N])可以与步骤(4)所设G1[N]、 G2[N]映射相关,且该映射相关包括 可以设定Move[N]是G1[N]的函数、Round[N]是G2[N]的函数、MRNumber [N]是Gl [N]和 G2[N]的函数; 设定该实现是步骤(11) 、 (12); (11)设定f (Matrix-OP = (G1[N])或(G2[N])或(Gl [N] , G2[N])的f (XORM)运
算 根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9)及(10),设定散列法是 f (XORM),设定f (Matrix-OP = (Gl [N])或(G2 [N])或(Gl [N] , G2 [N]))是该子集的f (XORM) 运算,该运算包括把括弧内Matrix-OP = (G1[N])或(G2[N])或(Gl [N] , G2[N])对象按 f(X0RM= (J*W1),X0RM= (J*W2),...)或f(XORM二 (K*(J*G1)) ,XORM = (K*(J*G2)),…), 即按设定f (XORM)进行子集各自元素纵横坐标异或散列的运算;设定该运算实现包括
①、设定f (Matrix-OP = G1[N])子集的f (XORM)运算可以是
f (Matrix-OP = Gl [N]) = f (XORM = Gl [N]) 其中/(XORM=Gl[N〗)={ xGl[Nh ;cGl[N]2 ... xGl[N](昏n @xGl[N]m} j^Jl[Nh一l[N]2①… (m-i) yGl[N]m} ②、设定f (Matrix-OP = G2[N])子集的f (XORM)运算可以是 f (Matrix-OP = G2 [N]) = f (XORM = G2 [N]) 其中/(XORM=G2[N]) ={ xG2[Nh xG2[N]2 $xG2[N] ( '." xG2[N]m-}
@{ j^2[Nh④yG2[N〗2a ><}2[N] (m ;<}2[N]m- }
③、设定f (Matrix-OP = (Gl [N] , G2 [N]))子集的f (XORM)运算可以是:
/(Matrix-OP= (G1[N], G2[N])) =/(/(XORM= Gl[N])) @/(/(XORM= G2[N]));
其中已知 a、Gl[N] = {(xGl [N] n yGl [N]》(xGl [N]2, yGl [N]2) ... (xG 1 [N] (m—d , yG 1 [N] (m—d) (xG 1 [N]m, yG 1 [N]m)}, b 、 G2 [N] = {(xG2 [N]: , yG2 [N]》(xG2 [N] 2 , yG2 [N] 2) ... (xG2[N](m, —d, yG2[N](迈,—d(xG2亂,,yG2[N]迈,)} (12)设定Move [N]、 Round [N]、 MRNumber [N]映射相关值的计算 根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9) 、 (10)及(11),计算
Move [N] 、 Round [N] 、 MRNumber [N]映射相关值,计算方法包括①、首先由Gl = Gl[l]和G2 = G2[l]计算f (Matrix-OP = Gl [1]) 、f (Matrix-OP
=G2[1]) 、 f (Matrix-OP = (Gl [1] , G2[1])),得 Move[l] = f(Matrix-OP = Gl[l])、Round [N] = f (Matrix_0P = G2 [ 1 ])、MRNumber [N] = f(Matrix—OP = (Gl [1] , G2 [1])), ②、将G1[1]和G2[1]分别代入BioTPM[l]、G1[2]和G2[2]分别代入BioTPM[2],连同Move[l] = f (Matrix-0P = Gl [l]) 、Round[N] = f (Matrix-0P = G2 [1]) 、MRN咖ber [N]=f (Matrix-0P = (Gl [1] , G2[1]))代入BioTPM[2] = f (BioTPM[l] , Move[l] , Round[l],MRNumber [1])经该第1轮运算,分别得Gl [2]和G2 [2]的值,由此获得Move [2]=f(Matrix-OP = Gl[2])、Round[2] = f(Matrix-OP = G2[2])、MRNumber [2] = f(Matrix-OP=(G1[2],G2[2])); ③、由N = 2、3、4、 …N,将Gl [N]和G2[N]分别代入BioTPM[N] 、 Gl [N+l]和G2[N+1]分别代入BioTPM[N+l],连同Move[N] = f (Matrix-OP = Gl [N]) 、 Round [N]=f (Matrix-OP = G2[N])、MRNumber [N] = f (Matrix—OP = (Gl [N] , G2 [N]))代入BioTPM[N+l]=f(BioTPM[N], Move[N], Round[N], MRNumber[N])经该第N轮运算,分别得G1[N+1]和G2[N+1]的值,由此计算获得Move[N+l] = f(Matrix-OP = G1[N+1])、 Round[N+l]=f (Matrix-OP = G2 [N+l]) 、 MRNumber [N+l] = f (Matrix-0P = (Gl [N+l] , G2 [N+l]));
该设定的计算实现是步骤(13); (13)计算设定K的G[K] = (G1[K],G2[K],}及其运算参数根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9) 、 (10) 、 (11)及(12),设
定随机数为K,可计算G[K] = {G1[K],G2[K],…1及其运算参数,包括 ①、计算设定K = 1、2、3…K的G1[K]、 G2[K],包括计算设定f (Matrix-0P =
G1[K])、 f (Matrix-OP = G2 [K]) 、 f (Matrix—0P = (Gl [K] , G2 [K]))和Move [K] 、 Round [K]、MRNumber[K]; ②、计算设定K和J值相关Wl 、 Wl 、 Gl 、 G2的矩阵向量运算;
③、计算设定string (Matrix-Vector = G、W、 J*G);④、计算设定matrix (Matrix-String = string (Matrix-Vector = G、W、 J*G));
⑤、计算设定f (Matrix-0P = J*W) 、 f (Matrix-OP = K*(J*G))且前后二值相等;
(14)发布string (Matrix-Veetor = G)禾口 string (Matrix-Vector = W),隐藏私 钥K 根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9) 、 (10) 、 (11) 、 (12)及
(13) ,发布string (G)和string (W),设定解密私钥是K,隐藏K ; (15)加密计算及发送加密信息C = {string (Matrix-Vector = J*G) , Cm},隐藏 私钥J 根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9) 、 (10) 、 (11) 、 (12) 、 (13) 及(14),设定待加密值M(即明文编码),加密模式C = {string(Matrix-Vector = J*G), Cm = [f (Matrix-OP = J*W) +M]},设定加密私钥J,隐藏J,向解密方发送的加密信息是C = {string(J*G), Cm}; (16)解密计算及解密Em = Cm_f (Matrix-OP = K* (J*G))获M 根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9) 、 (10) 、 (11) 、 (12) 、 (13)、
(14) 及(15),设定解密模式E = {matrix (Matrix-String = string (Matrix-Vector = J*G)) , Em = Cm-f (Matrix-OP = K* (J*G))},计算Em得明文编码M,即 Em = Cm_f(Matrix_0P = K*(J*G)) = [f(Matrix_0P = J*W)+M]_f(Matrix_0P = K*(J*G)) = [f (Matrix-OP = J* (K*G)) +M] -f (Matrix-OP = K* (J*G)) = M,且该值等于该待 加密值。 因步骤(14)所设定的公钥是string (Matrix-Vector = G)和 string(Matrix-Vector = W),且string(Matrix-Vector = G)禾口 string(Matrix-Vector =W)需根据步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9) 、 (10) 、 (11) 、 (12) 、 (13)由 BioTPM[N+l] = f (BioTPM[N] , Move[N] , Round [N] , MRN咖ber[N])经K轮计算获得W = K*G、最后由string (Matrix-Vector)经数字串编码得至U string (Matrix-Vector = G) 和string (Matrix-Vector = W)而获取,故只要隐藏K就不能由G获得W,从而不能获得 string (Matrix—Vector = G)禾口 string (Matrix—Vector = W)。另夕卜由所设定的力口密模式C ={string(Matrix-Vector = J*G) ,Cm = [f (Matrix-OP = J*W)+m]}和所设定的解密模式 E = {matrix (string (Matrix-Vector = J*G)) = J*G, Em = Cm_f (Matrix_0P = K* (J*G))}, 只要隐藏J就难以由G和W计算得J*G、 J*W,从而难以获取string (Matrix-Vector = J*G)和f (Matrix-OP = J*W),且不知K就难以由J*G计算得K* (J*G),从而难以获取 f (Matrix-OP = K*(J*G)),另外由于异或散列法运算的性质,仅从f (Matrix-OP = J*W)、 f (Matrix-OP = K*(J*G))难以分析剖获J*W、 K*(J*G),进而难以由Cm计算出Em。同时, 尽管string (Matrix-Vector = G) 、 string (Matrix-Vector = W) 、 string (Matrix-Vector =J*G)和f (Matrix-OP = J*W) 、 f (Matrix-OP = K*(J*G))各不相同,但该W、 J*G、 J*W、 K*(J*G)矩阵向量所包含生物特征点的拓扑结构与G却相同,由此使该发布公钥既包含表 征发布人生物特征点拓扑结构信息、以此可认证该发布人的生物特征,又可凭借发布公钥 和隐藏私钥依此公开地构建安全通信通道,有利于构筑基于发布人公钥可信认证的安全通 信通道。值得指出的是步骤(1) 、 (2) 、 (3) 、 (5)为实现步骤(4) 、 (6) 、 (7) 、 (8) 、 (9) 、 (10)、 (11)、 (12)、 (13)、 (14)、 (15)、 (16)的必须步骤,步骤(14)是实现步骤(15)、 (16)的必须步骤,从而完全实现本发明一种基于生物特征点拓扑结构的非对称加(解)密方法所要达到的目的。 本发明可以用于电子证书的公钥设置,该证书可以是网络电子证书,也可以是基于生物特征的电子护照、电子身份证。该证书认证中心可以采用已有证书认证技术结合使用基于本发明的技术,对该证书进行密码学认证和基于生物特征识别的身份认证,从而可以形成基于本发明为核心技术的可信PKI技术基础。


本发明有五附图,

如下 图1是本发明运算处理流程示意框图。 图2是本发明矩阵向量基本运算图。 图3是本发明矩阵向量第N轮运算流程图, 图4是本发明矩阵向量K轮运算流程图。 图5是本发明矩阵向量运算流程图。
具体实施例方式实施例 本发明实施例如图1所示。为了更充分地公开本发明内容,以下结合附图流程序号说明通过实施例进一步说明本发明。其中 (1)设定基于生物特征点拓扑结构的非对称加(解)密模式 本发明实施例根据1和步骤(1),设定加密模式是C = {string (Matrix-Vector = J*G) , Cm = [f (Matrix_0P = J*W)+M]}, 设定解密模式是 E = {matrix(Matrix-String = string(Matrix-Vector = J*G)), Em =Cm-f(Matrix-OP = K*(J*G))}, (2)设定G为基于生物特征点拓扑结构的矩阵向量,G包括子集Gl和G2 本发明实施例根据1和步骤(1)及(2),设定G是基于指纹特征点拓扑结构的矩阵
向量,G的子集Gl和G2分别是该指纹特征点拓扑结构的端点和叉点矩阵向量; 设定该元素集合是直角坐标系下基于该生物特征点坐标参数的集合,设定G =
{Gl, G2}为了方便仅使用括号分隔元素且省略各元素之间逗号不写,即G = {(Gl) (G2)};
为了更具体说明本发明实施例,本发明者使用已有的指纹模式识别技术,通过采集一真实
的指纹图像并作相关处理,且把获取该真实的指纹特征端点和叉点集合赋值给以下G的子
集G1和G2,艮卩 Gl = {(39,39)(195,67)(95,100)(127,117) (108,126) (153,132) (57,208) (158,219) (70,224) (184,225)(65,235)(57,246)(115,253)(194,254)(44,272)(180,287) (65,292) (190,314)}, G2 = {(58,43)(178,80)(113,113)(171,129)(151,162)(200,166)(162,272)},
其中Gl的元素数m = 18, G2的元素数m' = 7, G的元素数是n = m+m' =25;
指定点(xGl5, yGl5)为Gl的运算基准点、该点指向点(xGl6, yGl6)为Gl运算基准方向点,指定点(xG25, yG25)为G2的运算基准点、该点指向点(xG26, yG26)为G2运算基准 方向,设定Gl[l]和G2[1]为G1和G2具有指定运算基准的起始运算矩阵向量;
(3)设定BioTPM[N+l] = f (BioTPM[N] , Move[N] , Round[N] , MRN咖ber[N])
本发明实施例根据1和步骤(1) 、 (2)及(3)设定BioTPM[N+l] = f (BioTPM[N], Move[N] , Round [N] , MRN咖ber[N])是步骤(3);
(4)设定G或Gl和G2的第N轮运算 本发明实施例根据1和步骤(1) 、 (2) 、 (3)及(4),设定G或Gl和G2的第N轮运
算是步骤(4); (5)设定BioTPM[K+l] = fK(BioTPM[K] , Move[K], Round[K], MRN咖ber[K])= K*BioTPM[K] 本发明实施例根据l和步骤(1)、 (2)、 (3)、 (4)及(5),设定BioTPM[K+l]= fK(BioTPM[l],Move[l],Round[l],MRNumber[l]) = K*BioTPM[l]是步骤(5);
(6)设定W及G或Gl禾P G2的K轮次运算 本发明实施例根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5)及(6)设定W及G或Gl和G2
的K轮次运算是步骤(6); (7)设定W = K*G、 J*W、 J*G、 K* (J*G)的运算 本发明实施例根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6)及(7),设定W = K*G、 J*W、J*G、K*(J*G)的运算是步骤(7); (8)设定string (Matrix-Vector)禾口 matrix (Matrix-String)
本发明实施例根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7)及(8),设 定string (Matrix—Vector)禾口 matrix (Matrix—String)是步骤(8);例如可设定把 Matrix-Vector对象G = {Gl, G2}串接编码为数字串的格式是PDC1—C2+m m' +6162,其中 PDei—e2表示该集合的运算基准位置序号,如PDei—e2 = 5、5、6、6即Gl和G2运算基准点P和运 算基准方向点D为该矩阵向量元素集合的第5个和第6个元素,其中m m表示集合数字串 长度,如m m' = 18、7即G1和G2集合数字串长度分别是18和7个元素数,其中G1G2是 该矩阵向量元素集合;又如可设定把该Matrix-String数字串反串接编码为矩阵向量对象 的格式是G1G2+PD^e2+m m',其中G1G2是该矩阵向量元素集合,其中Dei—e2是集合运算基准 位置序号,如PDei—e2 = 5、5、6、6即为Gl和G2运算基准点和运算基准方向点在该矩阵向量 中都是该集合的第5个和第6个元素,其中m m'是集合数字串长度,如m m' = 18、7即为 Gl和G2集合数字串长度是18和7个元素数; (9)设定f (Matrix-OP = J*W)和f (Matrix-OP = K*(J*G))本发明实施例根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8)及(9),设定
f (Matrix-OP = (J*W)或(K*(J*G)))的f(X0RM)运算是步骤(9),其中:
/ (Matrix-OP=J*W) =/(XORM= (J*W1, J*W2)) =/(XORM=J*Wl) /(XORM=J*W2)
=/(XORM=Wl[J+l]) /(XORM=W2[J+l) / (Matrix-OP=K* (J*G)) =/(XORM= (K* (J*G1), K* (J*G2)))
=/(XORM=K* (J*G1)) /(XORM= K* (J*G2))
=/(XORM=K*Gl[J+l]) e/(XORM=K*G2[J+l]);
(10)设定Gl [N] 、 G2 [N]与Move [N] 、 Round [N] 、 MRNumber [N]映射相关 本发明实施例根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9)及(10),
设定Gl [N] 、 G2 [N]与Move [N] 、 Round [N] 、 MRNumber [N]映射相关是步骤(10); (11)设定f (Matrix-OP = (G1[N])或(G2[N])或(Gl [N] , G2[N])的f (X0RM)运
算 本发明实施例根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9) 、 (10)及(11),设定f (Matrix-0P = (G1[N])或(G2[N])或(Gl [N] , G2[N])的f (XORM)运算是步骤(ll),其中为了方便设定f (Matrix-OP = G1[N])可表示为f (G1[N])、 f (Matrix-OP =G2 [N])可表示为f (G2 [N]) 、 f (Matrix-OP = (Gl [N] , G2 [N]))可表示为f (Gl [N] , G2 [N]);
(12)设定Move [N] 、 Round [N] 、 MRNumber [N]映射相关值的计算
本发明实施例根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9) 、 (10)、(11)及(12),设定Move[N] 、Round[N] 、MRNumber[N]映射相关值的计算是步骤(12),其中计算该映射相关值为Move[N] = f(Gl[N]) 、 Round [N] = f (G2 [N]) 、 MRNumber [N] =f(Gl[N],G2 [N]),设定Move [N]) 、Round[N] 、MRNumber [N]取值范围是大于或等于3的个位数,且当小于3时取值为3 ; (13)计算设定K的G[K] = {Gl [K] , G2 [K] ,}及其运算参数
本发明实施例根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9) 、 (10)、(11)、(12)及(13),设定随机数为K和G[1] = (Gl[l],G2[l]h已编程实现包括计算设定K = 1 、2、3…K的Gl [K] 、 G2 [K],计算设定f (Gl [K]) 、 f (G2 [K]) 、 f (Gl [K] , G2 [K]),计算设定Move[K] 、Round[K] 、MRNumber [K],计算设定W1、W1、G1、G2,计算设定string (Matrix-Vector=G、 W、 J*G、 J稀),计算设定matrix (Matrix-String = string (Matrix-Vector = G、 W、J*G)),计算设定f (Matrix-OP = J*W) 、 f (Matrix-OP = K* (J*G));
①、计算设定K二 1、2、3…K的G1[K]、G2[K] 由于计算设定G1[K]、G2[K],需要K二 1、2、3…K的每一轮次同时计算f (Gl [K])、f (G2 [K]) 、 f (G1 [K] , G2 [K])及Mo ve [K] 、 Round [K] 、 MRNumber [K],另外为了方便说明和限于篇幅,本发明实施例设定K = 38,相关计算结果一并示列如下
Initial Data
m = 18 Gl[l] :(39,39) (195,67) (95,100)(127,117)(108,126)(153,132) (57,208) (158,219)(70,224)(184,225) (65, 235) (57, 246) (115, 253) (194, 254) (44, 272) (180, 287) (65, 292)
(190,314) m' = 7G2[l] :(58,43)(178,80)(113,113)(171,129) (151,162) (200,166) (162,272)
K=l f(Gl[l])=76 f(G2[l])= 304 f (Gl [1] , G2 [1]) = 380
Move[l]=6Round [1] = 4 MRNumber [ 1] = 3 m = 18 Gl[2] : (298,91)(196,208) (217,109)(186,128) (188,107) (161,139) (144,23)(85,103)(125,26)(67,122)
(117, 16) (112,3) (77,50) (37, 117) (96, —21) (16,89) (67, —13) (—13,84) m' =7G2 [2] : (390, 109) (298, 193) (302, 122) (258, 163) (240, 130) (212, 167) (142, 85)
K = 2 f (G1[2]) =-495 f(G2[2])=47 f (Gl [2] , G2 [2]) =—450
Move[2]=3 Round [2] = 7 MRN咖ber[2] = 3
m = 18 Gl[3] : (18,116) (162,66) (98,140) (134,140)(121,155)(160,142) (117,249) (207,210)(136,255) (232, 203) (137, 269) (135, 282) (187, 260) (255, 222) (137, 312) (259,
257)(165,319) (280,276)
m' =7G2[3] :(33, 131) (154,105) (115,165) (174,150) (172,186) (213,169) (233,274)
K = 3 f(Gl[3])= 457 f(G2[3])= 302 f (Gl [3] , G2 [3]) = 231
Move[3]=7Round [3] = 3 MRN咖ber[3] = 3 m = 18 Gl[4] :(202,0) (251,142) (178,81) (178,117) (164,104) (175,140) (72,98) (110, 187)(66,117) (117,212) (52,118) (39,117) (61,168) (98,234) (8, 118) (63,238) (1,145) (44,259) m' =7G2[4] : (259, _9) (284, 112) (224,73) (239, 132) (205, 130) (221, 170) (118, 188)
K = 4 f(Gl[4])= 256 f(G2[4])=_88 f (Gl [4] , G2 [4]) =-344
Move[4]=6Round [4] = 3 MRN咖ber[4] = 3 m = 18 Gl [5] : (314, 180) (175, 228) (233, 156) (197, 156) (210, 143) (176, 152) (217, 54) (130,90) (198,46)(105,98) (197,33)(198,21) (148,42) (83,78) (197, -11) (79,43) (171, -19) (58,
25) m' =7 G2[5] :(406,219) (286,243) (323,183) (266,198) (267,165) (228,179) (211,80) K = 5 f(Gl[5])= 493 f(G2[5])= 482 f (Gl [5] , G2 [5]) = 15
Move[5]=3Round [5] = 3 MRN咖ber[5] = 5 m = 18 Gl[6] : (49,201) (144,94) (132,182) (163,164) (157,180) (181,154) (191,259) (246,187) (213,257) (265, 167) (220, 267) (224, 278) (257, 235) (295, 174) (242, 305) (315,
202)(267,301) (342,207)
m' =7 G2[6] :(62, 235) (154,157) (152,224) (194,183) (209,211) (233,180) (296,256)
K = 6 f(Gl[6])=65 f(G2[6])=168 f (Gl [6] , G2 [6]) = 233
Move[6]=5 Round [6] = 8 MRN咖ber[6] = 3 m = 18 Gl [7] : (281, 249) (143, 220) (222, 186) (191, 170) (208, 167) (176, 159) (260, 101)(171,88) (247,81) (146, 82) (253, 71) (260, 62) (206, 55) (137, 52) (275, 33) (150, 21) (259,
13) (142, -5) m' =7 G2[7] :(364,309)(251,268)(310,236)(253,221) (270,193) (233,189) (266,99) K = 7 f (G1[7]) =-416 f (G2 [7]) = 166 f (Gl [7] , G2 [7]) =-314
Move[7]=3 Round [7] = 6 MRN咖ber[7] = 3 m = 18 Gl[8] : (71,75)(207,105) (131,138)(161,155) (145,156) (176,163)(92,221)(179,233) (105,240) (204, 239)(100, 250)(92, 259)(145, 266)(213, 269)(78, 288) (200, 300)
(93,309) (209,325) m' =7 G2[8] : (105,74) (217,115) (158,147) (215,161) (199,189) (235,191) (201,280) K = 8 f(Gl[8])= 274 f(G2[8])= 269 f (Gl [8] , G2 [8]) = 31
Move[8]=4Round [8] = 9 MRN咖ber[8] = 3 m = 18 Gl [9] : (93, 273) (120, 140) (156, 213) (173, 183) (174, 199) (178, 169) (236, 249)(245,165)(255,236) (251,140) (265,241) (274,249) (281,196) (281,131) (303,263) (312,
144)(324,248) (337,135) m' =7 G2[9] :(127,323)(168,211)(200,270)(214,213)(241,228)(241,194) (330,224) K=9 f(Gl[9])=6 f(G2[9])= 270 f (Gl [9] , G2 [9]) = 264
Move[9]=6 Round [9] = 3 MRN咖ber[9] = 4 m = 18 Gl [10] : (137, 50) (237, 139) (158, 134) (176, 164) (162, 157) (184, 174) (88, 182)(155,232)(89,205) (174,249)(81,212)(68,216)(111,248) (167,279) (43,234) (140,300)
(44,258) (135,326)
m' =7G2 [10] : (190, 42) (265, 134) (202, 132) (243, 173) (217, 187) (246, 202) (176, 264)
K = 10 f(Gl[10])=22 f (G2 [10]) = 237 f (Gl [10] , G2 [10]) = 251
Move[10]=3 Round [10] = 7 MRN咖ber[lO] = 3 m = 18Gl[ll] : (163,305) (123,181) (186,223) (186,188) (194,201) (185,177) (269,216)(236,142) (280,197) (229,118)(290,194)(303,198)(282,150)(250,97)(334,195) (284,92)
(345,174) (301,72)
m' = 7 G2[ll] :(217,369) (198,251) (250,285) (237,229) (264,230) (248,205) (337, 186) K=ll f (Gl[ll]) = 132 f(G2[ll])=74 f (Gl [11] , G2[ll]) = 206
Move[ll]=3Round[ll] = 4 MRN咖ber[ll] = 6 m = 18 Gl [12] : (307, 143) (221, 232) (225, 163) (195, 179) (203, 166) (189, 183) (181, 96) (136,159) (160,97) (120, 176) (154,87) (150,76) (119, 117) (91, 168) (133,50) (68, 142)
(108,49)(44,137)
m' =7 G2[12] : (406,158)(313,230) (318,170) (276,208) (265,188) (253,210) (194, 146)K = 12 f (G1[12]) = 372 f (G2[12]) = 333 f (Gl [12] , G2[12]) = 57
Move[12]=3 Round [12] = 3 MRNumber[12] = 7 m = 18 Gl [13] : (73, 167) (189, 135) (154, 190) (188, 190) (175, 195) (194, 187) (156, 265) (222,234)(176,274) (245, 227) (175, 285) (174, 297) (218, 278) (266, 249) (175, 328) (273,
283)(194,341) (290,299)
m' = 7 G2[13] :(104,188) (219,172) (185,219) (243,210) (239,228) (257,214) (275, 299)K = 13 f (G1[13]) = 139 f (G2[13]) = 260 f (Gl [13] , G2[13]) = 399
Move[13]=9 Round [13] = 3 MRNumber [13] = 9 m = 18 Gl[14] : (217,319)(188, 208) (238, 238) (239, 206)(242, 217)(237, 204) (306, 240)(276,179) (316,220) (271,157)(325, 221)(337, 222)(318,182)(293,135) (369, 219) (325,
128) (383,204)(343,111)
m' =7 G2 [14] : (260, 380) (248, 265) (292, 298) (283, 241) (298, 246) (288, 231) (366, 216)K = 14 f (G1[14]) = 367 f (G2[14]) = 448 f (Gl [14] , G2 [14]) = 175
Move[14]=7 Round [14] = 8 MRNumber [ 14] = 5 m = 18
Gl [15] : (153, 293) (202, 193) (220, 244) (241, 223) (237, 230) (240, 221) (268,289) (283,225) (289,281) (293, 208) (294, 288) (303, 296) (312, 254) (324, 203) (328, 315) (353,
216)(349,313) (378,216)
m' =7 G2[15] :(173,344) (240,252) (250,302) (280,255) (287,267) (289,251) (355,289)K = 15 f (G1[15]) = 457 f (G2[15]) = 70 f (Gl [15] , G2[15]) = 399
Move [15] = 7 Round [15] = 3 MRN咖ber[15] = 9 m = 18 Gl[16] :(331,309) (239,260) (282,243) (267,227) (271,226) (265,227) (327,201) (268,189) (320,181) (252, 180) (327, 178) (333, 168) (295, 162) (245, 148) (353, 144) (260,
120)(350,122) (260,95)
m' =7 G2[16] :(402,386) (313,319) (360,308) (314,279) (324,275) (312,273) (346,215)K = 16 f (G1[16]) = 279 f (G2[16]) = 404 f (Gl [16] , G2 [16]) = 131
Move[16]=9 Round [16] = 4 MRN咖ber[16] = 3 m = 18 Gl [17] : (172, 259) (260, 207) (253, 249) (275, 244) (274, 248) (276, 242) (268,310) (305,264)(288,313) (320, 256) (286, 321) (292, 331) (315, 301) (351, 266) (302, 360) (368,
293)(322,369) (391,305)
m' =7 G2[17] :(191,301) (293,260) (279,304) (326,279) (325,290) (331,280) (364,338)K = 17 f (G1[17]) = 308 f (G2[17]) = 463 f (Gl [17] , G2[17]) = 251
Move[17]=8Round [17] = 3 MRN咖ber[17] = 3 m = 18 Gl [18] : (277, 132) (327, 219) (286, 213) (289, 233) (285, 233) (292, 233) (227,226)(272,262) (225,246) (280, 277)(215, 244)(205, 250)(235, 272)(270, 308) (177, 260) (243,
324) (168,279)(231,347)
m' =7 G2[18] :(312,150) (351,253) (310,239) (334,285) (324,284) (334,289) (277,322)K = 18 f (G1[18]) = 494 f (G2 [18]) = 486 f (Gl [18] , G2 [18]) = 8
Move[18]=4Round [18] = 6 MRN咖ber[18] = 8
m = 18 Gl[19] :(385,282) (291,277) (309,249) (297,243) (297,243) (295,245) (331, 198) (282,218)(316,187) (266, 218) (322, 178) (322, 168) (291, 183) (243, 192) (327, 137) (245,
163)(314,122)(231,141)
m' =7 G2 [19] : (470, 349) (363, 329) (396, 304) (345, 302) (350, 297) (343, 301) (343, 239)K = 19 f (G1[19]) = 422 f (G2[19]) = 471 f (Gl [19] , G2[19]) = 113
Move[19]=3Round [19] = 3 MRN咖ber[19] = 3 m = 18 Gl [20] : (265, 334) (271, 242) (296, 257) (300, 246) (300, 246) (299, 244) (345, 280)(326,233) (357,267) (326, 218)(365, 272)(376, 272)(360, 242)(352,195) (406, 277) (381,
197) (422,264)(403,183)
m' =7 G2[20] :(302,423) (322,316) (345,349) (346,298) (351,304) (347,298) (409, 298)K = 20 f (G1[20]) = 205 f(G2[20])=46 f (Gl [20] , G2 [20]) = 227
Move[20]=5Round [20] = 6 MRN咖ber[20] = 7 m = 18 Gl [21] : (217, 270) (298, 236) (297, 260) (307, 256) (307, 256) (307, 256) (302, 309)(326,271)(314,314) (338, 264)(314, 325)(321, 332)(338, 305)(372, 276) (331, 361) (386,
301) (351,368)(409,313)
m' = 7 G2[21] :(231,338) (334,305) (317,338) (357,316) (357,319) (357,316) (387, 367)K = 21 f (G1[21]) = 116 f (G2[21]) = 275 f (Gl [21] , G2[21]) = 359
Move[21]=6Round [21] = 5 MRN咖ber[21] = 9 m = 18 Gl[22] :(311,188) (340,264) (322,268) (324,271) (324,271) (324,271) (278, 269)(311,287) (273,280) (318, 299)(263, 279)(254, 285)(281, 301)(306, 332) (225, 295) (281,
348) (217,312)(272,369)
m' =7 G2[22] :(350,213) (380,314) (351,299) (372,336) (370,335) (372,336) (325, 359)K = 22 f (G1[22]) = 71 f (G2[22]) = 422 f (Gl [22] , G2 [22]) = 481
Move[22]一3 Round[22]一3Ml~Number[22]一3
m一18
G1[23](406,263)(332,290)(327,273)(326,274)(326,274)(326,274)(326,231)(310,264)(317,228)
(299,270)(317,216)(312,208)(297,234)(266,259)(30l,178)(250,234)(284,172)(229,225)
m’一7
G2[23](498,317)(397,347)(411,319)(376,337)(375,337)(376,337)(355,294)
K一23 f(G1[23])一354 f(G2[23])一222 f(G1[23],G2[23])一444
Move[23]一4Round[23]一3Ml~Number[23]一4
m一18
G1[24](308,346)(323,272)(335,272)(336,271)(336,271)(336,271)(372,292)(35l,266)(379,288)
(353,253)(390,294)(399,293)(384,269)(378,231)(43l,299)(407,229)(444,286)(426,216)
m’一7
G2[24](34l,450)(367,348)(38l,373)(383,337)(383,337)(383,337)(429,339)
K一24 f(G1[24])一195 f(G2[24])一124 f(G1[24],G2[24])一19l
Move[24]一5Round[24]一4Ml~Number[24]一3
m一18
G1[25](289,217)(343,266)(338,275)(339,276)(339,276)(339,276)(303,295)(336,290)(304,304)
(345,299)(293,310)(289,319)(317,317)(352,331)(268,343)(339,357)(272,361)(341,380)
m’一7
G2[25](307,256)(383,329)(355,328)(384,346)(384,346)(384,346)(360,384)
K一25 f(G1[25])一432 f(G2[25])一28 f(G1[25],G2[25])一428
Move[25]一3Round[25]一8Ml~Number[25]一8
m一18
G1[26](282,318)(34l,279)(345,282)(345,282)(345,282)(345,282)(357,316)(353,285)(364,318)
(364,280)(370,329)(376,333)(378,307)(396,278)(395,359)(420,297)(413,358)(443,298)
m’一7
G2[26](29l,410)(376,352)(369,375)(387,353)(387,353)(387,353)(418,379)'6T,) (98S'S測(98C (98S'S測(8丄C (08C : [OS] 23
丄=,
'08S) (,6S'0ZS) (8SS',8S) (89S'WS) (Z9S'9SS) (ZWS9S)
,,)卿宦 ,'6SS) ,'6SS) ,'6SS) (,'6SS) (TW09S) (Z6Z'80S): [OS]
8T = ra
S = [6幻j叫umNaW9 = [6幻punojj 丄=[6Z]3aow T9 = ([6幻K)'[6幻T3)J 98 = ([6幻K))J丄OT = ([6幻T3)J 62 = )!
'丄T,) (6WW,) (6WW,) (6WW,) (88S'T^) (98S'H,) (SWSOS): [6Z]Z3
丄=,
'卿(附宦)(082宦),'卿(O丄Z宦)(W丄丄S) U0S宦)
(68Z'69S) (W靴 (6TS',SS) (8,C): [6Z]T3
TH = ([8幻K)'[8幻T3)J 09 = ([8幻K))J T6T = ([8幻T3)J 82 = )!
'08S) (9丄C (9丄m,) (9丄m,) (9SS'6T,) (9丄S'6T,) (S8Z'柳)[8Z]Z3
丄=, (8W89Z) (S8Z'的Z '68Z) (SWT8Z) (TW8TS) (nS'0ZS) (682'80S) (T6Z'WS) (0WSW)
(66Z'9ZS) (STS7SS (W6SS) (09Z'88S): [82]
8T = ra
S ='[丄幻T3)J SW =([丄幻Z3)J (M =([丄幻T3)J丄Z = )!
',)(8W60,) (8W60,) (8W60,) (S丄S'98S) (W80,) (9WSTS):[丄Z]Z3
丄=,
(Z6S'80S) (SSS'9丄S) (9W9SS)
'8ZS) (W0SS) (W0SS) (W0SS) (W0SS) (0mSS) (T8Z'T6Z):[丄Z]T3
8T = ra
丄=[9幻j叫umNaW 9 = [9幻punojj6 = [9幻3aow 丄,=([9幻K)'[9幻T3)J 9ST = ([9幻K))J 6ZT=([9Z]T3)J 92 = )!
17酬
(98S
0SW)] 6酬
(孤 8酬 A酬
鹏 9酬
(962 S酬
s酬
, L酬 o酬
(962 (附
附o]
60W)] 80W)]412)
K一30 f(G1[30])一40 f(G2[30])一46 f(G1[30],G2[30])一6
Move[30]一3Round[30]一6Ml~Number[30]一6
m一18
G1[31](314,299)(364,327)(363,328)(363,328)(363,328)(363,328)(350,344)(362,329)(350,350)
(365,334)(342,364)(339,369)(360,355)(385,359)(325,394)(383,387)(337,41 1)(392,408)
m’一7
G2[31](340,341)(426,387)(412,384)(427,390)(427,390)(427,390)(422,412)
K一3l f(G1[31])一32 f(G2[31])一35 f(G1[31],G2[31])一3
Move[31]一3Round[31]一5 Ml~Number[31]一3
m一18
G1[32](42l,334)(365,333)(366,332)(366,332)(366,332)(366,332)(369,314)(366,330)(366,309)
(363,329)(366,294)(366,287)(356,310)(333,318)(366,260)(32l,293)(348,249)(302,280)
m’一7
G2[32](529,391)(43l,393)(444,390)(430,391)(430,391)(430,391)(424,373)
K一32 f(G1[32])一344 f(G2[32])一894 f(G1[32],G2[32])一550
Move[32]一4Round[32]一4Ml~Number[32]一3
m一18
G1[33](345,379)(372,331)(373,332)(373,332)(373,332)(373,332)(387,344)(374,333)(39l,345)
(376,332)(405,353)(41 l,355)(396,336)(40l,314)(434,369)(429,316)(453,359)(449,306)
m’一7
G2[33](386,476)(432,392)(429,404)(434,392)(434,392)(434,392)(45l,395)
K一33 f(G1[33])一11l f(G2[33])一45 f(G1[33],G2[33])一66
Move[33]一3Round[33]一5 Ml~Number[33]一6
m一18
G1[34](399,379)(374,336)(375,337)(375,337)(375,337)(375,337)(389,331)(377,336)(39l,327)
(375,334)(406,318)(41 l,316)(387,319)(373,304)(433,303)(387,281)(436,282)(389,259)
m’一7
G2[34](488,478)(440,397)(446,405)(440,397)(440,397)(440,397)(45l,388)
K一34 f(G1[34])一22 f(G2[34])一90 f(G1[34],G2[34])一76
Move[34]一3Round[34]一3 Ml~Number[34]一6
m一18
G1[35](358,298)(380,338)(380,338)(380,338)(380,338)(380,338)(368,344)(380,339)(366,347)
(380,339)(353,355)(347,358)(37 l,353)(382,368)(325,369)(368,390)(32l,390)(366,412)
m’一7
G2[35](396,323)(444,401)(438,395)(444,401)(444,401)(444,401)(433,407)
K一35 f(G1[35])一17l f(G2[35])一212 f(G1[35],G2[35])一127
Move[35]一3Round[35]一3 Ml~Number[35]一7
m一18
G1[36](388,380)(389,339)(389,339)(389,339)(389,339)(389,339)(398,339)(39l,339)(40l,340)
(39l,339)(417,339)(423,339)(40l,333)(402,315)(447,339)(423,303)(46l,325)(434,285)
m’一7
G2[36](455,490)(453,402)(455,408)(453,402)(453,402)(453,402)(46l,402)
K一36 f(G1[36])一6 f(G2[36])一45 f(G1[36],G2[36])一43
Move[36]一6 Round[36]一5 Ml~Number[36]一3
m一18
Gl[37](375,311)(394,344)(394,344)(394,344)(394,344)(394,344)(388,348)(392,346)(384,349)
(392,346)(37l,357)(366,361)(387,355)(393,370)(344,373)(383,392)(339,392)(382,413)
m’一7
G2[37](412,334)(458,407)(455,404)(458,407)(458,407)(458,407)(453,4l 1)
K一37 f(G1[37])一127 f(G2[37])一223 f(G1[37],G2[37])一160
Move[37]一7Round[37]一3Ml~Number[37]一3
m一18
G1[38](44l,335)(408,352)(408,352)(408,352)(408,352)(408,352)(405,347)(407,350)(404,346)
(407,350)(397,333)(394,328)(400,347)(385,352)(38 l,306)(363,343)(363,300)(342,342)'o丄,)(STKS丄,)(ST,'S丄,)(STKS丄,)(ZT,'9丄,)(STKS丄,)(0W9,S)} = ["so]
:哥葛翌资港①呈'[8s] ra = 躲'[T+r+a ra = ra恭r = = ,r図'藤留 [l刚
:KZW&S) (00S'S9S) (SWS9S) (90C (孤'S8S) UWOO,)(SW丄6S) (OSC (9W柳)(OSC (M 'SO,) (ZSS'80,) (ZSS'80,) (ZSS'80,) (ZSS'80,) (ZSS'80,) (SWT,,)} = [(uso] :哥葛翌资港①呈'[8S]= TAl*6T躲'[T+f+M]= =図、3 [60s0]
:{(862
'60,) (86Z'M)(862,) (6WS,S) (9mZS) = [80s0]
:哥葛翌资港①呈'
K) = 23*1"図'藤留 [a0s0]
:U6T'T8S)
(,招'66Z) (9W00S) (9招'00S) UW96Z) = [90s0]
:哥葛翌资港①呈'
=図、8 [s0s0]
:{,
'm) (TOS'm)(丄6Z'0SS) (跳'96S) (6WS9S) (6W0丄,M = ZAl [m)so]
:哥葛翌资港①呈'[6T] K) = K)*8T = ZAl躲'[T+M] K) = = ZAl図'藤留 [s0s0]
:Km 'T②依T (S9T
'S招)Un(Z6T(S8T 'T6Z) (89T(8丄T 'MS) (8TZ '99Z)(丄8T '9TS) (8TZ 'Z8Z) (86T(S招'S6Z) (S招'丄6Z) (S招'丄6Z) (6招'60S) UWT6Z) (Z8Z 'S8S)} = TAl [zoso] :哥葛翌资港①呈'[6T]T3 = T3*8T = TAl躲'[T+M]== TAl図、V [loso]
:哥葛翌资港呈但脂6T = f 、8T = )!凝 產H葛44豐^躲'畓薛葛翌暮^刦^胡KTT3关继8S = M革説葛44①図。葛翌暮^刦^胡 (T3*f)*)T^l*I"、M*I"、K)*I"、T3*I"、K)*)! = = TAl关继6T = f、8T = )!
革説葛44班每脂'葛翌暮^^^胡KTTfrTATM关继扭6T = f、8T = )!革説葛44 [ooso]
葛翌暮^^^胡KrTfrTAPM关继哥I"胜)!革説葛44、② [66w)]
(B
',0S) (6W00S) (6TK00S) (6TK00S) (TW丄6,) (6TK00S) (S9KTC): [6S]Z3 [86w)]
丄=, [,o] U9S'86,) (■,)(丄9S
'8丄,)W柳)(T9S'0种)(6W丄种)(SW附)(6SS'9W) [96w)]
(T9S,) (6SS'9&) (09S
8T = ra [柳o]
9 = [8S] J叫ran朋W S = [8S]P皿。a 8=[8S]9AOW [s6w)] 鹏=([8S]K)'[8S]T3)J 098 = ([8S]K))J 8T=([8S]T3)J = )! [,o]
'0丄,)(WS丄,)(WS丄,)(WS丄,)(W9丄,)(WS丄,)(0W鹏)[8S]Z3 [酬
丄=,
乐的说
D、因K*J*G1 = Gl [K+J+l],故18*19*G1=G1 [38],查①获该运算值
K*J*G1 = {(441,335)(408,352)(408,352) (408,352) (408,352) (408,352) (405, 347) (407,350) (404,346) (407,350) (397,333) (394,328) (400,347) (385,352) (381,306) (363,343) (363,300)(342,342)}; 同理,因K*J*G2 = G2 [K+J+l],故18*19*G2 = G2 [38],查①获该运算值:K*J*G2 = {(546,370)(473,415)(476,412) (473,415) (473,415) (473,415) (470,
410)};③、计算设定string (Matrix-Vector) 计算设定string (Matrix-Vector),包括按串序设定PD『(;^ 5、5、6、6和m m'= 18、7,及编码Matrix-Vector = G、W、J*G,,: A、 string(Matrix-Vector = G) = {(5、5、6、6) (18、7)} {(39,39) (195,67) (95, 100) (127,117) (108,126) (153,132) (57, 208)(158, 219)(70, 224)(184, 225)(65, 235)(57, 246)(115,253)(194,254)(44,272)(180,287)(65,292)(190,314) (58,43) (178,80) (113, 113) (171,129) (151,162)(200,166)(162,272)} B、 string(Matrix-Vector = W) = {(5、5、6、6) (18、7)}}{(385,282) (291,277) (309,249) (297,243) (297,243)(295,245)(331,198)(282,218)(316,187)(266,218) (322, 178)(322,168)(291,183)(243,192)(327,137) (245,163) (314,122) (231,141) (470, 349) (363,329)(396,304)(345,302)(350,297)(343,301)(343,239)}C、 string(Matrix-Vector = J*G) = {(5、5、6、6) (18、7)}}{(265,334)(271,242) (296,257) (300,246) (300,246)(299,244)(345,280)(326,233)(357,267) (326,218) (365, 272)(376,272)(360,242)(352,195)(406,277)(381,197) (422,264) (403,183) (302,423) (322,316)(345,349)(346,298)(351,304)(347,298)(409,298)};
④、计算设定matrix (Matrix-String) 计算设定matrix (Matrix-String),包括按还原顺序设定反编码Matrix-String =string (Matrix-Vector = G、W、J*G、J*W)禾P PDG1—G2 二5、5、6、6及mm' =18、7,即
A、matrix(Matrix-String = string(Matrix-Vector = G))=
{(39, 39) (195, 67) (95, 100) (127, 117) (108, 126) (153, 132) (57, 208) (158, 219) (70,224) (184,225) (65,235) (57,246) (115,253) (194,254) (44,272) (180,287) (65,292) (190,314)(58,43)(178,80)(113,113)(171,129)(151,162)(200,166)(162,272)}和{(5、 5、6、6) (18、7)}} B、matrix(Matrix-String = string(Matrix-Vector = W))=
{(385,282) (291,277) (309,249) (297,243)(297,243)(295,245)(331,198)(282, 218)(316,187)(266,218)(322,178)(322,168)(291,183)(243,192) (327,137) (245,163) (314,122) (231,141) (470,349) (363,329) (396,304) (345,302) (350,297) (343,301) (343, 239)}禾P {(5、5、6、6)(18、7)}}C、matrix(Matrix-String = string(Matrix-Vector = J氺G))=
{(265,334) (271,242) (296,257) (300,246) (300,246) (299,244) (345,280) (326, 233)(357, 267)(326, 218)(365, 272)(376, 272)(360, 242)(352,195) (406, 277) (381,197) (422,264) (403,183) (302,423) (322,316)(345,349)(346,298)(351,304)(347,298)(409,298)}禾P {(5、5、6、6) (18、7川;⑤、计算设定f (Matrix-0P = J*W) 、 f (Matrix-0P = K* (J*G)) 计算设定f(Matrix-OP = J*W) 、 f(Matrix-OP = K*(J*G)), S卩计算设定
/( Matrix-OP=J*W ) =/( XORM=
(J*W1, J*W2)) =/(XORM=J*Wl) /(XORM=J*W2) =/(XORM=Wl[J+l) /(XORM=W2[J+lp

/( Matrix-OP=K* ( J*G ) ) =/( XORM= (K* (J*G 1) , K* (J*G2 )))=/( XORM= K* (J*G 1) ) /(XORM= K* (J*G2)) =/(XORM=K*Gl[J+l]) /(XORI^!OG2[J+1]);为方便说明,现假定加密方或解 密方知道1(= 18和J= 19,以此计算设定(实际使用时,根据步骤(1)加密方或解密方不 可能掌握对方的私钥K或J,故该计算设定只能通过G猜K或J值,以此算获W = K*G或J*G 值及对应的G[K+1]或G[J+1];但若K和J非常大则猜算J*G[K+1]或K氺G[J+1]就非常难 实现,故该计算设定是安全的),即 A、因J*W1 = J*K*G1 = Gl [K+J+l] , J*W2 = = J*K*G2 = G2 [K+J+l],故
/(XORM=J*Wl) @/(XORM=J*W2) =/(XORM= Gl [K+J+l]) /(XORM= G2 [K+J+l])
=/(XORM=Gl[38]) /(XORM=G2[38)=/(Gl[38]) /(G2[38]) =/(Gl[38], G2[38]) =846 即:f (Matrix-OP = J*W) = 846 ; B、因K*J*G1 = Gl [K+J+l] , K*J*G2 = G2 [K+J+l],故
/(XORM=K* (J*G1)) /(XORM=K* (J*G2)) =/(XORM= Gl [K+J+l]) /(XORM= G2[K+J+1])
=/(XORM=Gl[38]) /(XORM=G2[38)=/(Gl[38]) (G2[38]) =/(Gl[38], G2[38]) =846
即:f (Matrix-OP = K*(J*G)) = 846 ; (14)发布string (Matrix-Vector = G)禾口 string (Matrix-Vector = W),隐藏私 钥K 本发明实施例根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9) 、 (10)、 (11) 、 (12) 、 (13)及(14),隐藏设定解密私钥K = 18,发布: string(Matrix-Vector = G) = {(5、5、6、6) (18、7)}{(39,39) (195,67) (95,100) (127,117) (108,126) (153,132) (57, 208) (158, 219) (70, 224) (184, 225)(65, 235) (57, 246) (115,253) (194,254)(44,272)(180,287)(65,292)(190,314)(58,43) (178,80) (113,113) (171,129)(151,162)(200,166)(162, 272)}, string (Matrix-Vector = W) = {(5、5、6、6) (18、7)}} {(385,282) (291,277) (309, 249) (297, 243) (297, 243) (295, 245) (331,198) (282, 218) (316,187) (266, 218) (322,178) (322, 168) (291, 183) (243, 192) (327, 137) (245, 163) (314, 122) (231, 141) (470,349) (363, 329)(396,304)(345,302)(350,297)(343,301)(343,239)}; (15)加密计算及发送加密信息C = {string (Matrix-Vector = J*G) , Cm},隐藏 私钥J 本发明实施例根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9) 、 (10)、(11) 、 (12) 、 (13) 、 (14)及(15),因C二 {string(Matrix-Vector = J*G),Cm = [f(Matrix—0P =J*W)+M]},且 ①、设定待加密值M二4,设定加密私钥J二 19,隐藏J, ②、f (Matrix-0P = J*W) = 846, 则:Cm = f (Matrix-0P = J*W)+M = 846+4 = 850, 又因string(Matrix-Vector = J*G) = {(5、5、6、6) (18、7)}} {(265,334) (271, 242) (296,257) (300,246) (300,246) (299,244) (345,280) (326,233) (357,267) (326,218) (365,272) (376,272) (360,242)(352,195)(406,277)(381,197)(422,264)(403,183) (302, 423)(322, 316)(345, 349)(346, 298)(351, 304)(347, 298)(409, 298)},故
向解密方发送的加密信息C = {string (Matrix-Vector = J*G) , Cm}=
{{(xGl[20]5, yGl[20]5) (xGl[20]6, yGl[20]6) (xG2[20]5, yG2[20]5) (xG2[20]6, yG2[20]6) (m = 18, m' =7)} {(265,334) (271,242) (296,257) (300,246) (300,246) (299, 244) (345,280) (326,233) (357,267) (326,218) (365,272) (376,272) (360,242) (352,195) (406,277) (381,197) (422,264)(403,183)(302,423)(322,316)(345,349)(346,298) (351, 304) (347,298)(409,298)},850); (16)解密计算及解密Em = Cm_f (Matrix-OP = K* (J*G))获M 本发明实施例根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9) 、 (10)、
(11)、 (13)、 (14)、 (15)及(16),因 E = {matrix(Matrix-String = string(Matrix-Vector = J*G)), Em = Cm-f(Matrix-OP = K*(J*G))},且①、matrix (Matrix-String = string (Matrix-Vector = J氺G))=
{(265,334) (271,242) (296,257) (300,246) (300,246) (299,244) (345,280) (326, 233) (357, 267) (326, 218) (365, 272) (376, 272) (360, 242)(352,195)(406, 277)(381,197) (422,264) (403,183) (302,423)(322,316)(345,349)(346,298)(351,304)(347,298)(409, 298)}禾P {(5、5、6、6)(18、7)}} ②、由①计算K* (J*G)得f (Matrix-OP = K* (J*G)) = 846 计算Em = Cm-f (Matrix-OP = K*(J*G)) = 850-846 = 4,即得明文M = 4,且该值
等于待加密值。
其中 本发明实施例根据1和步骤(1) 、 (2)及(3),该矩阵向量的运算基准和基本运算 如图2所示。 图2中该矩阵向量BioTPM[N]以P禾P D俩点为运算基准(运算基准点P和运算 基准方向点D构成PD运算基准),按位移步长Move[N]和旋转步长Round [N]、且按作1次 (即MRNumber[N] = 1)位移和旋转,该矩阵向量经基本运算其结果是BioTPM[N+l]。
本发明实施例根据l和步骤(1)、 (2)及(3),该矩阵向量的第N轮运算如图3所 示。 图3中输入该矩阵向量BioTPM[N] (17)和基本运算次数MRNumber [N]、位移步 长Move[N]和旋转步长Round[N] (18),按运算表达式f(BioTPM[N], Move[N], Round[N], MRNumber [N]) (19),作MRNumber [N]次循环基本运算(20),每作 一 次基本运算后作MRNumber[N]-l(21)操作, 一直检查到MRNumber [N] = 0(22)完成循环基本运算,并输出基 本运算结果BioTPM[N+l] (23)。 本发明实施例根据1和步骤(1) 、 (2) 、 (3) 、 (4)及(5),该矩阵向量的K轮运算如 图4所示。 图4中首先是通过(24) 、 (25) 、 (26) 、 (27) 、 (28) 、 (29)完成初始化,包括初始化 输入该矩阵向量BioTPM[N]和基本运算次数MRNumber[N]、位移步长Move[N]和旋转步长 Round [N],然后通过(30) 、(31) 、(32) 、(33)完成第N轮该矩阵向量运算,包括按运算表达式 f (BioTPM [N] , Move [N] , Round [N] , MRNumber [N]),作MRNumber [N]次循环基本运算,每作一 次基本运算后作MRNumber [N] -1操作, 一直检查到MRNumber [N] = 0完成循环基本运算,并 输出基本运算结果BioTPM[N+l],最后通过(34)、 (35)、 (36)完成K轮该矩阵向量运算,包 括把完成了第N轮运算的该矩阵向量作为新K轮运算的起始运算矩阵向量,从而进行新的 N = K = K+l轮矩阵向量运算,直到完成设定的K轮运算把运算结果输入BioTPM[K+l],即 BioTPM[K+l] = BioTPM[N+l]。由此实现(38)K轮运算表达式BioTPM[K+l]=fK(BioTPM[K], Move[K] , Round[K] , MRN咖ber[K]) = K*BioTPM[l]。 本发明实施例根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9) 、 (10)、 (11)、(12)及(13),计算设定K的矩阵向量G[K] = (G1[K],G2[K], *"}及其运算参数,如 图5所示。 图5中通过(39)G[1] = (Gl[l], G2[l]'}初始化(40)G[K] = {G1 [K], G2[K],…h通过G[K]的子集(41)G1[K]和(42)G2[K]的进行(43)运算获取Move[K]= f(Matrix-0P = Gl[K])、Round[K] = f(Matrix—0P = G2[K])、MRNumber[K] = f(Matrix—0P =(G1[K], G2[K])),以此进行一轮矩阵向量运算,包括按运算表达式f(BioTPM[N], Move [N] , Round [N] , MRNumber [N]),作MRNumber [N]次循环基本运算,每作一次基本运算后 作MRNumber [N] -1操作, 一直检查到MRNumber [N] = 0完成循环基本运算,并输出基本运算 结果BioTPM[N+l],进而把完成了第N轮运算的该矩阵向量作为新K轮运算的起始运算矩 阵向量,从而进行(44)新的K+1轮矩阵向量运算,直到完成(46)设定的K轮运算并把运算 结果输入BioTPM[K+l],即通过BioTPM[K+l] = BioTPM[N+l]完成该K轮该矩阵向量运算 (45) BioTPM [K+l] = fK (BioTPM [K] , Move [K] , Round [K] , MRNumber [K]) = K*BioTPM[l],且 通过G1[K+1] =BioTPM[K+l]或G2[K+1] = BioTPM[K+l]获取(47)G1[K+1]禾PG2[K+1]完 成(48)G[K+l] = {G1[K+1], G2[K+1], ...}。 需要指出的是本发明者特别采用指纹模式识别技术,对由G及W、 J*G、 J*W、 K*(J*G)模式识别认证该发布人的指纹生物特征进行了编程验证,结果证明是切实可行的。
从而说明尽管string (Matrix-Vector = G) 、 string (Matrix-Vector = W)、 string (Matrix—Vector = J*G)禾口 f (Matrix_0P = J*W) 、f (Matrix_0P = K*(J*G))各不相 同,但该W、 J*G、 J*W、K* (J*G)矩阵向量所包含生物特征点的拓扑结构与G却相同,由此使该 发布公钥既包含表征发布人生物特征点拓扑结构信息、以此可认证该发布人的生物特征, 又可凭借发布公钥和隐藏私钥依此公开地构建安全通信通道,有利于构筑基于发布人公钥 可信认证的安全通信通道。 从而完全实现本发明一种基于生物特征点拓扑结构的非对称加(解)密方法所要 达到的目的。
权利要求
本发明方案的技术特征包括,设定基于生物特征点拓扑结构的非对称加(解)密模式;设定该非对称加(解)密模式中描述生物特征点拓扑结构的数据,为基于该生物特征点拓扑结构的矩阵向量;设定该矩阵向量的元素集合是设定坐标系下基于该生物特征点坐标参数的集合;设定该集合的指定生物特征点坐标参数为该矩阵向量的运算基准,该运算基准包括运算基准点和运算基准方向点,设定具有指定运算基准的矩阵向量为起始运算矩阵向量;设定矩阵向量的基本运算是把该矩阵向量作为该运算的起始运算矩阵向量,并对该矩阵向量按设定运算基准的设定位移、旋转值进行位移、旋转的运算;设定矩阵向量的某一轮运算是把该矩阵向量作为该轮运算的起始运算矩阵向量,并对该矩阵向量按该轮运算所设基本运算次数进行位移旋转的该一轮所设次基本运算,其中该一轮所设次即该一轮所设基本运算次数,该一轮运算所设每次基本运算的位移、旋转值是该一轮运算所设位移、旋转步长;设定矩阵向量的若干轮运算是把该矩阵向量作为该若干轮运算的起始运算矩阵向量,并对该矩阵向量按所设若干轮、以及每轮所设基本运算次数、再及每次基本运算所设位移步长和旋转步长进行位移旋转的该若干轮所设轮次基本运算,其中该若干轮所设该若干次数值是该若干轮所设轮次;设定加密包括首先把解密方公开的起始运算矩阵向量和经其私设轮次运算过的起始运算矩阵向量作为加密方运算的起始运算矩阵向量,并对该俩矩阵向量按加密方私设轮次进行该轮次运算,然后把该后者运算结果编码值和待加密值相加,计算该俩值之和作为加密信息值与前者一起发送给解密方;设定解密包括首先把加密方所公开且经其私设轮次运算的起始运算矩阵向量作为解密方运算的起始运算矩阵向量,并对该矩阵向量按解密方原私设轮次进行该轮次运算,然后把该运算编码值减去加密方所发送来的加密信息值,计算该俩值之差作为解密信息值,且该值等于该待加密值。
2. 根据l,该特征还包括其实现的步骤(1)、 (2)、 (3)、 (4)、 (5)、 (6)、 (7)、 (8)、 (9)、 (10)、 (11)、 (12)、 (13)、 (14)、 (15)、 (16)。
3. 步骤(1)的特征在于根据l,设定该基于生物特征点拓扑结构的非对称加密模式可 以是C = {string (Matrix-Vector = J*G) ,Cm = [f (Matrix-0P = J*W)+M]},解密模式可以 是E = {matrix (Matrix-String = string (Matrix-Vector = J*G)) ,Em = Cm_f (Matrix_0P =K*(J*G))};定义A是本发明矩阵向量运算符、G和W是解密方公开的起始运算矩阵向量、 J是加密方为设定矩阵向量运算轮次所设的私设轮次值(即加密私钥)、K是解密方为设定 矩阵向量运算轮次所设的私设轮次值(即解密私钥)、J*G、 J*W是使用J对G和W进行*运 算、W(,G)是使用K对(J*G)进行*运算、string (Matrix-Vector = J*G)是先使用J对 G进行*运算然后对包括运算基准的该,G进行数字串编码的操作、matrix (Matrix-String =string (Matrix—Vector = J氺G))是还原string (Matrix—Vector = J氺G)为i亥失巨P车向量 的反操作、f (Matrix-OP = J*W)和f (Matrix-OP = K*(J*G))是对该矩阵向量进行相关*运 算及散列法运算编码、M是待加密值、Cm是加密方计算f (Matrix-OP = J*W)与M俩值之和 作为加密信息值、Em是解密方计算Cm与f (Matrix-OP = K*(J*G))俩值之差作为解密信息 值。
4. 步骤(2)的特征在于根据l和步骤(l),设定该非对称加密模式中的G,为基于生物 特征点拓扑结构矩阵向量;设定G可以是基于指纹特征点拓扑结构的矩阵向量,也可以是 基于人脸面相特征点拓扑结构的矩阵向量;G的子集Gl和G2可以分别是该指纹特征点拓 扑结构的端点和叉点矩阵向量,也可以分别是该人脸面相眼部和嘴部特征点拓扑结构的矩阵向量;设定G的元素集合可以是设定直角坐标系下基于该生物特征点坐标参数(xGn,yGn) 的集合,其中n是G的元素数;设定G包括子集Gl和G2,其中①Gl是(xGlm,yGlm)的集合、 该m是Gl的元素数,②G2是(XG2m' , yG2m')的集合、该m'是G2的元素数;设定Gl和 G2的指定生物特征点坐标参数为该矩阵向量的运算基准,设定该运算基准所包括运算基准 点为P和运算基准方向点为D,设定Gl [1]和G2 [1]是Gl和G2具有指定运算基准PD的起 始运算矩阵向量。
5. 步骤(3)和(4)的特征在于根据l和步骤(1)及(2),步骤(3)设定BioTPM[N]为起 始运算矩阵向量、N为大于零的整数(其中N二 1、2、…、N) 、PD为运算基准、MRNumber [N] 为基本运算次数、Move[N]为位移步长、Round[N]为旋转步长;设定该矩阵向量的基本运算 是设定MRNumber[N]等于1且把BioTPM[N]按PD的Move[N]和Round[N]数值各进行一 次位移、旋转的运算;设定该矩阵向量的某一轮运算为第N轮运算,设定该矩阵向量的第N 轮运算是设定MRNumber[N]大于1且把BioTPM[N]按PD的Move[N]和Round[N]数值进 行位移、旋转的MRNumber [N]次基本运算;设该第N轮轮运算结果值为BioTPM[N+l]、且该 BioTPM[N+l]由该第N轮的MRNumber [N]次基本运算结果赋值获取,则可把该第N轮运算 用函数表达式表示,艮卩:BioTPM[N+l] = f(BioTPM[N], Move[N], Round[N], MRNumber[N]), 其中MRNumber [N] > 1,当MRNumber [N] = 1则该式即为该矩阵向量的基本运算函数表 达式;步骤(4)设定G[N]及子集G1[N]和G2[N]的第N轮运算,还包括根据步骤(3)分 别把Gl [N]或G2[N]代入BioTPM[N] 、 Gl [N+l]或G2[N+1]代入BioTPM[N+l],连同把 Move[N] 、 Round[N] 、 MRNumber [N]代入BioTPM[N+l] = f (BioTPM[N] , Move[N] , Round[N], MRNumber[N]),进行该第N轮运算,把经该轮运算的相关结果分别赋值给G1[N+1]或 G2[N+1],从而由获取子集G1[N]和G2[N]的值获得该G[N+1]值。
6. 步骤(5)和(6)的特征在于,根据1和步骤(1)、 (2)、 (3)及(4),步骤(5)设定该 矩阵向量的若干轮运算为K轮次运算,设定起始运算矩阵向量是BioTPM[l],根据步骤(3) 对BioTPM[l]进行第l轮运算,该矩阵向量的第l轮运算结果值为BioTPM[2],同理经过 第K轮运算该矩阵向量第K轮运算结果值为BioTPM[K+l];由此定义该矩阵向量的K轮次 运算是根据步骤(3)把BioTPM[l]进行由第1轮运算连续到第K轮运算;经过K轮次运 算该矩阵向量的K轮次运算结果值为BioTPM[K+l];把该K轮次运算用函数表达式表示, 即:BioTPM[K+l] = fK(BioTPM[l],Move[l],Round[l],MRNumber[l]),定义fK(BioTPM[l], Move[l], Round[l], MRNumber[l])可表示为K*BioTPM[l],其中*是步骤(1)所定义; 即BioTPM[K+l] =K*BioTPM[l];步骤(6)还包括根据步骤(5),设定G或Gl或G2的K 轮次运算,包括分别把G1 = Gl[l]和G2 = G2[l]代入BioTPM[l]、 G1[K+1]或G2[K+1] 代入BioTPM[K+l],由K二 1、2、3、4、…、K,连同Move [K] 、 Round [N] 、 MRNumber [N]代入 BioTPM[K+l] = fK(BioTPM[K] , Move[K] , Round[K] , MRNumber[K]) = K*BioTPM[l],即经该 K轮运算可得BioTPM[K+l] = K氺BioTPM[l],也即分别得Gl[K+l] =K*G1[1]或G2[K+1]= K氺G2[1],从而得G[K+1] = {G1[K+1],G2[K+1], ...} = {K*G1 [1] , K*G2 [1] , ...} =K*G[1]。
7. 步骤(7)的特征在于,设定W二I^G、 J*W、J*G、K*(J*G)的运算,包括根据l和步骤 (1) 、 (2) 、 (3) 、 (4) 、 (5)及(6),①设定W = K*G、 Wl = K*G1、 W2 = K氺G2,可得W = K*G[1] =K*{G1[1], G2[l]' ...} = {K*G1[1], K*G2[1], ...} = {W1,W2,…1;②设定,W二 J*{(W1), (W2), ...} = {(J*W1), (J*W2), ...};③设定J*G = J*G[1] =J*{G1,G2, ...}=KJ*G1), (J*G2), ...};④设定K氺(,G) =K*{(J*G1), (J*G2) , ...} = {(K*(J*G1)), (K*(J*G2)),…)。
8. 步骤(8)和(9)的特征在于,根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6)及 (7),步骤(8)设定string (Matrix-Vector)禾口 matrix (Matrix-String),包括设定 string (Matrix-Vector)包括把括弧内Matrix-Vector对象按string规则进行编码, 设定Matrix-Vector对象组成包括该矩阵向量、还包括该运算基准,设定string编码规 则可以是按从左到右从上到下的顺序把Matrix-Vector进行编码、且使之串接成为该 集合元素的数字串,设定串接可以是按运算基准、矩阵向量的顺序排列连接为串;设定 matrix (Matrix-String)包括把括弧内Matrix-String对象按matrix格式进行还原,设 定该Matrix-String对象组成包括该矩阵向量数字串、还包括该运算基准数字串,设定 matrix还原格式可以是按从左到右从上到下的顺序把Matrix-String进行还原,包括把运 算基准数字串与矩阵向量数字串分开,包括把二者还原为特征点坐标参数;步骤(9)还包 括根据步骤(8)设定f (Matrix-OP = J*W)或f (Matrix-OP = K*(J*G))运算编码,包括设 定散列法是f (XORM),且设定f (Matrix-OP = (J*W))或f (Matrix-OP = (K*(J*G)))是该子 集的f(X0RM)运算,该运算包括把括弧内Matrix-OP = (J*W)或(K*(J*G))按设定f(XORM) 进行各子集异或散列的运算,该运算值即该编码值。
9. 步骤(10)、 (11)和(12)的特征在于,根据l和步骤(1)、 (2)、 (3)、 (4)、 (5)、 (6)、 (7) 、(8)及(9),步骤(10)设定该第N轮运算的基本运算次数(即MRNumber[N])、位移步长 (即Move[N])、旋转步长(即Round[N])可以与步骤(4)所设Gl [N] 、G2[N]映射相关,且该 映射相关包括可以设定Move[N]是G1[N]的函数、Round[N]是G2[N]的函数、MRNumber[N] 是G1[N]和G2[N]的函数,即①Move[N] = f (Matrix-0P = G1[N]),②Round[N]= f (Matrix-0P = G2[N]),③MRNumber[N] = f (Matrix-0P = (Gl [N] ,G2[N]));步骤(11)设 定f (Matrix-0P = Gl [N])或f (Matrix-0P = G2 [N])或f (Matrix-0P = (Gl [N] , G2 [N])) 运算,还包括根据步骤(10),设定散列法是f(X0RM),且设定f(Matrix-0P = G1[N])或 f (Matrix-0P = G2[N])或f (Matrix-0P = (Gl [N] , G2[N]))是该子集的f (XORM)运算,该 运算包括把括弧内Matrix-OP = (G1[N])或(G2[N])或(Gl [N] , G2[N])按设定f(XORM) 进行子集各自元素纵横坐标异或散列的运算;步骤(12)还包括根据步骤(10)和(ll),设 定Move[N] 、 Round[N] 、 MRNumber[N]映射相关值的计算,包括①首先由Gl = Gl [1]和G2 =G2[1]计算f(Matrix-OP = Gl[l])、 f(Matrix-0P = G2[1])、 f(Matrix-OP = (Gl[l], G2[1]));②将G1[1]和G2[1]分别代入BioTPM[l]、G1[2]和G2[2]分别代入BioTPM[2],连 同Move[l] = f (Matrix-0P = Gl[l])、 Round[N] = f (Matrix—0P = G2 [1]) 、 MRNumber [N] =f (Matrix-0P = (Gl[l], G2[1]))代入BioTPM[2] = f (BioTPM[l] , Move[1] , Round[l], MRNumber [1])经该第1轮运算,分别得Gl [2]和G2 [2]的值,由此获得Move [2]= f(Matrix-OP = Gl[2])、Round[2] = f(Matrix-0P = G2[2])、MRNumber[2] = f(Matrix-OP =(G1[2],G2[2]));③由N = 2、3、4、…N,将G1[N]和G2[N]分别代入BioTPM[N] 、Gl [N+l] 和G2[N+1]分别代入BioTPM[N+l],连同Move[N] = f(Matrix-0P = Gl [N]) 、Round[N]f = (Matrix-OP = G2 [N]) 、MRNumber [N] = f (Matrix—0P = (Gl [N] , G2 [N]))代入BioTPM[N+l] =f (BioTPM[N] , Move [N] , Round [N] , MRNumber [N])经该第N轮运算,分别得Gl [N+l] 和G2[N+1]的值,由此计算获得Move[N+l] = f(Matrix-0P = G1[N+1])、 Round[N+l]=f (Matrix-OP = G2 [N+l]) 、 MRNumber [N+l] = f (Matrix—OP = (Gl [N+l] , G2 [N+l]))。
10.步骤(13)、 (14)、 (15)和(16)的特征在于,根据l和步骤(1)、 (2)、 (3)、 (4)、(5)、 (6)、 (7)、 (8)、 (9)、 (10)、 (11)及(12),步骤(13)计算设定K的G[K] = {Gl [K],G2[K],}及其运算参数,包括;①计算设定f (Matrix-OP = G1[K])、 f (Matrix-OP =G2 [K]) 、 f (Matrix-OP = (Gl [K] , G2 [K]))和Move [K] 、 Round [K] 、MRNumber [K],②计算设定K禾口 J值相关Wl、 Wl、 Gl、 G2的矩阵向量运算,③计算设定string (Matrix-Vector = G、 W、J*G),④计算设定matrix (Matrix-String = string (Matrix-Vector = G、W、 J*G)),⑤计算设定f (Matrix-OP = J*W) 、 f (Matrix-OP = K*(J*G))且前后二值相等;步骤(14)还包括根据步骤(13)发布string (Matrix-Vector = G)和string (Matrix-Vector = W),隐藏私钥K;步骤(15)还包括根据步骤(13)和(14),设定待加密值M、计算及发送加密信息C二{string (Matrix-Vector = J*G) , Cm = [f (Matrix-OP = J*W)+M]},隐藏私钥J ;步骤(16)还包括根据步骤(13) 、 (14)和(15),计算及解密Em = Cm-f (Matrix-OP = K*(J*G))获M,且该值等于该待加密值。
全文摘要
本发明基于生物特征点拓扑结构的非对称加解密方法尤其涉及基于生物特征点拓扑结构的非对称加(解)密技术领域。本发明的目的是提供一种基于生物特征点拓扑结构的非对称加(解)密方法,技术特征包括,设定该基于生物特征点拓扑结构的非对称加(解)密模式;设定该基于该生物特征点拓扑结构的矩阵向量;设定该起始运算矩阵向量;设定矩阵向量的基本运算;设定矩阵向量的某一轮运算;设定矩阵向量的若干轮运算;设定加密模式包括对该矩阵向量按加密方私设轮次进行该轮次运算,然后把该运算结果编码值和待加密值相加作为加密信息值发送给解密方;设定解密模式包括对该矩阵向量按解密方原私设轮次进行该轮次运算,然后把该运算编码值减去加密方所发送来的加密信息值作为解密信息值。使用该方法依此发布公钥和隐藏私钥,既可公开地构建安全通信通道,又可认证该发布人的生物特征,从而有利于构筑基于发布人公钥可信认证的安全通信通道。
文档编号G06K9/00GK101777977SQ20091009529
公开日2010年7月14日 申请日期2009年1月8日 优先权日2009年1月8日
发明者李虹 申请人:李虹
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1