π小数点后面位数的随机数表建立方法与流程

文档序号:15888424发布日期:2018-11-09 19:47阅读:860来源:国知局
π小数点后面位数的随机数表建立方法与流程
本发明涉及到随机数表建立方法,特别涉及π小数点后面位数的随机数表建立方法。
背景技术
近年来,随着计算机技术的快速发展,计算机应用在各个领域不断深入,其计算精度要求越来越高,π在计算精确度方面的应用亦十分广泛,如光学应用,坐标精确定位应用,然而π小数点后面数字随机性用于建立的随机数表在查询π小数点后面位数的速度,尤其是10万位小数以内,进行区间检索的速度较慢,没有完善的构建π小数点3万位、10万位、30万位及0、1、2、3、4、5、6、7、8、9的矩阵导致检索统计的速率下降。技术实现要素:发明的目的在于提供π小数点后面位数的随机数表建立方法,不同的存储结构为各类检索方法快捷有效,对获取π小数点后面位数的数据起到很大的辅助作用,不同等级的加密算法可适应于不同的领域、行业应用,有利于各类密码学的延伸,以解决上述
背景技术
中提出的问题。为实现上述目的,本发明提供如下技术方案:π小数点后面位数的随机数表建立方法,包括以下步骤:步骤1:建立π小数点后面位数(0,1,2,3,4,5,6,7,8,9)的存储结构;步骤2:圆周率小数位为一组无限不循环的整数,任意取其中某段数字即可生成随机数表,建立随机数表在密码学中的应用和密码保护等级;步骤3:π小数点后面位数随机根据密码构建,随机密码构建流程,密码学应用过程算法解密;步骤4:构建程序进行实现。优选的,所述步骤1中,建立π小数点后面位数的存储方式,分别以3万位、10万位、30万位的不同的方式存储π原值,并以0、1、2、3、4、5、6、7、8、9建立不同的字段采用bit的数据类型的存储结构进行多种形式的存储π原值,对π的原值分段存储,可以快速读取30万位以内的数据;对π的小数按0、1、2、3、4、5、6、7、8、9出现位置进行标记存储,采用数据库中bit数据类型;对π的小数按位存储,从横向存储转为纵向存储。优选的,所述步骤2中,根据π小数点后面位数(0,1,2,3,4,5,6,7,8,9)出现的随机性建立随机数表,普通:构建的低加密过程,主要设定的加密矩阵为2到4之间;秘密:构建的中等加密过程,主要设定的加密矩阵为5到8之间;机密:构建的高强度加密过程,主要设定的加密矩阵9以上。优选的,所述步骤3中,小数点后面位数随机密码构建过程分为两类,一类为使用接口根据不同的加密等级赋给相应的加密参数并获得加密结果;另一类为自选加密混合操作;过程算法:第一步:任意取圆周率π小数位中的某一位作为开始的起始数字,设定加密矩阵的阶数n;第二步:任意取这位数字开始的n2个数字,构造一个n阶方阵,判断矩阵的行列式为否为0,若为0,则跳过这n2个数字直接取下一组n2个数字;若行列式不为0,则得到一个加密矩阵,记为a1,依次方法,不断取n2个数字作为加密矩阵的元素,依次得到加密矩阵序列{a1,a2,a3…,an,…};第三步:将要加密的明文代码设为n维列向量组{x1,x2,…,xn,…},依次用加密矩阵a1,a2,a3…,an,…分别乘以x1,x2,…,xn…,得到加密后的向量组{y1,y2,…,yn,…};第四步:解密过程,只要把加密矩阵中的选择圆周率π小数位中的这一位数字和加密矩阵的阶数n,则可以得到加密矩阵序列{a1,a2,a3…,an,…},对每个矩阵分别求逆矩阵,则得到解密矩阵序列依次用解密矩阵乘以y1,y2,…,yn,…,则得到加密前的向量x1,x2,…,xn…。优选的,所述步骤4中,输入随机数表的数据校验代码;确定随机数据的创建与pi的取值;调整加密算法设计。与现有技术相比,本发明的有益效果是:1、π小数点后面位数的随机数表建立方法,多种方式检索π小数点后面位数的数据,同时提供区间检索,而且不同的存储结构为各类检索方法快捷有效,对获取π小数点后面位数的数据起到很大的辅助作用。2、统计π小数点后面位数的0、1、2、3、4、5、6、7、8、9的分布,在3万位到10万位之间区间规律,针对pi建立的随机数表的随机性更强,对加密随机的破解难度加大,且不同等级的加密算法可适应于不同的领域、行业应用,有利于各类密码学的延伸。附图说明图1为本发明的π小数位原值分段存储;图2为本发明的π小数位原值矩阵存储;图3为本发明的π小数位原值按位存储;图4为本发明的分类流程图;图5为本发明的0单位间隔中所出现的次数;图6为本发明的0单位间隔中所出现的次数;图7为本发明的1出现次数分布图及一次函数匹配效果图;图8为本发明的1出现次数分布图及一次函数匹配效果图;图9为本发明的小数点按位的出现次数分布统计效果图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一:π小数点后面位数的随机数表建立方法,包括以下步骤:步骤1:建立π小数点后面位数(0,1,2,3,4,5,6,7,8,9)的存储结构,建立π小数点后面位数的存储方式,分别以3万位、10万位、30万位的不同的方式存储π原值,并以0、1、2、3、4、5、6、7、8、9建立不同的字段采用bit的数据类型的存储结构进行多种形式的存储π原值,对π的原值分段存储,可以快速读取30万位以内的数据,存储结构和数据格式如图1所示:对π的小数按0、1、2、3、4、5、6、7、8、9出现位置进行标记存储,采用数据库中bit数据类型,具体存储结构和数据格式如图2所示;对π的小数按位存储,从横向存储转为纵向存储,其存储结构和数据格式如图3所示;步骤2:圆周率小数位是一组无限不循环的整数,任意取其中某段数字即可生成随机数表,建立随机数表在密码学中的应用和密码保护等级,根据π小数点后面位数(0,1,2,3,4,5,6,7,8,9)出现的随机性建立随机数表,普通:构建的低加密过程,主要设定的加密矩阵为2到4之间,其加密速度快,效率高且同样的数字经随机数值的加密算法设计后其结果都不一样,加密结果具有较强的随机性无规律可循,而且数字0的关系在加密矩阵太小时就可能出现无法反译现象,可应用于办公文件传输、普通应用系统密码设置;秘密:构建的中等加密过程,主要设定的加密矩阵为5到8之间,其加密速度仍然很快,效率高且同样的数字经随机数值的加密算法设计后随机性更强,加密复杂度更高,简单两个数字(11)经中等加密后其所需要破译时长至少1个月以上;机密:构建的高强度加密过程,主要设定的加密矩阵9以上,效率比较高且同样的数字经随机数值的加密算法设计后随机性相当强,加密复杂度非常高,其加密简单两个数字(11)计算所需要破译时长都能超过1年,对于密码要求等级比较高的如银行系统、支付平台等需要数字、字母、特殊符号结合及长度要求超过8位的,其加密后的结果破译时长超过千年;步骤3:π小数点后面位数随机根据密码构建,随机密码构建流程,密码学应用过程算法解密,小数点后面位数随机密码构建过程分为两类,一类是使用接口根据不同的加密等级赋给相应的加密参数并获得加密结果;另一类为自选加密混合操作,小数点后面位数随机密码构建过程分为两类,一类是使用接口根据不同的加密等级赋给相应的加密参数并获得加密结果;另一类为自选加密混合操作,如图4所示;过程算法:第一步:任意取圆周率π小数位中的某一位作为开始的起始数字,设定加密矩阵的阶数n;第二步:任意取这位数字开始的n2个数字,构造一个n阶方阵,判断矩阵的行列式是否为0,若为0,则跳过这n2个数字直接取下一组n2个数字;若行列式不为0,则得到一个加密矩阵,记为a1,依次方法,不断取n2个数字作为加密矩阵的元素,依次得到加密矩阵序列{a1,a2,a3…,an,…};第三步:将要加密的明文代码设为n维列向量组{x1,x2,…,xn,…},依次用加密矩阵a1,a2,a3…,an,…分别乘以x1,x2,…,xn…,得到加密后的向量组{y1,y2,…,yn,…};第四步:解密过程,只要把加密矩阵中的选择圆周率π小数位中的这一位数字和加密矩阵的阶数n,则可以得到加密矩阵序列{a1,a2,a3…,an,…},对每个矩阵分别求逆矩阵,则得到解密矩阵序列依次用解密矩阵乘以y1,y2,…,yn,…,则得到加密前的向量x1,x2,…,xn…;步骤4:构建程序进行实现,输入随机数表的数据校验代码;确定随机数据的创建与pi的取值;调整加密算法设计。实施例二:下面用一个例子来验证算法:要发送明文“好读书不好读书,好读书不好读书”,根据中文电码查询可得下表好读书不好读书1107623625790008117062362579把每个字的代码设成一个四维向量得到明文代码向量组{x1,x2,…,x7}。取圆周率π小数点第20位数字开始,取16位连续数字构造一个四阶方阵a1,依次得矩阵a2,a3,…,a7。结果如下:通过计算可得a1,a2,a3,…,a7均可逆,计算加密后得到的密文如下:下面是解密过程:依次求加密矩阵a1,a2,a3,…,a7的逆矩阵,得到分别与y1,y2,y3,y4,y5,y6,y7,相乘即可得到x1,x2,x3,x4,x5,x6,x7,则实现了解密的过程。实施例三:程序实现实施例四:以下是根据π小数点后面位数(0,1,2,3,4,5,6,7,8,9)出现的随机性建立随机数表在密码学中的应用案例说明,通过pi小数点后第200位数字到第400位数字截取出来建立的随机数表及4阶矩阵为例进行加密。44288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094任意取连续的16个整数,构造一个4×4阶矩阵a,如果矩阵a行列式等于0,则矩阵a不可逆,则跳过这16个数字,取下一组16个数字构造一个矩阵a,如果矩阵a可逆,则以矩阵a作为加密矩阵,对一组4×n数组c加密,则可以得到加密后的4×n数组b。若对4×n数组b解密,则用矩阵a的逆矩阵a-1左乘b即可得到数组c。同理,任意取连续的25个整数,构造一个5×5阶矩阵a,如果矩阵a行列式等于0,则矩阵a不可逆,则跳过这25个数字,取下一组25个数字构造一个矩阵a,如果矩阵a可逆,则以矩阵a作为加密矩阵,对一组5×n数组c加密,则可以得到加密后的5×n数组b。若对5×n数组b解密,则用矩阵a的逆矩阵a-1左乘b即可得到数组c。以此类推,可以任意构造m×m矩阵a,对任意m×n数组加密和解密,由此实现对数据的加密和解密过程,由于圆周率是个无限不循环的小数,从圆周率中任意取某位数字开始,即可生成加密矩阵组,所以在实际应用中具有很高的安全性和可操作性。下面给出一个简单的例子说明加密解密过程:在上面的程序中,先任意取圆周率小数点后第200位数字开始的32个数字构造了2个4×4矩阵a1,a2,通过验证,a1,a2均可逆,再任意给出两个矩阵c1,c2,用矩阵a1,a2分别对矩阵c1,c2加密,则得到矩阵b1,b2.下面给出解密过程:在上面的程序中,用矩阵a1,a2的逆矩阵分别乘以矩阵b1,b2,则得到矩阵c1,c2,这实现了对矩阵b1,b2的解密。实施例五:区间统计规律统计不同单位间隔(以1000和10000为单位)π的小数分布情况,对该单位内相应数字(0,1,2,3,4,5,6,7,8,9)出现的次数进行分析和统计,最终在不同的范围提炼这些数字分布的最佳逼近函数,以显示出π小数点后面位数(0,1,2,3,4,5,6,7,8,9)出现的规律。统计π小数点后面位数3万位的数据分析,以每间隔1000位为单位。0在该单位间隔中所出现的次数,并不断累加,0.1表示1000,0.2表示2000,0.3表示3000,以此类推(下同),数据分布如下所示,其推导后的符合函数为:-20.8554+976.472x+0.634734x2+3.13433x3{{0.1,93},{0.2,181},{0.3,259},{0.4,362},{0.5,466},{0.6,556},{0.7,657},{0.8,754},{0.9,855},{1.0,968},{1.1,1070},{1.2,1161},{1.3,1266},{1.4,1365},{1.5,1456},{1.6,1555},{1.7,1667},{1.8,1761},{1.9,1854},{2.0,1954},{2.1,2049},{2.2,2164},{2.3,2260},{2.4,2363},{2.5,2476},{2.6,2576},{2.7,2684},{2.8,2791},{2.9,2897},{3.0,2998}}。1在该单位间隔中所出现的次数(并不断累加),数据分布如下所示,其推导后的符合函数为:5.58318+1073.67x-76.7566x2+19.0839x3。{{0.1,116},{0.2,213},{0.3,308},{0.4,429},{0.5,531},{0.6,626},{0.7,733},{0.8,833},{0.9,936},{1.0,1026},{1.1,1098},{1.2,1193},{1.3,1314},{1.4,1416},{1.5,1513},{1.6,1601},{1.7,1711},{1.8,1816},{1.9,1903},{2.0,1997},{2.1,2087},{2.2,2187},{2.3,2286},{2.4,2405},{2.5,2519},{2.6,2631},{2.7,2722},{2.8,2837},{2.9,2927},{3.0,3048}}。2在该单位间隔中所出现的次数(并不断累加),数据分布如下所示,其推导后的符合函数为:-17.418+1080.7x-54.1222x2+4.87026x3。{{0.1,103},{0.2,207},{0.3,303},{0.4,408},{0.5,496},{0.6,594},{0.7,692},{0.8,811},{0.9,911},{1.0,1021},{1.1,1111},{1.2,1214},{1.3,1316},{1.4,1419},{1.5,1511},{1.6,1593},{1.7,1687},{1.8,1773},{1.9,1874},{2.0,1986},{2.1,2074},{2.2,2167},{2.3,2232},{2.4,2308},{2.5,2403},{2.6,2495},{2.7,2588},{2.8,2687},{2.9,2785},{3.0,2897}}。3在该单位间隔中所出现的次数(并不断累加),数据分布如下所示,其推导后的符合函数为:-6.41974+933.342x+66.2761x2-15.7808x3。{{0.1,102},{0.2,188},{0.3,265},{0.4,368},{0.5,459},{0.6,572},{0.7,686},{0.8,781},{0.9,884},{1.0,974},{1.1,1080},{1.2,1176},{1.3,1272},{1.4,1382},{1.5,1491},{1.6,1602},{1.7,1714},{1.8,1813},{1.9,1903},{2.0,1986},{2.1,2093},{2.2,2179},{2.3,2286},{2.4,2392},{2.5,2549},{2.6,2578},{2.7,2669},{2.8,2766},{2.9,2874},{3.0,2978}}。4在该单位间隔中所出现的次数(并不断累加),数据分布如下所示,其推导后的符合函数为:-11.5568+1044.91x-8.43773x2+0.472295x3。{{0.1,93},{0.2,195},{0.3,318},{0.4,405},{0.5,508},{0.6,613},{0.7,702},{0.8,809},{0.9,910},{1.0,1012},{1.1,1133},{1.2,1233},{1.3,1343},{1.4,1440},{1.5,1553},{1.6,1670},{1.7,1755},{1.8,1833},{1.9,1946},{2.0,2043},{2.1,2141},{2.2,2232},{2.3,2346},{2.4,2455},{2.5,2549},{2.6,2660},{2.7,2765},{2.8,2867},{2.9,2960},{3.0,3057}}。5在该单位间隔中所出现的次数(并不断累加),数据分布如下所示,其推导后的符合函数为:-16.532+1105.38x-50.3626x2+7.92485x3。{{0.1,97},{0.2,205},{0.3,315},{0.4,417},{0.5,525},{0.6,622},{0.7,730},{0.8,834},{0.9,932},{1.0,1046},{1.1,1150},{1.2,1262},{1.3,1358},{1.4,1455},{1.5,1548},{1.6,1659},{1.7,1764},{1.8,1875},{1.9,1987},{2.0,2043},{2.1,2141},{2.2,2232},{2.3,2346},{2.4,2455},{2.5,2549},{2.6,2660},{2.7,2765},{2.8,2867},{2.9,2960},{3.0,3057}}。6在该单位间隔中所出现的次数(并不断累加),数据分布如下所示,其推导后的符合函数为:-2.30914+1016.71x+3.35148x2-1.74179x3。{{0.1,94},{0.2,200},{0.3,302},{0.4,397},{0.5,513},{0.6,619},{0.7,708},{0.8,816},{0.9,914},{1.0,1021},{1.1,1129},{1.2,1227},{1.3,1324},{1.4,1426},{1.5,1520},{1.6,1615},{1.7,1709},{1.8,1818},{1.9,1917},{2.0,2017},{2.1,2125},{2.2,2232},{2.3,2355},{2.4,2449},{2.5,2541},{2.6,2640},{2.7,2744},{2.8,2839},{2.9,2925},{3.0,3012}}。7在该单位间隔中所出现的次数(并不断累加),数据分布如下所示,其推导后的符合函数为:10.018+943.516x+12.7368x2+1.36289x3。{{0.1,95},{0.2,197},{0.3,287},{0.4,377},{0.5,488},{0.6,606},{0.7,693},{0.8,785},{0.9,883},{1.0,970},{1.1,1070},{1.2,1166},{1.3,1258},{1.4,1342},{1.5,1439},{1.6,1546},{1.7,1644},{1.8,1742},{1.9,1845},{2.0,1953},{2.1,2060},{2.2,2177},{2.3,2283},{2.4,2387},{2.5,2479},{2.6,2587},{2.7,2682},{2.8,2779},{2.9,2879},{3.0,2974}}。8在该单位间隔中所出现的次数(并不断累加),数据分布如下所示,其推导后的符合函数为:35.9825+853.632x+75.6469x2-11.1679x3。{{0.1,101},{0.2,202},{0.3,310},{0.4,405},{0.5,492},{0.6,582},{0.7,680},{0.8,764},{0.9,854},{1.0,947},{1.1,1031},{1.2,1144},{1.3,1243},{1.4,1336},{1.5,1455},{1.6,1543},{1.7,1643},{1.8,1757},{1.9,1869},{2.0,1961},{2.1,2068},{2.2,2167},{2.3,2266},{2.4,2359},{2.5,2465},{2.6,2572},{2.7,2672},{2.8,2775},{2.9,2876},{3.0,2972}}。9在该单位间隔中所出现的次数(并不断累加),数据分布如下所示,其推导后的符合函数为:11.024+1028.96x-26.976x2+5.80471x3。{{0.1,106},{0.2,211},{0.3,332},{0.4,431},{0.5,521},{0.6,609},{0.7,718},{0.8,812},{0.9,920},{1.0,1014},{1.1,1127},{1.2,1223},{1.3,1305},{1.4,1418},{1.5,1513},{1.6,1615},{1.7,1705},{1.8,1811},{1.9,1901},{2.0,2020},{2.1,2112},{2.2,2202},{2.3,2302},{2.4,2414},{2.5,2509},{2.6,2598},{2.7,2703},{2.8,2797},{2.9,2919},{3.0,3014}}统计π小数点后面位数10万位的数据分析,其中4万位内是每间隔1000位0,1,2,3,4,5,6,7,8,9数字出现的次数(数据统计结果类似2.1部分),从4万位开始采用5000为单位进行统计,随着分段统计区间的增加,其统计结果数字分布的最佳函数全部逼近一次函数且可抽象为一次函数,具体统计效果如下说明。0在该单位间隔中所出现的次数,并不断累加,0.1表示1000,0.2表示2000,0.3表示3000,以此类推(同上说明);到4万位开始采用5000为单位进行统计,4.0表示40000,4.5表示45000,5.0表示50000,以此类推(下同),直至10万位,数据分布如下所示,其推导后的符合函数为:-36.8355+1004.55x{{0.1,93},{0.2,181},{0.3,259},{0.4,362},{0.5,466},{0.6,556},{0.7,657},{0.8,754},{0.9,855},{1.0,968},{1.1,1070},{1.2,1161},{1.3,1266},{1.4,1365},{1.5,1456},{1.6,1555},{1.7,1667},{1.8,1761},{1.9,1854},{2.0,1954},{2.1,2049},{2.2,2164},{2.3,2260},{2.4,2363},{2.5,2476},{2.6,2576},{2.7,2684},{2.8,2791},{2.9,2897},{3.0,2998},{3.1,3086},{3.2,3184},{3.3,3286},{3.4,3386},{3.5,3486},{3.6,3575},{3.7,3679},{3.8,3781},{3.9,3885},{4.0,3989},{4.5,4519},{5.0,5033},{5.5,5501},{6.0,6009},{6.5,6500},{7.0,6992},{7.5,7492},{8.0,7972},{8.5,8488},{9.0,8991},{9.5,9502},{10.0,9999}};小数点后10万位0的出现次数分布图及一次函数匹配效果,如图5-6所示:1在该单位间隔中所出现的次数(并不断累加),同样到4万位开始采用5000为单位进行统计,数据分布如下所示,其推导后的符合函数为:-8.34564+1016.93x{{0.1,116},{0.2,213},{0.3,308},{0.4,429},{0.5,531},{0.6,626},{0.7,733},{0.8,833},{0.9,936},{1.0,1026},{1.1,1098},{1.2,1193},{1.3,1314},{1.4,1416},{1.5,1513},{1.6,1601},{1.7,1711},{1.8,1816},{1.9,1903},{2.0,1997},{2.1,2087},{2.2,2187},{2.3,2286},{2.4,2405},{2.5,2519},{2.6,2631},{2.7,2722},{2.8,2837},{2.9,2927},{3.0,3048},{3.1,3149},{3.2,3250},{3.3,3360},{3.4,3447},{3.5,3560},{3.6,3665},{3.7,3757},{3.8,3860},{3.9,3967},{4.0,4061},{4.5,4551},{5.0,5055},{5.5,5604},{6.0,6071},{6.5,6590},{7.0,7106},{7.5,7604},{8.0,8141},{8.5,8676},{9.0,9193},{9.5,9661},{10.0,10137}}π小数点后10万位1的出现次数分布图及一次函数匹配效果如图7-8所示:2在该单位间隔中所出现的次数(并不断累加),数据分布和π小数点后10万位2的出现次数分布图及一性函数匹配效果图略(可在附件中查阅,下同),其推导后的符合函数为:-15.1753+985.717x3在该单位间隔中所出现的次数(并不断累加),其推导后的符合函数为:-23.07+1002.7x4在该单位间隔中所出现的次数(并不断累加),其推导后的符合函数为:44.8887+991.969x5在该单位间隔中所出现的次数(并不断累加),其推导后的符合函数为:44.8126+1000.16x6在该单位间隔中所出现的次数(并不断累加),其推导后的符合函数为:22.9993+998.266x7在该单位间隔中所出现的次数(并不断累加),其推导后的符合函数为:-38.6587+1006.68x8在该单位间隔中所出现的次数(并不断累加),其推导后的符合函数为:-23.8462+1001.53x9在该单位间隔中所出现的次数(并不断累加),其推导后的符合函数为:27.6313+992.167x根据用户需求可自定义查询不同单位间隔π的小数分布情况,对指定单位内相应数字(0,1,2,3,4,5,6,7,8,9)出现的次数进行分析和统计,以及快速获得相应的区间π的值,方便此数据的使用和分析,效果如下图所示值,方便此数据的使用和分析,效果如图9所示。综上所述,本发明提出的π小数点后面位数的随机数表建立方法,多种方式检索π小数点后面位数的数据,同时提供区间检索,而且不同的存储结构为各类检索方法快捷有效,对获取π小数点后面位数的数据起到很大的辅助作用。统计π小数点后面位数的0、1、2、3、4、5、6、7、8、9的分布,在3万位到10万位之间区间规律。针对pi建立的随机数表的随机性更强,对加密随机的破解难度加大,且不同等级的加密算法可适应于不同的领域、行业应用,有利于各类密码学的延伸。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1