论文部分内容阅读
从专业学习中,我们清楚地了解到大整数分解问题是十分困难的,这一结论也奠定了RSA密码体系的安全性。而分解超过130位的大整数,数域筛法被普遍认为是现如今最先进、最快的算法之一。数域筛法中一个十分关键的步骤是求解大型稀疏线性方程组。随着RSA密码体制的模数越来越大,相关破解问题的数据规模也越来越大,Lanczos算法以其在大规模数据处理上的优越性在当今求解方程组的领域中占据着重要地位。本文首先对数域筛法的相关理论知识进行了清晰直观地阐述。然后,详细介绍了Lanczos算法和Block Lanczos算法求解方程组问题的具体原理。接下来是整篇论文的重点内容,Block Lanczos算法对于一些特殊的输入,运行过程会突然崩溃,而导致该缺陷的就是随机的初始化阶段,并且Block Lanczos算法的输入必须为对称矩阵,因此对一般矩阵要先进行对称化,这样大大地影响了算法的时间复杂度。本文从这两个方面对算法进行改进,观察条件公式和运用矩阵性质,实现了初始化算法,即逐列验证条件公式,再生成整体矩阵的由小到大的算法。并根据正定矩阵的性质,提出了第二种算法的可能性构想。在实验阶段,本文从三个方面分别考察了改进算法的性能:不同初始化算法下的算法成功率﹑最终解的个数﹑初始化算法运行时间。实验结果和理论分析基本一致,改进算法的效果在一定程度上达到了预期。同时,省略对称化步骤是影响Block Lanczos算法降低时间复杂度的重要措施。本文对简化对称化的两种公式形式进行研究和分析,讨论两者的优缺点,确定了改进算法中最终采用的公式形式。最后,在BlockLanczos算法并行化研究部分,本文首先对学者们筛选出的矩阵数据的构成进行充分地分析,发现矩阵数据分布呈一定规律。然后,本文组合最佳的数据存储方式,利用对于稠密数据处理最有效的CSR形式,而用SLE形式来处理稀疏部分,创造性地设计出了一种混合的数据存储方式,使得Block Lanczos算法的并行算法更加有效﹑灵活。