📄 关于rsa.txt
字号:
这学期刚学密码学,RSA算法相对简单,于是写了这个小程序。
RSA的安全性依赖于大数分解。公钥和私钥都是两个大素数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。
数据加密算法RSA的关键在于大素数的生成,本软件采取数组形式解决大素数的存储和运算问题,并给出了生成大素数的一种方法,可生成超过1024位的十进制数的大素数,以应用于数据加密。
RSA的缺点主要有:产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。分组长度太大,为保证安全性,n 至少也要 600 bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。
对于明文是字母、数字、符号、汉字的各种组合都能正确加密解密
测试数据:
加密密钥:
{E, N} = { 4058909522923781627, 153870764068524986667864920209111888657}
128bit 256bit 512bit 1024bit
1KB 0 s 1 s 6 s 30 s
5KB 2 s 9 s 35 s 149 s
10KB 4 s 18 s 75 s 325 s
解密密钥:
{D, N} = { 14781867977920790397315320392274696923,
153870764068524986667864920209111888657}
明文:放假过来玩儿!<>:L"*)(&fafg5435
密文: 607239150944600199857642920586187421547030130687496212446896393856944474229148890641965890282696191120965431827171
解密后:放假过来玩儿!<>:L"*)(&fafg5435
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -