The invention discloses a method and a device for generating reversible matrix M. The invention combines the characteristics of the Gaussian elimination algorithm and the modular m matrix, and then obtains a method for faster generation of the reversible modular m matrix. By utilizing the determinant of the modular M matrix and the reciprocity of the modular m matrix, from a large number of randomly generated modular m matrices, the matrix which does not satisfy the reciprocity can be quickly eliminated, and the matrix which satisfies the reciprocity can be retained. It is able to generate a reversible M matrix accurately and quickly.
【技术实现步骤摘要】
生成可逆模m矩阵的方法和装置
本专利技术涉及信息安全领域,尤其涉及一种生成可逆模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 ...
【技术保护点】
1.一种生成可逆模m矩阵的方法,其特征在于,所述方法包括:接收用户输入的矩阵阶数n,产生n2个整数,基于所产生的n2个整数生成模m矩阵,将所产生的n2个整数作为所述模m矩阵的矩阵元素;对所述模m矩阵的矩阵元素进行遍历,在遍历到的目标矩阵元素与数值m互质时,认定所述模m矩阵为可逆模m矩阵。
【技术特征摘要】
1.一种生成可逆模m矩阵的方法,其特征在于,所述方法包括:接收用户输入的矩阵阶数n,产生n2个整数,基于所产生的n2个整数生成模m矩阵,将所产生的n2个整数作为所述模m矩阵的矩阵元素;对所述模m矩阵的矩阵元素进行遍历,在遍历到的目标矩阵元素与数值m互质时,认定所述模m矩阵为可逆模m矩阵。2.如权利要求1所述的方法,其特征在于,所述接收用户输入的矩阵阶数n,产生n2个整数,基于所产生的n2个整数生成模m矩阵,具体包括:随机生成n2个值在0到m-1之间的整数aij,其中,i为1到n之间的整数,j为1到n之间的整数;根据生成的n2个整数aij创建所述模m矩阵A(0),其中,n表示所述模m矩阵的阶数n,表示所述模m矩阵的第i行第j列的矩阵元素,i表示所述模m矩阵的行,j表示所述模m矩阵的列。3.如权利要求2所述的方法,其特征在于,所述创对所述模m矩阵的矩阵元素进行遍历,在遍历到的目标矩阵元素与数值m互质时,认定所述模m矩阵为可逆模m矩阵,具体还包括:在所述模m矩阵中的第i行且i≠1第1列中至少存在一个满足时,将所述模m矩阵A(0)的第i行元素和第1行元素互易位置,以使得当前模m矩阵的矩阵元素与数值m互质,其中,表示模m矩阵A(0)的第i行第一列矩阵元素与数值m互质;确定所述矩阵元素的逆元通过公式将所述逆元遍乘所述模m矩阵A(0)的第1行除第1列的矩阵元素;通过公式将所述模m矩阵A(0)的第i行减去变换后的第1行的ai1倍,获得其中,重复执行上述步骤k-1次之后,使得当前矩阵A(k-2)变成其中第k次步骤为:从矩阵A(k-1)的第1列查找是否存在与数值m互质的矩阵元素,若找到的矩阵元素不是则将该矩阵元素所在的行与所在的行位置互换以使得新的与数值m互素;或在不存在与数值m互质的矩阵元素时,返回所述确定并重新生成所述模m矩阵的矩阵元素的步骤;通过公式将的逆元乘以A(k-1)的第1行除以外的矩阵元素;通过公式将A(k-1)的第i行减去变换后的第1行的倍,以获得其中重复执行上述步骤n-1步之后,以使得当前模m矩阵变为在矩阵元素与数值m互质时,认定所述当前模m矩阵为...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。