基于点集拓扑的非对称加解密方法

文档序号:7703226阅读:226来源:国知局
专利名称:基于点集拓扑的非对称加解密方法
技术领域
本发明涉及离散数学及点集拓扑学,也涉及密码学及其非对称加(解)密技术,还
涉及模式识别技术,尤其涉及基于点集拓扑的非对称加(解)密方法。
背景技术
发明专利申请受理号200910095294. X公开了一项发明。该发明的内容是提供一 种基于生物特征点拓扑结构的非对称加(解)密方法。使用该发明所提供的方法,可产生 包含表征发布人生物特征点拓扑结构信息的公钥,且凭借发布公钥和隐藏私钥依此既可公 开地构建安全通信通道,又可认证该发布人的生物特征,从而有利于构筑基于发布人公钥 可信认证的安全通信通道。 基于生物特征点的拓扑结构是基于点集拓扑的一个实例。与此类似,很多事物图 像的特征也可被抽象成为基于该特征点的点集拓扑,例如也可以把签名笔迹的图像特征、 盖章图章印痕的图像特征等抽象成为基于该特征点的点集拓扑。由此本发明人萌发基于 点集拓扑的数学抽象特性及其数学理论基础,发明基于点集拓扑的非对称加(解)密方法。

发明内容
本发明的目的是提供一种基于点集拓扑的非对称加(解)密方法,使发明专利申 请受理号200910095294. X所公开的发明(即基于生物特征点拓扑结构的非对称加解密方 法),扩展为本发明基于点集拓扑的非对称加解密方法,从而使其更具一般性和普适性。
为了实现本发明目的,本发明方案的技术特征包括, 1、设定基于点集拓扑的非对称加(解)密模式;设定该模式的点集拓扑数据是 基于点集拓扑的矩阵向量,包括设定该矩阵向量的元素集合是设定坐标系下基于该点集坐 标参数的集合及其指定子集,还包括设定该矩阵向量的基准包括该向量基准点和基准方向 点,其中该向量基准点和基准方向点是该集合指定元素点的坐标参数;设定该矩阵向量的 轮运算包括设定该运算次数的(矩阵向量的)基本运算,即包括设定该矩阵向量的基本运 算是该矩阵向量基准上基于环代数结构的代数系统,设定该矩阵向量其乘加元素值的运算 是该子集元素基于域代数结构的代数系统,包括设定该环代数结构的加法和乘法可以是基 于该矩阵向量基准上的设定位移和旋转,包括设定该位移和旋转量及该运算次数可以是该 子集元素模或异或元素的域运算,其中设定位移和旋转量即设定位移和旋转步长,设定运 算次数即设定按位移和旋转步长进行位移和旋转的次数;设定该矩阵向量的轮次运算操作 包括把(矩阵向量的)所有轮次的轮运算映射设定为点的二元加法群,即包括设定该(矩 阵向量的)所有轮次基于轮运算映射点的全部解连同不运算点构成基于加法群代数结构 的代数系统,包括把该矩阵向量的一个轮运算设定为一个映射点的解,把该矩阵向量的下 一个轮运算设定为下一个映射点的解,设定该点和该下一点是该矩阵向量连续俩轮运算的 相邻映射点,设定该点到下一个点的运算是该点对自己加一轮次的运算,设定该轮运算原 始的矩阵向量为起始运算矩阵向量,设定起始运算矩阵向量所映射的起始点为基点,设定该点到下若干个点的运算是该点对自己加若干轮次的运算,设定该点到不运算点的运算是 该点对自己加零轮次的运算,其中该不运算点是该原像不进行轮运算的映射点,该不运算 点为该加法群的零元;设定加密包括首先把解密方公开的起始运算矩阵向量和经其私设轮 次运算过的起始运算矩阵向量作为加密方运算的起始运算矩阵向量,并对该俩矩阵向量按 加密方私设轮次进行该轮次运算,然后把该后者运算结果编码值和待加密值相加,计算该 俩值之和作为加密信息值与前者一起发送给解密方;设定解密包括首先把加密方所公开且 经其私设轮次运算的起始运算矩阵向量作为解密方运算的起始运算矩阵向量,并对该矩阵 向量按解密方原私设轮次进行该轮次运算,然后把该运算编码值减去加密方所发送来的加 密信息值,计算该俩值之差作为解密信息值,且该值等于该待加密值。 2、根据l,该特征还包括其实现的步骤(1) 、 (2) 、 (3) 、 (4) 、 (5) 、 (6) 、 (7) 、 (8) 、 (9)、 (10) 、 (11) 、 (12) 、 (13) 、 (14) 、 (15) 、 (16)。以下即该步骤:
(1)设定基于点集拓扑的非对称加(解)密模式
根据1 ,包括设定该加密模式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))},
其中定义 G和W是解密方公开的起始运算矩阵向量、该矩阵向量的设定实现是步骤(2)、
(4) 、 (6) 、 (7), J是加密方为设定矩阵向量轮次运算操作次数所设的私设轮次值(即加密私钥),
K是解密方为设定矩阵向量轮次运算操作次数所设的私设轮次值(即解密私钥),
*是本发明矩阵向量的轮次运算操作符、该运算符的设定实现是步骤(5),
J*G、 J*W是使用J对G禾P 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的子集G1和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, "*},其中
①、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 = {(xG2i, yG2》(xG22, yG22)…(xG2(m 4), yG2(迈,")(^2迈,,yR, )}或 G2 = KxG2迈,,yG2迈,)|m' =1,2,3,…,m' -l,m' h其中m'是G2的元素数,
上述Gl和G2的元素数之和应小于等于G的元素数,即m+m'《n ;
设定G1和G2的基准包括设定该集合俩指定元素点的坐标参数为该基准的向量基 准点为P和基准方向点为D,设定Gl[l]和G2[1]是G1和G2的起始运算矩阵向量;
(3)设定BioTPM[N+l] = f (BioTPM[N] , Move[N] , Round[N] , MRN咖ber[N])
根据l和步骤(1)及(2),设定该矩阵向量的轮运算包括设定该矩阵向量的基本运 算是该矩阵向量基准上的基于环代数结构的代数系统,设定该矩阵向量其乘加元素值的运 算是该子集元素基于域代数结构的代数系统,包括可以设定BioTPM[N]为起始运算矩阵向 量、N为大于零的整数(其中N二 1、2、…、N)、PD为运算基准、MRNumber[N]为基本运算次 数、Move[N]为位移步长、Round[N]为旋转步长;设定起始运算矩阵向量BioTPM[N]的基本 运算可以是BioTPM[N]基准PD上基于Move[N]位移和Round[N]旋转的环加和乘,即设定 MRNumber[N]等于1且把BioTPM[N]按PD的Move[N]和Round [N]数值各进行一次位移、旋 转的运算;设定该矩阵向量BioTPM[N]的轮运算为第N轮运算,设定该矩阵向量的第N轮运 算是设定MRNumber[N]大于1且把BioTPM[N]按该环设定的Move[N]和Round[N]数值进 行PD上位移、旋转的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)、 (12); (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]
8或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)设定K*BioTPM[l] = BioTPM[K+l] = fK(BioTPM[l] , Move[l] , Round[l], MRNumber [l]) 根据1和步骤(1) 、 (2) 、 (3)及(4),设定矩阵向量的轮次运算操作(即符号*所设 定的操作)包括设定所有轮次基于(矩阵向量的)轮运算映射点的全部解连同不运算点构 成基于加法群代数结构的代数系统,即包括设定基点为g,设定g的不运算点即零元为0g、 设定g到0g的运算是g加0轮次的运算、即g+0g = g,设定g的下一点为2g、设定g到2g 的运算是g加1轮次的运算、即g+lg = 2g,设定g的下二个点为3g、设定g到3g的运算是 g加2轮次的运算、即g+2g = 3g,设定g的下若干个点为(k+l)g、设定g到(k+l)g的运算 是g加K轮次的运算、即g+kg = (k+l) g、其中K = k,从而设定该点集的二元加法群;
例如可以设定起始运算矩阵向量BioTPM[l]是该映射基点g的原像,设定 K*BioTPM[l]是BioTPM[l]的K*轮次运算操作,包括设定该操作是根据步骤(3)对 BioTPM[l]进行第1轮运算,该矩阵向量的第1轮运算结果值为BioTPM[2],同理经过第K轮 运算该矩阵向量第K轮运算结果值为BioTPM[K+l],则可设定BioTPM[K+l]的映射点(k+l) g,即g+kg = (k+l)g为该轮次运算操作的二元群加结果值;
若设定该轮次运算操作过程可用函数表达为
fK(BioTPM[l],Move[l],Round[l],MRNumber[l]) = BioTPM[K+l],
其中该轮次运算操作的Move[l] 、Round[1] 、MRNumber[1]设定是步骤(10) 、 (11)、 (12); 则该映射可表示为 (k+l)g :K*BioTPM[l] = BioTPM[K+l] = fK(BioTPM[l] , Move [1] , Round[l], MRNumber[1]), 同理也可设定J*BioTPM[l] : (j+l)g的类似映射表示,还可扩展设定 、K*(J*BioTPM[l])是BioTPM[l]加J轮次的运算再加K轮次的运算,该映射为 (k+j+l)g :K*(J*BioTPM[l]), @、J*(K*BioTPM[l])是BioTPM[l]加K轮次的运算再加J轮次的运算,该映射为
(j+k+l)g :J*(K*BioTPM[l]),其中(k+j+l)g :K*(J*BioTPM[l]) = (j+k+l)g :J*(K*BioTPM[l]);
类似可扩展更多*加轮次运算的设定,其中*是步骤(1)所定义;
(6)设定G及子集Gl和G2的K*轮次运算 根据1和步骤(1) 、 (2) 、 (3) 、 (4)及(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 [K]、 MRNumber[K]进行K轮BioTPM[K+l]= f(BioTPM[K], Move[K], Round[K], MRNumber[K])运算,从而完成K轮次运算BioTPM[K+l] =fK(BioTPM[l],Move[l],Round[l],MRN咖ber[l]) = 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)的运算 根据1和步骤(1) 、 (2) 、 (3) 、 (4) 、 (5)及(6),设定W = K*G、 J*G、 J*W、 K* (J*G)包 括 ①、设定W = K*G、W1 = K*G1、W2 = K氺G2,可得 W = K*G[1] = K*{G1[1],G2[1], ...} = {K*G1 [1] ,K*G2[1] , ...} = {W1,W2, ...}
其中设定W1 = Wl[l]和W2 = W2[l],
又可得W1 = Wl [1] = K*G1 [1] = Gl [K+l]
W2 = W2[l] = K*G2[1] = G2[K+1],
从而可得: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 [1]
又可得J*G1 = J*G1 [1] = Gl [J+l],
J*G2 = J*G2[1] = G2[J+1];④、设定K氺(J氺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氺Gl) 、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 (X0RM)可 以是子集元素模或异或元素基于域代数结构的代数系统,即设定f (Matrix-OP = J*W) 或f (Matrix-OP = K*(J*G))是该子集的f (X0RM)运算,该运算包括把括弧内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)) a 也可以设定异或散列法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]),其中 /(X0RM=W1[J+1)={ jcWl[J+lh④;cWl[J+l]2e @xWl[J+l] JcWl[J+l]m}
{ yWl[J+l],少Wl[J+l]2 0 0少W1[J+1]①yWl[J+l]^》 b、f (XORM = J*W2) = f (XORM = W2[J+l]),其中 / (XORM=W2[J+l]) ={ xW2[J+lh ;cW2[J+l]2@ xW2[J+l] xW2[J+l]m} { ,2[J+1]勿W2[J+1]2 0…"W2[J+1] "W2[J+l]m} 其中 W1[J+1] = KxWl[J+lL,yWl[J+l]》(xWl[J+l]2,yWl[J+l]2) ... (xWl[J+l](m—D,yWl[J+l](迈—J (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)
11
... (xW2[J+l](m, —d, yW2[J+l](m, —d) (xW2[J+l]m, ,yW2[J+l]m, )} ②、设定f (Matrix-0P = K*(J*G))的f (XORM)运算包括 f (Matrix-OP = K* (J*G)) = f (KORM = (K* (J*G1) , 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* (J*G1), K* (J*G2),)) =/(XORM=K* (J*G1)) /(XORM=K* (J*G2)) 其中设定 a、f (XORM = K*(J*G1)) = f (XORM = K*G1 [J+l]),其中 / (X0RM=K*G1[J+1)={ xKXM[J+lhejcK^Gl[J+l]2④… xK*Gl[J+l] xK*Gl[J+l]m} @{ > K*Gl[J+l]i yK*Gl[J+l]2 … _yK*Gl[J+l] (m-D yK*Gl[J+l]m } b、f (XORM = K*(J*G2)) = f (XORM = K*G2 [J+l]),其中
/(XORM=K*G2[J+l])= { ;dOKJ2[J+lh xK*G2[J+l]2 …①;cK^G2[J+l]^-,) @;cK*G2[J+l]m} { yK*G2[J+lh @>;K*G2[J+1]2> K*G2[J+1] (m.P yK*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—1}) (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, —J (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 (X0RM)可以是子集元素模或异或元素基于域代数结构的代数系统,即设定f (Matrix-OP =(G1[N])或(G2[N])或(G1[N], G2[N]))是该子集的f (XORM)运算,该运算包括把括弧 内Matrix-OP = (Gl [N])或(G2 [N])或(Gl [N] , G2 [N])对象按f (XORM = (J*W1) , XORM = (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, jcG1[N〗2 …①jcG1[N] xGl[N]m} { a><H[N〗2 … (m-i) ><31[N]ffl } ②、设定f (Matrix-OP = G2[N])子集的f (XORM)运算可以是 f (Matrix-OP = G2 [N]) = f (XORM = G2 [N]) 其中/(XORM=G2[N]) ={ xG2[N], xG2[N]2 ;cG2[N] ( '.P xG2[N]m-}
{ W2[Nh @jG2[N〗2 @ _Ki2[N](m'.P _yG2[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](迈,—d, yG2[N](迈,—J (xG2[N]迈,,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[1]计算f (Matrix-0P = Gl [1]) 、f (Matrix-0P
=G2[1]) 、 f (Matrix-0P = (Gl [1] , G2[1])),得 Move[l] = f(Matrix-OP = Gl[l])、 Round [N] = f(Matrix-OP = 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]) 、MRNumber [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-0P = G1[N+1])、 Round[N+l]= f (Matrix-0P = G2[N+1]) 、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-0P = G2 [K]) 、 f (Matrix—0P = (Gl [K] , G2 [K]))和Move [K] 、 Round [K]、 MRN咖ber[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)发布string (Matrix-Vector = 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-Vecor = 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)的必须步骤;特别需要指出的是点集拓扑还包括了非生物特征点拓扑, 从而使其更具一般性和普适性,由此完全实现本发明一种基于点集拓扑的非对称加(解) 密方法所要达到的目的。 本发明可以用于电子证书的公钥设置,该证书可以是网络电子证书,也可以是基 于生物特征的电子护照、电子身份证。本发明也可具有采用基于签名、盖章等特征点集拓扑 公钥的非对称加(解)密应用。


本发明有五附图,

如下 图1是本发明实施例流程图。 图2是本发明矩阵向量基准和基本运算示意图。 图3是本发明矩阵向量第N轮运算流程图。 图4是本发明矩阵向量K轮次运算操作(即W定义)流程图。 图5是本发明矩阵向量基于子集K轮次运算操作流程图。
具体实施例方式
实施例 本发明实施例流程如图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包括子集G1和G2
本发明实施例根据1和步骤(1)及(2),设定G是基于点集拓扑的矩阵向量,设定 该向量是基于指纹特征点拓扑结构的矩阵向量,G的子集G1和G2分别是该指纹特征点拓 扑结构的端点和叉点矩阵向量; 设定该元素集合是直角坐标系下基于该指纹特征点坐标参数的集合,设定G = {Gl, G2}为了方便仅使用括号分隔元素且省略各元素之间逗号不写,S卩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 ;
可以指定G的中心点和三角点为子集共同的向量基准点和基准方向点。但为方 便,本实施例分别指定点(xGl5, yGl5)为G1的向量基准点、点(xGl6, yGl6)为Gl基准方向 点,指定点(xG25,yG25)为G2的向量基准点、点(xG26,yG26)为G2基准方向点,设定该Gl [1] 和G2[1]为的起始运算矩阵向量; (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)设定K*BioTPM[l] = BioTPM[K+l] = fK(BioTPM[l] , Move[l] , Round[l], MRN咖ber[l]) 本发明实施例根据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或G1和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+mm' +6162,其中 PDei—e2表示该集合的运算基准位置序号,如PDei—e2 = 5、5、6、6即Gl和G2运算基准点P和运 算基准方向点D为该矩阵向量元素集合的第5个和第6个元素,其中mm'表示集合数字串长度,如mm' = 18、7即Gl和G2集合数字串长度分别是18和7个元素数,其中G1G2是该 矩阵向量元素集合;又如可设定把该Matrix-String数字串反串接编码为矩阵向量对象的 格式是GlG2+PDei—e2+mm',其中G1G2是该矩阵向量元素集合,其中Dei—e2是集合运算基准位 置序号,如PDei—e2 = 5、5、6、6即为Gl和G2运算基准点和运算基准方向点在该矩阵向量中 都是该集合的第5个和第6个元素,其中mm'是集合数字串长度,如mm' = 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 (XORM)运算是步骤(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)町(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-OP = (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]},已编程实现包括计算设 定K = 1、2、3…K的G1[K]、 G2[K], f (G1[K])、 f (G2[K])、 f(Gl[K], G2[K]), Move[K]、 Round [K] 、 MRNumber [K] , Wl、 Wl、 Gl、 G2, string (Matrix-Vector = G、 W、 J*G、 J*W), matrix(Matrix-String = string(Matrix-Vector = G、 W、 J*G)), f(Matrix_0P = 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 = 18Gl[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=lf(Gl[l]) =76f(G2[l]) = 304f (Gl [1] , G2 [1]) =380
Move[l] = 6Round[1] = 4MRN咖ber[1] = 3
m = 18Gl[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 = 2f (Gl [2]) = _495f (G2 [2]) = 47f (Gl [2] , G2 [2]) = -450
Move [2] = 3Round[2] = 7MRN咖ber[2] = 3
m = 18Gl[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 = 3f (Gl [3]) = 457f (G2 [3]) = 302f (Gl [3] , G2 [3]) = 231
Move [3] = 7Round[3] = 3MRNumber[3] = 3
m = 18Gl[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 = 4f (Gl [4]) = 256f (G2 [4]) = _88f (Gl [4] , G2 [4]) = -344
Move [4] = 6Round[4] = 3MRN咖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' =7G2[5] :(406,219) (286,243) (323,183) (266,198) (267,165) (228,179) (211,80)
K = 5f (Gl [5]) = 493f (G2 [5]) = 482f (Gl [5] , G2 [5]) = 15
Move [5] = 3Round[5] = 3MRN咖ber[5] = 5
m = 18Gl[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' =7G2[6] :(62, 235) (154,157) (152,224) (194,183) (209,211) (233,180) (296,256)
K = 6f (Gl [6]) = 65f (G2 [6]) = 168f (Gl [6] , G2 [6]) = 233
Move [6] = 5Round[6] = 8MRN咖ber[6] = 3
m = 18Gl [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' =7G2[7] :(364,309) (251,268) (310,236) (253,221) (270,193) (233,189) (266,99)
K = 7f (Gl [7]) = -416f (G2 [7]) = 166f (Gl [7] , G2 [7]) = -314
Move [7] = 3Round[7] = 6MRN咖ber[7] = 3
m = 18Gl[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' =7G2[8] : (105,74) (217,115) (158,147) (215,161) (199,189) (235,191) (201,280)
K = 8f (Gl [8]) = 274f (G2 [8]) = 269f (Gl [8] , G2 [8]) =31
Move [8] = 4Round[8] = 9MRN咖ber[8] = 3
m = 18Gl [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' =7G2[9] :(127,323)(168,211)(200,270)(214,213)(241,228)(241,194) (330,224)
K = 9f (Gl [9]) = 6f (G2 [9]) = 270f (Gl [9] , G2 [9]) = 264
Move [9] = 6Round[9] = 3MRN咖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)
19(44,258)(135,326)
m' =7G2[10] :(190,42)(265,134)(202,132)(243,173)(217,187)(246,202) (176,264)
K = 10f (Gl [10]) = 22f (G2 [10]) = 237f (Gl [10] , G2 [10]) =251
Move [10] = 3Round[10] = 7MRN咖ber[10] = 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 = llf (Gl[ll]) = 132f(G2[11]) = 74f (Gl [11] , G2[ll]) =206
Move [11] = 3Round[11] = 4MRN咖ber[11] = 6
m = 18Gl[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 = 12f (G1[12]) = 372f (G2 [12]) = 333f (Gl [12] , G2 [12]) =57
Move [12] = 3Round[12] = 3MN咖ber[12] = 7
m = 18Gl [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 = 13f (G1[13]) = 139f(G2[13]) = 260f (Gl [13] , G2[13]) =399
Move [13] = 9Round[13] = 3MRNumber [13] = 9
m = 18Gl [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 = 14f (G1[14]) = 367f (G2[14]) = 448f (Gl [14] , G2[14]) =175
Move [14] = 7Round[14] = 8MRN咖ber[14] = 5
m = 18Gl [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 = 15f (Gl [15]) = 457f (G2 [15]) = 70f (Gl [15] , G2 [15]) = 399
Move [15] = 7Round[15] = 3MRN咖ber[15] = 9
m = 18Gl[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 = 16f (Gl [16]) = 279f (G2 [16]) = 404f (Gl [16] , G2 [16]) =131
Move [16] = 9Round[16] = 4MRN咖ber[16] = 3
m = 18Gl [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 = 17f (G1[17]) = 308f (G2 [17]) = 463f (Gl [17] , G2 [17]) =251
Move [17] = 8Round[17] = 3MRN咖ber[17] = 3
m = 18Gl [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 = 18f (Gl [18]) = 494f (G2 [18]) = 486f (Gl [18] , G2 [18]) =8
Move [18] = 4Round[18] = 6MRN咖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 = 19f (G1[19]) = 422f (G2[19]) = 471f (Gl [19] , G2[19]) =113
Move [19] = 3Round[19] = 3MRN咖ber[19] = 3
m = 18Gl [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 = 20f (Gl [20]) = 205f (G2 [20]) = 46f (Gl [20] , G2 [20]) = 227
Move [20] = 5Round[20] = 6MRN咖ber[20] = 7
m = 18Gl [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 = 21f (G1[21]) = 116f(G2[21]) = 275f (Gl [21] , G2[21]) =359
Move [21] = 6Round[21] = 5MRN咖ber[21] = 9
m = 18Gl[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 = 22f (Gl [22]) = 71f (G2 [22]) = 422f (Gl [22] , G2 [22]) = 481
Move [22] = 3Round[22] = 3MRNumber [22] = 3
m = 18 Gl [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) (301,178) (250,234) (284,172)(229,225)',)(8W60,) (8W60,) (8W60,) (S丄S'98S) (W80,) (9WSTS):[丄Z]Z3
丄=, (柳D (80,'8TS) (S8S
(Z6S'80S) (SSS'9丄S) (9W9SS) (9WTSS) (TW6W
'8ZS) (WOSS) (WOSS) (WOSS) (WOSS) (OmSS) (T8Z'T6Z):[丄Z]T3
8T = ra
丄=[9幻J叫umN顺9 = [9幻P皿o朋=[9幻3A。w 丄,=([9幻K)'[9幻T3)J9ST = ([9幻K))J6丄T = ([9幻T3) J9Z = )!
'8T,) (SSn) (SSS'丄8S) (SSS'丄8S) (SW69S) (ZSS'9丄S) (0TKT6Z): [9Z]Z3
丄=, (862'附)(8SS'n,)(丄6Z
(6SS'S6S) (8W96S) U0S'8丄S) (SW9丄S) (6W(US) (082',9S) (8TC9S) (S8Z'SSS (Z8Z'S,S) (Z8Z'S,S) (Z8Z'S,S) (Z8Z'S,S) (6丄Z'm) (8『282): [92]
8T = ra
8 = [S幻J3q咖N顺8 = [S幻pu呵S = [S幻3A。W 柳='[S幻T3)J8Z = ([SZ]K))J^= ([SZ]T3)JSZ = )I
'09S) (9W,8S) (9,S',8S) (9W,8S) (8WSSS) (6WS8S) (9SZ'丄0S): [SZ]Z3
丄=,
(SW89Z) (6TS'68Z) (0TS'S6Z) (66Z'SW) (06Z'9SS
'S0S) (9W6SS) (9W6SS) (9W6SS) (W8SS) (992'm) (W68Z):
8T = ra
S =[招]J3qumNaW,=[招]punojjs =[招]3aow T6T ='[招]T3)J招T =([招]K))JS6T =([招]T3)J招二)!
'6測UWS8S) (SWT8S) (8W丄9S) (owm): [M化3
丄=, (9TZ'9測(982'附)(6M
(66Z'T^) (TW8丄S) (69Z',8S) (S6Z'66S) (,6Z'06S) (88Z'6丄S) (99Z'TSS
(W9SS) (W9SS) (W9SS) (9W80S): [M]
8T = ra
,=[S幻J3qum朋亂=[S幻P皿o砂=[S幻3A。W 附='[S幻T3)J^ = ([SZ]K))J,SS= ([S幻T3)逗二)!
'靴)UW9丄S) U『S丄S) UW9丄S) (6TS'n,) UW丄6S) (W86,) [SZ]Z3
丄=,
(附 S6S0] Z6S0]
L6S0] 06S0] 68S0] 88S0]
98S0]
顺)
S8S0] 柳0] S8S0] 孤0] (跳 L8S0] 08S0]
(冠
6"0] 8"0] HS0] 9"0]
;潘)
wso] "so] o"o]
(柳
69S0] 89S0]8T = ra
S= '[TS]T3)孤=([TS]K))JZS= ([TS]T3)JTS = )!
'湖(06S'丄測(06S'丄測(06S'湯)(,8m,) U8C) (m'0,S): [TS]Z3
丄=, (■,) (W卿U8S
(,6S'SZS) (6SS'S8S) (SSS'09S) (69S'6SS)(MS'S9S) (OSS'OSS) (6WZ9S 'OSS) (8WS9S) (8WS9S) (8WS9S) (8WS9S) UW,9S) (66Z'WS): [TS]T3
8T = ra
9 =
j叫umN顺9 = [OS]P皿ojK = [OS]3aow 9= ([OS]K)'[OS]T OJ9, = (
Z3)J0,= (
T3)J0S = )!
'6T,) (98S'S測(98C (98C (8丄C (08C : [OS] 23
丄=, (潘'06S) (98S
(,6S'0ZS) (8SC8S) (Z9S'9SS) (ZWS9S) (6WSM) (SW8SS
,'6SS) ,'6SS) ,'6SS) (,'6SS) (TW09S) (Z6Z'80S): [OS]
8T = ra
S = [6幻"qumN顺9 = [6幻P皿o^U = [6幻3a。w T9 = ([6幻K)'[6幻T3)J98 = ([6Z]K))JZ0T= ([6幻T3) J6Z = )!
'丄T,) (6WW,) (6WW,) (6WW,) (88S'TC) (98S'H,) (SWSOS): [6Z]Z3
丄=,
(,招'S6S) (08Z'8ZS) (S8Z'丄SS) (0W6丄S) U0S'6^;) (68Z'69S)
(6TS',SS) (8,C): [6Z]T3
8T = ra
TH = ([8幻K)'[8幻T3)J09 = ([8幻K))JT6T = ([8幻T3) J8Z = )!
'08S) (9丄m,) (9丄C (9丄m,) (9SS'6T,) (9丄S'6T,) (S8Z'柳)[8Z]Z3
丄=, (8W89Z) (S8Z'的Z) USS (SWT8Z) (TW8TS) (nS'OZS) (68Z'80S) (T6Z'WS) (OWSW) (66Z'9ZS)
(W6SS) (09Z'88S): [82]
8T = ra
S =[丄幻J3qum朋亂=[丄幻pu呵S =[丄幻3a。W
0酬
宦) (附
附o]
CT
窗) (M
60W)]
mo]
90W)] (孤 SOW)]
柳o]
;卿
(962 SOW)] 0]
LOW)] OOW)]
66S0] 86S0] 窗) (962 A6S0] 96S0] S6S0] 柳0]丄=[SS]J3qum朋亂=[SS]P皿ojk = [SS]3aow ZZT= '[SS]T3)JZTZ = ([SS]K))Jm = ([SS]T3)JSS = )I
'SS,) (TO,',计)(TOK计,)(TOK,计)(S6S'8W) (TOK计,)(SW96S): [SS]Z3
丄=,
(69S'SZS) (89S'Z8S) (8SS'丄,S) (6W08S) UW99S) (6W08S
'89S) (8W08S) (8W08S) (8W08S) (8W08S) (8W08S) (86Z'8SS):
8T = ra
9 = [,C阔皿=[,S]pu呵S = [W]3a0w 9丄=(閱^)'閱13)扁=(閱^));22=(閱13)讽=)!
U6S'0计)U6S'0,,) "6S'0," (S0,'9计)U6S'0,,) (8W8狄)[M]Z9
丄=, (6SZ'68S) W野)(T8Z (6in) (9TS'W) (8TC) UWT6S) (9WUS
'68S) (9Sd丄S) (6W66S):
8T = ra
9 = [SS]j叫umN顺S = [SS]P皿o^ = [SS]3aow 99= '[SS]T3)JS, = ([SS]K))JTn = ([SS]T3)JSS = )!
'TS,) (Z6CC) (Z6CC) (Z6CC) (,0,'6Z,) (Z6S'ZC) (9W98S): [SS]Z3
丄=, (90S'6种)(6SS,) (9TS (69CC) (W潘)(9W96S)(靴'n,) (ZW9丄S) WT6S)
'丄8S) (6WS,S): [SS]T3
8T = ra
'柳(T6S'0S,) (T6S'0S,) (T6S'0測(06S'附)(S6d,) (T6S'6ZS): [ZS]Z3
丄=,
(09Z'99S) (8TS'SSS) (0TS'9SS) U8Z'99S) (,6Z'99S) (6WS9S) (60S'99S) (0W99S '69S) (ZW99S) (ZW99S) (ZW99S) (ZW99S) (S『S9S) (,W湯)
(6SS 附0] 附0] S酬 Z酬
(潘 附0]
o酬
宦) (附
6SW)] 8SW)]
9SW)]
(88S
17酬
宦)
OSW)]
6酬 8酬
柳) (附 A酬 9酬 S酬
s酬
;t淵
L酬
M 9s/0s 乐 的说 v s6is6z
01 n3
m’-7
G2[36](455,490)(453,402)(455,408)(453,402)(453,402)(453,402)(46l,402)
K-36f(G1[36])-6f(G2[36])-45f(G1[36],G2[36])-43
Move[36]-61~ound[36]-5Ml~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-37f(G1[37])-127f(G2[37])-223f(G1[37],G2[37])-160
Move[37]-71~ound[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)(38l,306)(363,343)(363,300)(342,342)
m’-7
G2[38](546,370)(473,415)(476,412)(473,415)(473,415)(473,415)(470,410)
K-38f(G1[38])-18f(G2[38])-860f(G1[38],G2[38])-846
Move[38]-81~ound[38]-3Ml~Number[38]-6
m二18
G1[39](407,374)(435,356)(435,356)(435,356)(435,356)(435,356)(439,360)(436,359)(437,361)(436,359)(446,375)(447,379)(440,361)(456,357)(46l,402)(478,367)(477,408)(498,367)
m’-7
G2[39](43l,465)(500,419)(497,421)(500,419)(500,419)(500,419)(504,423)
②、计算设定K和丁值相关wl、wl、Gl、G2的矩阵向量运算
计算设定K-18、丁-19时相关wl、wl、Gl、G2的矩阵向量运算,即包括计算设定K-18、丁-19相关Wl—K,G1、Wl—K,G2、J,G1、J,G2、J*Wl、J,W2、K*(J,G1)、K*(J,G2))的矩阵向量运算。因①计算设定K-38相关Gl、G2的矩阵向量运算结果,故无需计算只要按K-18、丁-19即可查获该运算值
A、因Wl—K,G1-G1[K+I],故Wl-18.G1-G1[19],查①获该运算值
Wl-{(385,282)(29l,277)(309,249)(297,243)(297,243)(295,245)(33l,198)(282,218)(316,187)(266,218)(322,178)(322,168)(29l,183)(243,192)(327,137)(245,163)(314,122)(23l,141)};
同理,因W2一K,G2一G2[K+I],故W2—18,G2一G2[19],查①获该运算值
W2一{(470,349)(363,329)(396,304)(345,302)(350,297)(343,301)(343,239)};
B、因J,G1一G1[J+1],故19,G1一G1[20],查①获该运算值
J,G1一{(265,334)(27l,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)(38l,197)(422,264)(403,183)};
同理,因J,G2一G2[J+1],故19,G2一G2[20],查①获该运算值
J,G2一{(302,423)(322,316)(345,349)(346,298)(35l,304)(347,298)(409,298)};
C、因J*Wl—J*K*G1一G1[K+J+I],故19,W1一G1[38],查①获该运算值
J*Wl一{(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)(38l,306)(363,343)(363,300)(342,342)};
同理,因J,W2一一J*K*G2一G2[K+J+I],故19,W2一G2[38],查①获该运算值
J,W2一{(546,370)(473,415)(476,412)(473,415)(473,415)(473,415)(470,410)};
D、因K*J*G1一G1[K+J+I],故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)(38l,306)(363,343)(363,300)(342,342)};
同理,因K*J*G2一G2[K+J+I],故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),包括按串序设定PDcl一G一5、5、6、6和mm’一18、7,及编码Matrix—Vector—G、W、丁*G,目l
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)(17l,129)(15l,162)(200,166)(162,272)}
B、string(Matrix—Vector—W)一{(5、5、6、6)(18、7))){(385,282)(29l,277)(309,249)(297,243)(297,243)(295,245)(33l,198)(282,218)(316,187)(266,218)(322,178)(322,168)(29l,183)(243,192)(327,137)(245,163)(314,122)(23l,141)(470,349)(363,329)(396,304)(345,302)(350,297)(343,301)(343,239)}
C、string(Matrix—Vector一丁*G)一{(5、5、6、6)(18、7)}}{(265,334)(27l,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)(38l,197)(422,264)(403,183)(302,423)(322,316)(345,349)(346,298)(35l,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)}禾P {(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)}和{(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)}和{(5、5、6、6)
(18、7川; ⑤、计算设定f (Matrix-OP = J*W) 、 f (Matrix-OP = K* (J*G)) 计算设定f (Matrix-OP = J*W) 、 f(Matrix-0P = 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*G1), K* (J*G2))) =/(XORM= K* ( J*G1 )) /(XORM= K* (J*G2)) =/(XORM=K*Gl[J+l]) @/(XORN^K^G2[J+l]);设定加密密钥K = 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]或WG[J+1]就非常难实现,故 该计算设定是安全的),即 A、因J*W1 = J*K*G1 = Gl [K+J+1] , J*W2 = = J*K*G2 = G2 [K+J+1],故
/(XORM=J*Wl) /(XORM=J*W2) =/(XORM= Gl [K+J+1]) /(XORM= G2[K+J+1])
=/(XORM=Gl[38]) @/(XORM=G2[38〗)=/(G1[38]) @/(G2[38]) =/(G1[38], G2[38]) =846 即:f (Matrix-0P = J*W) = 846 ;B、因K*J*G1 = Gl [K+J+1] , K*J*G2 = G2 [K+J+1],故
/(XORM= K* (J*G1)) /(XORM= K* (J*G2)) =/(XORM= G1 [K+J+1 ]) /(XORM= G2[K+J+1 ])
=/(XORM=Gl[38]) /(XORM=G2[38]) =/(Gl[38]) /(G2[38]) =/(Gl[38], G2[38]) =846
即:f (Matrix-0P = 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-OP = 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)}和{(5、5、6、6) (18、7川 ②、由①计算K氺(,G)得f (Matrix-0P = K*(J*G)) = 846 计算Em = Cm-f (Matrix-OP = K* (J*G)) = 850-846 = 4,即得明文M = 4,且该值
等于待加密值。
其中 本发明矩阵向量基准和基本运算示意如图2所示。 根据1及其实现步骤,图中该矩阵向量BioTPM[N]以P禾P D俩点为运算基准(运 算基准点P和运算基准方向点D构成PD运算基准),按位移步长Move[N]和旋转步长 Round[N]、且按作1次(即MRNumber[N] = 1)位移和旋转,该矩阵向量经基本运算其结果 是BioTPM[N+l]。 本发明矩阵向量第N轮运算流程如图3所示。 根据l及其实现步骤,图中输入该矩阵向量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)。 本发明矩阵向量K轮次运算操作(即K*定义)流程如图4所示。
根据1及其实现步骤,图中首先是通过(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 [ 1 ] , Move [ 1 ] , Round [ 1 ] , MRNumber [ 1 ])= K*BioTPM[l]。 本发明矩阵向量基于子集K轮次运算操作流程如图5所示。 根据1及其实现步骤,图中计算设定K轮次运算操作的矩阵向量G[K] = {Gl [K], G2[K],…1及其运算参数,通过(39)G[1] = (G1[1],G2[1],…1初始化(40)G[K] = {Gl [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[l] , Move[l] , Round[l] , MRNumber[l]) = 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+1] = {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)的特征在于根据1,设定该基于点集拓扑的非对称加密模式可以是。= {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))};定义G和W是解密方公开的起始运算矩阵向量、J是加密方为设定矩阵向量 轮次运算操作次数所设的私设轮次值(即加密私钥)、K是解密方为设定矩阵向量轮次 运算操作次数所设的私设轮次值(即解密私钥)、*是本发明矩阵向量轮次运算操作符、 J*G、 J*W是使用J对G和W进行*运算操作、K*(J*G)是使用K对(J*G)进行*运算操 作、string (Matrix-Vector = J*G)是先使用J对G进行*运算操作然后对包括该基准的 J*G进行数字串编码的操作、matrix (Matrix-String = string (Matrix-Vector = J*G)) 是还原string (Matrix-Vector = J*G)为该矩阵向量的反操作、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,其中①G1是(xGlm, yGlJ的集合、该m是 Gl的元素数,②G2是(xG2/ ,yG2/ )的集合、该m'是G2的元素数;设定Gl和G2的指 定生物特征点坐标参数为该矩阵向量的运算基准,设定该运算基准所包括运算基准点为P 和运算基准方向点为D,设定Gl[l]和G2[l]是G1和G2具有指定运算基准PD的起始运算 矩阵向量。
5. 步骤(3)和(4)的特征在于根据1和步骤(1)及(2),步骤(3)设定该矩阵向量的轮 运算包括设定该矩阵向量的基本运算是该矩阵向量基准上的基于环代数结构的代数系统, 设定该矩阵向量其乘加元素值的运算是该子集元素基于域代数结构的代数系统,包括可以 设定BioTPM[N]为起始运算矩阵向量、N为大于零的整数(其中N = 1、2、…、N) 、 PD为运 算基准、MRNumber[N]为基本运算次数、Move [N]为位移步长、Round[N]为旋转步长;设定起 始运算矩阵向量BioTPM[N]的基本运算可以是BioTPM[N]基准PD上基于Move [N]位移和 Round[N]旋转的环加和乘,即设定MRNumber[N]等于1且把BioTPM[N]按PD的Move[N]和 Roimd[N]数值各进行一次位移、旋转的运算;设定该矩阵向量BioTPM[N]的轮运算为第N 轮运算,设定该矩阵向量的第N轮运算是设定MRNumber[N]大于1且把BioTPM[N]按该环设 定的Move[N]和Round [N]数值进行PD上位移、旋转的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 ;当MRN咖ber[N] = l则该式即为 该矩阵向量的基本运算函数表达式;步骤(4)设定G[N]及子集G1[N]和G2[N]的第N轮运 算,还包括根据步骤(3)分别把Gl [N]或G2 [N]代入BioTPM[N] 、 Gl [N+l]或G2 [N+l]代入 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)的特征在于,根据l和步骤(1)、 (2)、 (3)及(4),步骤(5)设定 矩阵向量的轮次运算操作(即符号*所设定的操作)包括设定所有轮次基于(矩阵向 量的)轮运算映射点的全部解连同不运算点构成基于加法群代数结构的代数系统,即包 括设定基点为g,设定g的不运算点即零元为0g、设定g到0g的运算是g加0轮次的运 算、即g+0g = g,设定g的下一点为2g、设定g到2g的运算是g加1轮次的运算、即g+lg =2g,设定g的下二个点为3g、设定g到3g的运算是g加2轮次的运算、即g+2g = 3g, 设定g的下若干个点为(k+l)g、设定g到(k+l)g的运算是g加K轮次的运算、即g+kg =(k+l)g、其中K = k,从而设定该点集的二元加法群;设定该轮次运算操作过程可用 函数表达为fK(BioTPM[l], Move[l], Round[l], MRNumber[l]) = BioTPM[K+l];该映射 可表示为(k+l)g :K*BioTPM[l] = BioTPM[K+l] = fK(BioTPM[l], Move[l], Round[l],MRNumber[l]) ;K* (J*BioTPM[l])的映射是(k+j+1) g :K* (J*BioTPM[l]) , J* (K*BioTPM[l]) 的映射是(j+k+l)g :J*(K*BioTPM[l]),其中(k+j+l)g :K*(J*BioTPM[l]) = (j+k+l)g: J*(K*BioTPM[l]);步骤(6)还设定G或G1和G2的K轮次运算,包括分别把G1 =G1[1]和 G2 = G2[l]代入BioTPM[l]、Gl[K+l]或G2[K+1]代入BioTPM[K+l],由K = 1、2、3、4、…、 K,连同Move [K]、Round [K]、MRNumber[K]进行K轮BioTPM[K+l] = f (BioTPM[K] ,Move[K], Round[K] , MRN咖ber[K])运算,从而完成K轮次运算BioTPM[K+l] = fK(BioTPM[l], Move[l], Round[l], MRNumber[l]) = 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]。
7. 步骤(7)的特征在于,设定W二I^G、,W、,G、I^(,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(X0RM)进行各子集异或散列的运 算,该运算值即该编码值。
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 = Gl [N])或f (Matrix-OP = G2 [N])或f (Matrix-0P=(G1[N],G2[N]))是该子集的f(XORM)运算,该运算包括把括弧内Matrix-0P = (G1[N]) 或(G2[N])或(G1[N], G2[N])按设定f(XORM)进行子集各自元素纵横坐标异或散列的运 算;步骤(12)还包括根据步骤(10)和(11),设定Move [N]、 Round[N]、 MRNumber [N]映射 相关值的计算,包括①首先由G1 =G1[1]和G2 = G2[1]计算f(Matrix-OP = Gl[l])、 f (Matrix-0P = G2[1]) 、 f (Matrix-0P = (Gl[l], G2[1]));②将G1[1]和G2[1]分别代入 BioTPM[l]、G1[2]和G2[2]分别代入BioTPM[2],连同Move [1] = f (Matrix-0P = Gl [1])、 Round[N] = f(Matrix-OP = G2 [1]) 、 MRNumber [N] = f(Matrix—0P = (Gl [1] , G2 [1])) 代入BioTPM[2] = f (BioTPM[l], Move[l], Round[l], MRNumber[l])经该第1轮运算, 分别得G1[2]和G2[2]的值,由此获得Move[2] = f (Matrix—0P = Gl [2]) 、 Round[2]= f (Matrix-0P = G2 [2])、 MRNumber [2] = f (Matrix—0P = (Gl [2] , G2 [2]));③由N = 2、3、 4、…N,将G1[N]和G2[N]分别代入BioTPM[N] 、Gl [N+l]禾PG2[N+1]分别代入BioTPM[N+l], 连同Move[N] = f (Matrix-0P = Gl [N]) 、Round [N] = f (Matrix-0P = 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+l]的值,由此计算获得Move [N+l] =f(Matrix-OP = Gl[N+l]) 、Round[N+l] = f(Matrix-OP = G2[N+l]) 、MRNumber[N+l]= f(Matrix-0P= (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, 且该值等于该待加密值。
全文摘要
本发明基于点集拓扑的非对称加解密方法尤其涉及基于点集拓扑的非对称加(解)密技术领域。本发明的目的是提供一种基于点集拓扑的非对称加(解)密方法,技术特征包括,设定该基于点集拓扑的非对称加(解)密模式;设定该基于点集拓扑的矩阵向量;设定该起始运算矩阵向量;设定矩阵向量的基本运算;设定矩阵向量的轮运算;设定矩阵向量的轮次运算;设定加密模式包括对该矩阵向量按加密方私设轮次进行该轮次运算,然后把该运算结果编码值和待加密值相加作为加密信息值发送给解密方;设定解密模式包括对该矩阵向量按解密方原私设轮次进行该轮次运算,然后把该运算编码值减去加密方所发送来的加密信息值作为解密信息值。使用该方法发布公钥和隐藏私钥,既可依此公开地构建安全通信通道,同时可认证该发布人指定的点集拓扑特征,从而有利于构筑基于发布人公钥可信认证的安全通信通道,又更具一般性和普适性。
文档编号H04L9/30GK101795192SQ200910096039
公开日2010年8月4日 申请日期2009年2月2日 优先权日2009年2月2日
发明者李虹 申请人:李虹
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1