我的编程空间,编程开发者的网络收藏夹
学习永远不晚

网络安全攻防:密码技术之公钥密码

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

网络安全攻防:密码技术之公钥密码

对称密码可以实现对任意明文的高效加密,通常用于通信会话的加密,但随着对称加密应用越来越广,会话密钥的管理问题也随之面临挑战。假设网络中有n个实体需要两两通信,那么每个实体必须维护一把与其他任意一个实体之间的会话密钥,总的会话密钥数量为,即达到O(n2)的量级,密钥管理的复杂度明显增加。另一方面,分组加密主要依赖于多轮复合的扩散和混淆运算,安全强度有待进一步增强。

公钥密码也称非对称密码,即加密密钥和解密密钥不同,一个可被公开的密钥被称为公钥,一个私人专用保管的密钥被称为私钥。公钥与私钥在数学上是有紧密关系的,用公钥加密的信息只能用对应的私钥解密,反之亦然。由于公钥算法不需要联机密钥服务器,密钥分配变得简单。一个人可以在与许多人交往时使用相同的密钥对,而不必与每个人分别使用不同的密钥。只要私钥是保密的,就可以随意分发其公钥,用户可以与任意数目的人员共享一个密钥对,而不必为每个人单独设立一个密钥,显著降低了密钥管理复杂度,简化了密钥管理操作,有效提高了密码学的可用性。

公钥加密是一种干扰信息的方法,使用该方法的双方拥有一对密钥,其中一个可以公开分享,而另一个只有预定的目标接收方才知晓。任何人都可能使用私人的公开密钥对信息进行加密。但是,只要预定接收方的解密密钥被安全地保护起来,信息就无法被解密。一般而言,公钥算法的设计依赖于经典的数论难题,即将攻击者在没有私钥的情况下,破解一个公钥加密系统,等效映射到求解数论难题。这样,攻击者若能在没有私钥的情况下破解公钥加密,等效于其求解了公知的数论难题。这样的模型假设也因此成为公钥密码安全的保障基石。

1976年,Whitfield Diffie和Martin Hellman 共同发表了学术论文《New Direction in Cryptography》,创建了公钥加密体制。公钥加密是重大的创新,从根本上改变了加密和解密的过程,也成为40年来信息安全应用领域的一项核心技术。2015年,Diffie和Hellman两位密码学家也因创立发明公钥加密技术而获得有着计算机领域诺贝尔美誉的图灵奖。

1. Diffie-Hellman密钥交换算法

下面以Alice和Bob为例介绍以Diffie和Hellman命名的DH密钥交换原理。

(1)选定一个可公开的大质数p和底数g。

(2)Alice和Bob分别选定一个私有的素数a和b。

图1给出了Alice和Bob通过公开交换g、p、A、B,最终各自计算获得共享密钥K=gab的基本过程。DH密钥协商的目的是让Alice和Bob安全获得共享密钥,任何第三方实体即使截获双方通信数据,也无法计算得到相同的密钥。

图1  DH密钥交换原理

下面再看一个简单的实例,来说明Alice和Bob协商计算会话密钥K的过程。

1)Alice与Bob协定使用p=23,g=5。

2)Alice选择一个秘密整数a=6,计算A=gamodp并发送给Bob:A=56mod 23=8。

3)Bob选择一个秘密整数b=15,计算B=gbmodp并发送给Alice:B=515mod 23=19。

4)Alice计算K=Bamodp,即196mod 23=2。

5)Bob计算K=Abmodp,即815mod 23=2。

DH是一个公钥算法,应用的数论难题是大数的离散对数求解难题,即已知g、a,计算A=ga是容易的,但反之,已知A和g,求解a是困难的。这样,攻击者即便截获得到A和B,也无法计算得到a和b,因而也无法计算获得K。

2. RSA公钥算法

公开密钥算法是在 1976年由当时在美国斯坦福大学的 Diffie和Hellman 两人首先发明的,但是目前最流行的RSA算法则是1977年由MIT教授Ronald L.Rivest、Adi Shamir和Leonard M.Adleman共同发明的。RSA也是分别取自3名数学家人名的第一个字母。RSA算法依赖于大数因子分解难题,即给定两个大素数p、q,计算它们的乘积n=pq是容易的,但反之,给定n,求解p和q是一个经典的数论难题。

