本发明涉及信息安全领域,尤其涉及一种生成可逆模m矩阵的方法和装置。
背景技术:
可逆模m矩阵在很多领域得到广泛应用,如抽象代数,电网优化,人工智能等。同时,它在信息安全领域中起着及其重要的作用,比如密码学协议,密钥管理,身份认证都需要用可逆模m矩阵。然而目前用手工的方式只能计算低阶模m矩阵的逆,而目前用递归计算行列式方式随机生成可逆模m矩阵,在生产过程中所耗费的时间会随着模m矩阵阶数的变多而增长,即阶数越高的模m矩阵在生成过程中随耗费的时间越长。
由于可逆模m矩阵在应用方面非常广泛,但目前并没有解决如何得到一个高阶可逆模m矩阵的问题,这在一定程度上限制了可逆模m矩阵的应用。因此如何能够快速高效地得到一个高阶可逆模m矩阵是目前亟需解决的技术问题。
技术实现要素:
本发明的主要目的在于提供了一种生成可逆模m矩阵的方法和装置,旨在解决现有技术中如何能够快速高效地得到一个高阶可逆模m矩阵的问题。
为实现上述目的,本发明提供了一种生成可逆模m矩阵的方法,所述方法包括以下步骤:
接收用户输入的矩阵阶数n,产生n2个整数,基于所产生的n2个整数生成模m矩阵,将所产生的n2个整数作为所述模m矩阵的矩阵元素;
对所述模m矩阵的矩阵元素进行遍历,在遍历到的目标矩阵元素与数值m互质时,认定所述模m矩阵为可逆模m矩阵。
优选地,所述接收用户输入的矩阵阶数n,产生n2个整数,基于所产生的n2个整数生成模m矩阵,具体包括:
随机生成n2个值在0到m-1之间的整数aij,其中,i为1到n之间的整数,j为1到n之间的整数;
根据生成的n2个整数aij创建所述模m矩阵a(0),其中,n表示所述模m矩阵的阶数n,
优选地,所述创对所述模m矩阵的矩阵元素进行遍历,在遍历到的目标矩阵元素与数值m互质时,认定所述模m矩阵为可逆模m矩阵,具体还包括:
在所述模m矩阵中的第i行且i≠1第1列中至少存在一个满足
确定所述矩阵元素
通过公式
通过公式
其中,
重复执行上述步骤k-1次之后,使得当前矩阵a(k-2)变成
其中第k次步骤为:从矩阵a(k-1)的第1列查找是否存在与数值m互质的矩阵元素,若找到的矩阵元素不是
或
在不存在与数值m互质的矩阵元素时,返回所述确定并重新生成所述模m矩阵的矩阵元素的步骤;
通过公式
通过公式
重复执行上述步骤n-1步之后,以使得当前模m矩阵变为
优选地,所述在矩阵元素与数值m互质时,认定所述当前模m矩阵为可逆模m矩阵之后,还包括:
通过所述当前模m矩阵对所述待处理数据进行加密,以生成加密数据。
优选地,所述通过所述当前模m矩阵对所述待处理数据进行加密,以生成加密数据之后,还包括:
求取所述模m矩阵的逆,通过所述模m矩阵的逆对所述加密数据进行解密,获得所述待处理数据。
优选地,所述求取所述模m矩阵的逆,通过所述模m矩阵的逆对所述加密数据进行解密,获得所述待处理数据,具体包括:
设ay=b,y=(yij)n×n=a-1,b=(bij)n×n=en,a=(aij)n×n表示所述模m矩阵,a-1表示所述模m矩阵的逆;ay=b表征为a(0)y=b(0),a(0)和b(0)的矩阵元素分别记为
所述目标终端通过公式
所述目标终端通过公式
从所述形式矩阵的
在k≠1时,将所述形式矩阵中的第i行矩阵元素和第k行矩阵元素的位置互易;
通过公式
基于公式
通过所述模m矩阵的逆对所述加密数据进行解密,获得所述待处理数据。
此外,为实现上述目的,本发明还提出一种生成可逆模m矩阵的装置,所述装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的生成可逆模m矩阵的程序,所述生成可逆模m矩阵的程序配置为实现如上所述生成可逆模m矩阵的方法的步骤。
本发明的结合高斯消去算法和模m矩阵的特性,进而得出更快生成可逆模m矩阵的方法,本发明利用模m矩阵的行列式与模m的互质性,从大量随机产生的模m矩阵中,可以快速淘汰不满足互质性的矩阵,保留满足互质性的矩阵,进而能够精确快速地生成一个可逆模m矩阵,通用性好。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的生成可逆模m矩阵的装置的结构示意图;
图2为本发明一种生成可逆模m矩阵的方法第一实施例的流程示意图;
图3为本发明一实施例中通过目前递归求行列式的方法随机生成一个10阶模546矩阵的仿真示意图;
图4为本发明一实施例中通过使用改进的约当消去法随机生成一个200阶模678矩阵的仿真示意图;
图5为本发明一实施例中通过使用改进的高斯消去法随机生成一个200阶模678矩阵的仿真示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的装置结构示意图。
如图1所示,该生成可逆模m矩阵的装置可以包括:处理器1001,例如cpu,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的生成可逆模m矩阵的装置结构并不构成对生成可逆模m矩阵的装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、用户接口模块、网络通信模块以及生成可逆模m矩阵的程序。
在图1所示的生成可逆模m矩阵的装置中,本发明生成可逆模m矩阵的装置中的处理器1001、存储器1005可以设置在生成可逆模m矩阵的装置中,所述生成可逆模m矩阵的装置通过处理器1001调用存储器1005中存储的生成可逆模m矩阵的程序,并执行以下操作:
接收用户输入的矩阵阶数n,产生n2个整数,基于所产生的n2个整数生成模m矩阵,将所产生的n2个整数作为所述模m矩阵的矩阵元素;
对所述模m矩阵的矩阵元素进行遍历,在遍历到的目标矩阵元素与数值m互质时,认定所述模m矩阵为可逆模m矩阵。
本实施例的生成可逆模m矩阵的程序基于以下算法推导,以下推导包括模m矩阵的定义及性质、可逆模m矩阵的存在定理、用改进的克拉姆法则求可逆模m矩阵的逆矩阵算法原理,此外还包括:用改进的约当消去法快速生成可逆模m矩阵的算法描述以及用改进的高斯消去法求模m矩阵的逆矩阵算法基础。
可理解的是,模m矩阵的定义及性质为:
定义1如果一个n阶矩阵a(aij)的所有元素都是整数,则称a为n阶整数矩阵。
定义2如果a是整数,b是正整数,那么a对b的取模运算amodb∈{0,1,…,b-1}。
定义3如果a是整数,b是正整数,那么a与b的最大公约数]gcd(a,b)∈{0,1,…,b-1}。
定义4如果一个n阶整数矩阵a(modm)是可逆矩阵,并且它的逆矩阵a-1(modm)也是一个n阶整数矩阵,则称a为n阶可逆模m矩阵。
引理设m是正整数,a是整数。如果m与a互素,即gcd(a,m)=1,则同余方程ax=1(modm)有唯一解,即
定义5模m矩阵的初等行(列)变换[5]指的是对矩阵施行以下变换:
(1)变换模m矩阵的两行(列);
(2)用一个与模m互素的整数乘以模m矩阵的某一行(列)的每一个元素;
(3)用一个整数乘模m矩阵的某一行(列)加到另一行(列),即用这个整数乘某一行(列)的每一个元素加到另一行(列)的对应元素上。
定义6对n阶单位矩阵en施行一次初等变换得到的矩阵称为初等矩阵.
设a是一个n阶模m矩阵,pij是由en的第i行与第j交换得到的矩阵,di(k)由en的第i行元素乘以k得到的矩阵(其中gcd(k,m)=1),ti,j(k)是由en的第j行乘以k加到第i行所得到的矩阵,则有下列性质:
(1)pija(modm)表示将矩阵a(modm)的第i行与第j行交换;
(2)apij(modm)表示将矩阵a(modm)的第i列与第j列交换;
(3)di(k)a(modm)表示将矩阵a(modm)的第i行元素乘以k,其中k满足gcd(k,m)=1;
(4)adi(k)(modm)表示将矩阵a(modm)的第i列元素乘以k,其中k满足gcd(k,m)=1;
(5)ti,j(k)a(modm)表示将矩阵a(modm)的第j行元素乘以k后加到第i行上;
(6)ati,j(k)(modm)表示将矩阵a(modm)的第j列元素乘以k后加到第i列上。
ti,j(k)a(modm)表示将矩阵a(modm)的第j行元素乘以k后加到第i行上;
ti,j(k)a(modm)表示将矩阵a(modm)的第j行元素乘以k后加到第i行上;
ti,j(k)a(modm)表示将矩阵a(modm)的第j行元素乘以k后加到第i行上;
ti,j(k)a(modm)表示将矩阵a(modm)的第j行元素乘以k后加到第i行上;
ti,j(k)a(modm)表示将矩阵a(modm)的第j行元素乘以k后加到第i行上;
ti,j(k)a(modm)表示将矩阵a(modm)的第j行元素乘以k后加到第i行上;
ti,j(k)a(modm)表示将矩阵a(modm)的第j行元素乘以k后加到第i行上;
ti,j(k)a(modm)表示将矩阵a(modm)的第j行元素乘以k后加到第i行上;
ti,j(k)a(modm)表示将矩阵a(modm)的第j行元素乘以k后加到第i行上;
由定义5和定义6可知,pij、di(k)和ti,j(k)都是初等矩阵。
性质1pij、di(k)和ti,j(k)都是可逆初等模m矩阵矩阵,且
证明:∵|pij|=-1,|di(k)|=k≠0(gcd(k,m)=1)),|ti,j(k)|=1
∴pij、di(k)和ti,j(k)都是可逆初等模m矩阵矩阵。
∵pijpij=en
定理1如果n阶模m矩阵a的行列式|a|=k(modm),且gcd(k,m)=1,则a可以经过一系列初等变换成+n阶单位矩阵en。
定理2如果n阶模m矩阵a可经一系列初等变换化成单位矩阵en,则gcd(|a|,m)=1。
定理3n阶模m矩阵a是可逆矩阵的充分必要条件是gcd(|a|,m)=1。
2、可逆模m矩阵的存在定理
定理4如果n阶模m矩阵a的行列式|a|=k(modm),且gcd(k,m)=1,则a可以经过一系列初等变换成n阶单位矩阵en。
证明:设
由|a|=k(modm),gcd(k,m)=1及行列式的性质可知a的第一列必有元素与m互素(否则gcd(k,m)≠1).不妨设a11与m互素(否则对a进行行与行的互换可使第一行第一列的元素与m互素)。根据引理,
从a1的第i行减去第1行的ai1倍(i=2,…,n),从第i列减去第1列的a'1i倍(i=2,…,n),得:
其中a'ij=aij-ai1a'1ji,j=2,3,…,n
显然,
定理5如果n阶模m矩阵a可经一系列初等变换化成单位矩阵en,则gcd(|a|,m)=1。
证明:设初等变换c1,c2,…,cs,cs+1,…,ct将n阶模m矩阵a转化成单位矩阵,即c1…csacs=1…ct=en,从而有|c1|…|cs||a||cs+1|…|ct|=1。由于|pij|=-1,|di(k)|=k,gcd(k,m)=1,|ti,j(k)|=1,故|c1|…|ct|=k。从而k|a|=1和gcd(k|a|,m)=1,又gcd(k,m)=1,所以gcd(|a|,m)=1。
定理6n阶模m矩阵a是可逆矩阵的充分必要条件是gcd(|a|,m)=1。
3用改进的克拉姆法则求可逆模m矩阵的逆矩阵算法原理
传统意义上的克拉姆法则只能求实数范围内的逆矩阵,而模m矩阵的逆矩阵是整数范围内的。克拉姆法则所求的逆矩阵往往是近似的,而模m矩阵的逆矩阵必须是精确的。所以,如果不对现有的克拉姆法则加以改进,是无法求出模m矩阵的逆矩阵的。
设n阶模m矩阵
设
由于gcd(|a|,m)=1,故a可逆。不妨设
∵gcd(|a|,m)=1,
xij=|a|-1|aij|,i,j=1,2,…,n。
4生成可逆模m矩阵以及模m矩阵求逆算法描述
4.1随机生成可逆的模m矩阵
步骤1输入模m矩阵的阶数n;
步骤2产生n2个随机整数,然后由这些元素组成矩阵a;
步骤3判断是否有gcd(|a|,m)=1,如果是,则结束;否则返回步骤2。
4.2求模m矩阵的逆矩阵
步骤1随机产生n阶可逆的模m矩阵a;
步骤2依次求出|aij|,i,j=1,2,…,n;
步骤3求出|a|-1;
步骤4根据xij=|a|-1|aij|,i,j=1,2,…,n计算a-1中的相应元素。
5用改进的约当消去法快速生成可逆模m矩阵的算法原理
定理7如果n阶模m矩阵a满足gcd(|a|,m)=1,则可以通过矩阵变换得到
证明:由gcd(|a|,m)=1及行列式的性质可知a的第一列必有元素与m互素(否则gcd(|a|,m)≠1).。因此,对a进行行与行的互换可使第一行第一列的元素
根据引理,
从a1的第i行减去第1行的
其中
∴gcd(|b|,m)=1,其中
定理8如果一个模m矩阵经过行变换成对角线矩阵后,对角线上的每个元素都与模m互素,则该模m矩阵是可逆模m矩阵。
证明:设n阶模m矩阵|a|经过行变换成对角线矩阵后的对角线元素为a11,a22,…,ann,且
6用改进的约当消去法快速生成可逆模m矩阵的算法描述
n阶可逆模m矩阵快速生成算法如下:
step1:随机生成n×n个值在0~m-1间的整数aij,i,j=1,2,…,n;
step2:由step1产生的整数aij,i,j=1,2,…,n构造矩阵a=(aij)n×n;
step3:为方便算法描述,记a=a(0)且a(0)的元素记为
即先施行运算
sttep2:第k次消元(2≤k≤n)
设第k-1次消元已经完成,即经过k-1次消元以后,所给矩阵a(k-2)被加工成下列形式
则消元的第k步是,从
然后,从其它行减去第k行的
这样做n步以后,所给矩阵最终被加工成对角线矩阵。由于对角线上的元素都与m互质,故矩阵a是n阶可逆模m矩阵。
7用改进的高斯消去法求模m矩阵的逆矩阵算法基础
定理9如果n阶模m矩阵a满足gcd(|a|,m)=1,则可以通过矩阵变换得到
证明:由gcd(|a|,m)=1及行列式的性质可知a的第一列必有元素与m互素(否则gcd(|a|,m)≠1).。因此,对a进行行与行的互换可使第一行第一列的元素
根据引理,
从a1的第i行减去第1行的
其中
定理10如果n阶模m矩阵a满足gcd(|a|,m)=1,则a的各阶子矩阵存在且子矩阵的行列式与m互素。
证明:根据定理4,矩阵b是矩阵a的n-1阶子矩阵。由于
定义8如果
定理6如果n阶模m矩阵a的各阶子矩阵都存在且各个子矩阵的第1行第1列的元素分别为a11、a22、…、ann,则
证明:设n阶模m矩阵a的各阶模m子矩阵由大到小分别为a1、a2、…、an,则
∴gcd(aiiajj,m)=1..
定理11如果n阶模m矩阵a满足gcd(|a|,m)=1,则存在对角线元素都是1的上三角矩阵u,使得通过行变换有(a|en)→(u|b)。
基于上述硬件结构以算法推导,提出本发明一种生成可逆模m矩阵的方法实施例。
参照图2,图2为本发明一种生成可逆模m矩阵的方法第一实施例的流程示意图。
本实施例中,所述方法包括以下步骤:
步骤一:接收用户输入的矩阵阶数n,产生n2个整数,基于所产生的n2个整数生成模m矩阵,将所产生的n2个整数作为所述模m矩阵的矩阵元素;
需要说明的是,本实施例的执行主体是生成可逆模m矩阵的装置,在具体实现中,步骤一包括第一子步骤和第二子步骤:
第一子步骤,根据上述算法推导中的定理3和定理6,要产生一个n阶可逆模m矩阵,可通过随机生成n2个值在0到m-1之间的整数aij,其中,i为1到n之间的整数,j为1到n之间的整数;
第二子步骤,根据生成的n2个整数aij创建模m矩阵a(0),其中,n表示所述模m矩阵的阶数n,
步骤二:对所述模m矩阵的矩阵元素进行遍历,在遍历到的目标矩阵元素与数值m互质时,认定所述模m矩阵为可逆模m矩阵;
具体地,步骤二又包括第三子步骤和第四子步骤:
第三子步骤,会对所述模m矩阵进行行变换,由于矩阵a(0)中
如果矩阵a(0)的第1列找不到与m互素的元素,则停止行变换,说明gcd(|a|,m)≠1,即n阶模m矩阵a不可逆,需要重新返回所述第一子步骤。否则,进行执行下面操作:
确定所述矩阵元素
先用
然后将a(0)的第i行减去变换后的第1行的ai1倍,即施行
其中,
第四子步骤,进行第k次消元(2≤k≤n)
设第k-1次消元已经完成,即以上经过k-1次以后,所给a(k-2)矩阵被加工成下列形式
具体地,高斯消去法的第k步是,先从a(k-1)的第1列查找是否存在与m互质的数,如果不存在与m互质的数,则返回所述第一子步骤。否则,如果找到的矩阵元素不是
重复执行上述步骤n-1步之后,以使得当前模m矩阵变为
进一步地,在成功认定所述当前模m矩阵为可逆模m矩阵之后,通过所述当前模m矩阵对所述待处理数据进行加密,以生成加密数据。
进一步地,所述通过所述当前模m矩阵对所述待处理数据进行加密,以生成加密数据之后,还包括:
求取所述模m矩阵的逆,通过所述模m矩阵的逆对所述加密数据进行解密,获得所述待处理数据。
设a=(aij)n×n是n阶可逆模m矩阵,为了叙述的方便,不妨假设ay=b,其中y=(yij)n×n=a-1,b=(bij)n×n=en。具体求取所述模m矩阵的逆a-1的步骤为:
记ay=b为a(0)y=b(0),其中a(0)和b(0)的元素分别记为
求逆第一子步骤(第一次消元):由于上述矩阵的第一行中的
然后将矩阵的第i行数据减去第1行的ai,1倍,即令
求逆第二子步骤(第k次消元,2≤k≤n)
设第k-1此消元已经完成,即经过k-1以后,所给矩阵被加工成下列形式
具体地,高斯消去法的第k步是,先从
和
这样做n步以后,所给矩阵最终被加工成
需要说明的是,以上算法推导利用可逆模m矩阵存在的一些性质,可判定一个模m矩阵是否可逆,并可计算出可逆模m矩阵的逆矩阵。一般情况下,人工只能产生一些低阶的可逆模m矩阵,同时也只能求一些低阶的模m矩阵的逆矩阵,而对于高阶可逆模m矩阵的生成和求逆,用手工进行是无能为力的。因此,本实施例必须先设计可逆模m矩阵的生成和求逆算法,然后用计算机程序实现该算法,就可以实现任意阶可逆模m矩阵的生成和求逆,大大提高了运算效率。
上文的算法推导还包括对传统意义上的约当消去法进行了改进,运用改进的约当消去法能够快速地得到任意阶可逆模m矩阵,极大地满足了实际应用的需要。充分利用约当消去法和模m矩阵的数学原理,从理论和算法的实现上均解决了可逆模m矩阵的生成问题。需要指出的是,以上算法推导是在约当消去法的基础上建立的新算法,而约当消去法比高斯消去法具有更高的时间复杂度,如果能用改进的高斯消去法得到任意阶可逆模m矩阵,则可以降低得到可逆模m矩阵的时间复杂度。
因此,本实施例基于以上算法推导进一步结合高斯消去算法和模m矩阵的特性,进而得出更快生成可逆模m矩阵的方法,本发明利用模m矩阵的行列式与模m的互质性,从大量随机产生的模m矩阵中,可以快速淘汰不满足互质性的矩阵,保留满足互质性的矩阵,进而能够精确快速地生成一个可逆模m矩阵,通用性好。
进一步地,为了进一步验证上述步骤中基于改进的高斯消去法快速生成可逆模m矩阵的可行性,本实施例中对以上改进的高斯消去法快速生成可逆模m矩阵进行了测试。
例如,若用改进的高斯消去法产生一个4阶可逆模256矩阵,并验证该矩阵可逆,可通过改进的高斯消去法的算法原理,随机产生的一个4阶可逆模256矩阵为
具体验证过程如下:
(1)第1步
(2)第2步
(3)第3步
(4)第4步
又例如,若想用改进的高斯消去法求出例3产生的4阶可逆模256矩阵的逆,要具体消元过程如下:
(1)第1步
(2)第2步
(3)第3步
(4)第4步
通过回代,得
即a是4阶可逆模256矩阵。
进一步地,在证明基于上述改进的高斯消去法快速生成可逆模m矩阵的可行性的基础上,本实施例继续证明基于上述改进的高斯消去法快速生成可逆模m矩阵的生成速度要快于目前的常规的技术方案和改进的约当消去法,例如目前采用最新的递归计算行列式方式随机生成可逆模m矩阵,系统测试表明,用该递归计算行列式的方法只能比较快地得到阶数不超过10的可逆模m矩阵,如图3所示,用递归求行列式的方法随机生成一个10阶模546矩阵,就需要花费124112毫秒;
参考图4,本实施例通过使用改进的约当消去法随机生成一个200阶模678矩阵,需要花费6390毫秒;而采用同一算法建立矩阵,矩阵阶数的越高矩阵的生成速度会越慢;
因此通过以上数据对比可知本实施例所采用的改进的约当消去法生成可逆模m矩阵的速度要远远快于目前最新的递归计算行列式方式所生成的可逆模m矩阵的速度。
进一步地,参考图5,通过使用改进的高斯消去法随机生成一个200阶模678矩阵,仅仅需要花费630毫秒,在相同阶数的条件下,使用改进的高斯消去法比使用改进的约当消去法还要快近10倍。
进一步需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台装置(可以是手机,,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。