AES加密算法的硬件设计方法
|
在计算中,数据以三种状态存在:传输、静止和使用中。跨网络传输的数据状态是 “传输中”,保存在某种类型存储中的数据状态是 “静止的”,正在处理的数据状态是 “使用中”。
针对网络和存储设备的网络威胁越来越多,随着适用于传输和静止数据保护手段的加强,攻击者已将重点转移到了使用中数据上。常见的攻击包括内存抓取、CPU 旁道攻击和植入恶意软件。 4)密文解密 用户B收到密文后,若要将其解密,则只需要计算M≡Cd(mod n),即: M1=(C1)d(modn)=117(mod33)=11 M2=(C2)d(modn)=317(mod33)=05 M3=(C3)d(modn)=167(mod33)=25 用户B得到的明文信息为:11,05,25。根据上面的编码表将其转换为英文,即可得到恢复后的原文“key”。 当然,实际运用要比这复杂得多。由于RSA算法的公钥私钥的长度(模长度)须达到1024位甚至2048位才能保证安全,因此,p、q、e的选取、公钥私钥的生成、加密解密模指数的运算都有一定的计算程序,需要依赖计算机的高速计算能力来完成。 4、RSA加解密算法的安全性 在RSA密码应用中,公钥KU是被公开的,即e和n的数值可以被第三方窃听者得到。破解RSA密码的关键在于从已知的e和n的数值(n等于pq)中求出d的数值,从而得到私钥以破解密文。从上文中的公式:d≡e-1(mod((p-1)(q-1)))或de≡1(mod((p-1)(q-1)))可以看出,密码破解的实质问题是:从pq这一数值求出(p-1)和(q-1)。换句话说,只要求出p和q的值,就能求出d的值进而得到私钥。 若p和q是大素数,则从它们的积pq去分解因子p和q,就是一个公认的数学难题。例如,当pq大到1024位时,迄今为止还没有人能够利用任何计算工具完成其分解因子这一任务。因此,RSA从被提出到现在40余年,经历了各种攻击的考验,逐渐为人们所接受,被普遍认为是目前最优秀的公钥方案之一。 然而,虽然RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解的难度等价,即RSA的重大缺陷是无法从理论上把握它的保密性能。 此外,RSA的缺点还有: ① 产生密钥很麻烦,会受到素数产生技术的限制,因而难以做到一次一密; ② 分组长度太大,为保证安全性,n至少需要600 bits 以上,运算代价高,速度慢,较对称密码算法慢几个数量级,且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。
因此,使用RSA只能加密少量数据,大量的数据加密还要依靠对称密码算法。 你会用螺丝刀打钉吗?可能不会。然后,我们可能不应该尝试对所有内容都使用一种编程语言,每种语言都有自己的位置。 Go是用于系统编程的最佳语言。前端开发的最佳选择无疑是ReasonML,它满足了出色编程语言的大多数要求。Web API开发的绝对赢家是Elixir,它的唯一缺点是缺少静态类型系统(它被强大的生态系统,社区,可靠性和并发功能所抵消)。对于任何种类的并发/分布式软件,最好的选择还是Elixir。 如果你正在从事数据科学工作,那么不幸的是,唯一合理的选择是Python。
我真的希望这篇文章有用。比较编程语言绝非易事,但我已尽力而为。 (编辑:平凉站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