(1)密钥生成

①选择两个大素数:p和q。

②计算欧拉函数:φ(n)=(p−1)(q−1)。

③选择一个正整数e,使gcd(e,φ(n))=1,即e和φ(n)互为素数。

④根据de=1(modφ(n)),利用Euclid算法计算出d。

⑤公钥即为K=

⑥私钥即为S=

(2)公钥加密

①记明文信息为m(二进制),将m分成等长数据块m1,m2,…,mi,块长s,其中2s≤n。

②加密:ci≡mi^e(modn)

③解密:mi≡ci^d(modn)

一开始,RSA选用的n长度达到512 bit时,以当时的计算机运算能力,安全性已公认足够强大。随着并行计算水平的飞速发展以及量子计算等新型计算的出现,RSA的安全强度也开始受到威胁。目前,RSA选用的公钥长度已达到了4 096 bit。

相比于对称密码,公钥密码具有实现难度大、安全强度大、计算耗费大等特点。因此,在日常应用时,RSA算法和AES算法混合使用,通常被称作数字信封技术,如图2所示。

图2  数字信封技术

虽然安全强度大,但由于 RSA 公钥加密需耗费较大资源,因此通常会话加密采用的是AES分组密码,而AES会话密钥则可通过RSA公钥加密,AES密钥的加密结果随会话密文一起发送给接收方,这样的技术就叫数字信封,可以确保仅有持有RSA私钥的合法的接收方才能解开AES密钥,从而获得最终的会话明文。 

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

网络安全攻防:密码技术之公钥密码

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

网络安全攻防:密码技术之公钥密码

对称密码可以实现对任意明文的高效加密,通常用于通信会话的加密,但随着对称加密应用越来越广,会话密钥的管理问题也随之面临挑战。

网络安全攻防:密码技术之数字证书

数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。

网络安全攻防:对称密码

一种工作模式描述了加密每一数据块的过程,并常常使用基于一个通常称为初始化向量(IV)的附加输入值进行随机化,以保证数据加密安全。下面介绍目前几种常用的分组密码工作模式。

用密码技术护航网络安全

今天,密码技术已经成为保障网络与信息安全的重要支撑,在确认真伪、鉴别来源中的作用越来越突显。

解锁网络安全密码:数据加密与密钥管理的奥秘

数据加密与密钥管理是保护数字信息安全的核心技术。通过了解和掌握这些技术,我们可以有效地防止数据泄露和黑客攻击。

揭秘网络安全攻防战:信息收集和密码破解的黑客技巧与防护策略

今天的学习重点是网络安全基础知识,包括信息收集和弱口令密码破解。在信息收集方面,我们学习了目录信息的收集方法,特别是如何解析路径信息。在密码破解方面,我们讨论了使用简单的弱口令破解方法。同时,我也介绍了一些有效的防范渗透的方法。
网络安全2024-11-29

擂台赛-安全攻防之使用openssh后门获取root密码实战

前言 大家好,我是沐风晓月,我们开始组队学习了,介绍下我们的情况: 这几天跟队员 迎月,虹月,心月,古月打擂台,我和心月一组,相互攻占对方服务器。 终于在今早凌晨三点拿下对方服务器的权限。 接下来我们第一想做的就是如何维持这个权限,还要不被
2023-08-18

密码技术在车联网安全中的应用与挑战

对于车联网中密码技术的应用,虽然目前有关部门已经出台了一些规章制度,但规范促进监督作用仍然有限,行业政策法规还需进一步完善。

网络安全等级保护之商用密码管理办法

我经常在和人探讨等级保护时会注意区别等级保护制度和等级保护测评之间的关系。因为,社会上或者说市场上,大家把等级保护测评等同于等级保护的人太多了,所以在这里有必要再做一次区分。

密码应用安全性评估要点之动态口令技术常见问题探讨

无论是物理钥匙、暗号、静态口令、ID标签卡,还是指纹、人脸、虹膜等生物特征,都只是一种静态的身份鉴别信息/介质,因此在理论上都存在着可复制、易丢失、难以抵抗重放攻击等风险。

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录