第05章 非对称加密技术
第05章安全网上支付的技术基础

第五章 安全网上支付的技术基础
安全问题与需求
加
安全问题的提出
涉及的安全问题
密
模
式
安全与防火墙
公开密钥(接收方)
私有密钥(接收方)
平台的安全 防火墙技术
明文 密文 Internet 密文 明文
数据加密技术
接收方
对称密钥加密 非对称密钥加密 数字信封
发送方 图6-7公开密钥系统:加密模式
16
第五章 安全网上支付的技术基础
不对称加密又称为公开密钥加密,需要采用两个在 数学上相关的密钥对——公开密钥和私有密钥来对信息 进行加解密。 公开密钥加密技术是在1976年由斯坦福大学提出来 的。与对称密钥系统相比,公开密钥加密技术需要使用 一对相关的密钥:一个用来加密,另一个用来解密。该 技术的设想是,密钥对是与相应的系统联系在一起的, 其中私有密钥是由系统所保密持有的,而公开密钥则是 公开的,但知道公开密钥是不能推导出私有密钥的。 依据公开密钥是用作加密密钥还是解密密钥,公开 密钥系统有两种基本的模式:加密模式和验证模式。
数据完整性技术 密钥生成和可能的注册
数字摘要
数字签名 密 钥 分 发
密钥管理
密钥备份/恢复和密钥契约
安全的保障
密钥重置或更新
密
钥
撤
销
密钥终止,包括销毁和/或存档
21
第五章 安全网上支付的技术基础
数据完整性技术
数字摘要
数字签名
信息技术方面的措施,如防火墙、网络病毒、信息加密、 身份认证、授权等,但只有技术措施并不能保证百分百的 安全
9
第五章 安全网上支付的技术基础
安全问题与需求
安全问题的提出
涉及的安全问题
计算机网络安全中数据加密技术的运用研究

计算机网络安全中数据加密技术的运用研究摘要:加密技术的不断发展,通信安全在人们心目中有着更高的标准。
为了能够更安全,更有效地保护数据,必须要尽快对于网络安全机制进行完善,也就是必须使得数据能够更好被加密。
本文重点分析数据加密技术,从其特点,种类,算法,模型以及其如何应用等的方面进行研究,从而将数据加密技术的可靠性能予以证实。
关键词:数据加密技术算法计算机网络安全应用中图分类号:tn915.08 文献标识码:a 文章编号:1007-9416(2013)01-0170-02数据加密技术(data encryption technology)一般是在密码学的基础上,将数据传输过程中的明显信息以函数加密或者密钥加密等的办法进行处理,从而将该明显的信息变成只能被特定人群破解的密文,接受该信息的特定人群能够通过相应的解密方法解密这段密文,从而使得其他人不能破坏或偷窥信息。
从而保障了整体网络数据的安全性能。
1 数据加密技术概述1.1 加密系统的构成任何加密系统,不论形式多么复杂,都至少包括明文、密文、加解密装置或算法和密钥4部分组成。
加密系统模型如图1所示:1.2 数据加密技术的算法数据加密算法一般被人们分为四大类:(1)循环冗余校验算法。
这种算法主要是通过在网络数据包和电脑档案中产生32或16位的散列函数,从而在该信息错误或者丢失的情况下,产生错误的信息从而校验。
这种算法对于错误产生于被干扰的传输通道有着非常好的效果,所以在数据加密中使用非常普遍。
(2)循xor与循环移位操作算法。
这种加密算法的本质是将数据的位置进行变换,也就是在处理的过程中,按照顺次或者逆次的方向将每个数据中的字节进行移位,然后用xor的方式将信息处理为密文。
这种算法在计算机上操作非常方便,并且有着很高的加密性质。
(3)置换表算法。
这种算法在数据加密的过程中出现较早,并且算法太过于简单,其通过将信息中的数据段按照坐标的方式进行位移,从而将修改后的数据整合为密文,接受者可以按照相同的位移方式进行反操作,从而使得该信息能够被解读。
非对称密钥加密

<2> 非对称密钥加密又叫作公开密钥加密算法。
在非对称加密体系中,密钥被分解为一对(即一把公开密钥或加密密钥和一把私有密钥或解密密钥)。
这对密钥中的任何一把都可作为公开密钥(加密密钥)通过非保密方式向他人公开,而另一把则作为私有密钥(解密密钥)加以保存。
公开密钥用于对机密性信息的加密,私有密钥则用于对加密信息的解密。
私有密钥只能由生成密钥对的用户掌握,公开密钥可广泛发布,但它只对应于生成该密钥的用户。
公开密钥加密技术解决了密钥的发布和管理问题,是目前商业密码的核心。
使用公开密钥技术,数据通信的双方可以安全的确认对方的身份和公开密钥。
非对称密钥加密算法主要有RSA、PGP等。
----数据加密技术可以分为三类,即对称型加密、不对称型加密和不可逆加密。
----对称型加密使用单个密钥对数据进行加密或解密,其特点是计算量小、加密效率高。
但是此类算法在分布式系统上使用较为困难,主要是密钥管理困难,使用成本较高,保安性能也不易保证。
这类算法的代表是在计算机专网系统中广泛使用的DES(Digital Encryption Standard)算法。
----不对称型加密算法也称公用密钥算法,其特点是有二个密钥(即公用密钥和私有密钥),只有二者搭配使用才能完成加密和解密的全过程。
由于不对称算法拥有两个密钥,它特别适用于分布式系统中的数据加密,在Internet中得到了广泛应用。
其中公用密钥在网上公布,为数据源对数据加密使用,而用于解密的相应私有密钥则由数据的收信方妥善保管。
----不对称加密的另一用法称为“数字签名(Digital signature)”,即数据源使用其密钥对数据的校验和(Check Sum)或其他与数据内容有关的变量进行加密,而数据接收方则用相应的公用密钥解读“数字签名”,并将解读结果用于对数据完整性的检验。
在网络系统中得到应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA算法(Digital Signature Algorithm)。
SQL Server 2005数据加密技术的功能特性与实现

须知 道 或可 以访 问加 密 密钥 。这 使 得 组 织 必 须 在 其 环 境 中考 虑安 全 管 理 问题 和密 钥 管 理 问 题 。存 在 安 全 管 理 问题 的原 因是 由 于组 织 必 须将 此 加 密 密 钥 发 送 给 所 有 要 求 访 问加 密数 据 的一 方 。组 织 必 须 考 虑 的 密 钥 管 理 问题 包 括 密 钥 生 成 、分 发 、备 份 、重 新 生 成 和 生 命 周 期 。对 称 加 密 提 供 对 加 密 数据 的 授 权 。 对 称 加 密 使
《 农业网络信息》。 8 2H 年第 1 期 应 用实践 D 1
S ev r 0 5数 据加 密 技 术 的 QLS re 0 2 功 能特 性 与 实现
李 华 黄双根 陈飞平 , ,
(. 西农业 大学 职业技 术师 范学 院, 1江 江西 南 昌 304 ; 2 江西 农业 大学 园林与 艺术 学 院,江西 南 昌 30 4 ) 305 . 30 5
gv n t ห้องสมุดไป่ตู้ w h peain p o e s ie os o te o r t r c s. o
K yw r s Q e e 2 0 ; a n r t n Pi i e A p ct n e o d : LSr r 0 5 D t e cy i ; r c l p l a o S v a po np; i i
适 合 大 量 数据 的加 密 和 解 密
数 据 的 加 密密 钥 与解 密 密 钥 不 同 。但 是 , 由于 非 对 称
1 引 言
为 了防止某些别有 用心 的人从外 部访 问数据 库 . 盗 取 数 据 库 中的 用 户 姓 名 、密 码 、信 用 卡 号 等 重 要 信
对称加密和非对称加密

对称加密和⾮对称加密⼀、对称加密算法对称加密采⽤了对称密码编码技术,它的特点是⽂件加密和解密使⽤相同的密钥加密也就是密钥也可以⽤作解密密钥,这种⽅法在密码学中叫做对称加密算法,对称加密算法使⽤起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另⼀个对称密钥加密系统是国际数据加密算法(IDEA),它⽐DES的加密性好,⽽且对计算机功能要求也没有那么⾼对称加密算法在电⼦商务交易过程中存在⼏个问题:1、要求提供⼀条安全的渠道使通讯双⽅在⾸次通讯时协商⼀个共同的密钥。
直接的⾯对⾯协商可能是不现实⽽且难于实施的,所以双⽅可能需要借助于邮件和电话等其它相对不够安全的⼿段来进⾏协商;2、密钥的数⽬难于管理。
因为对于每⼀个合作者都需要使⽤不同的密钥,很难适应开放社会中⼤量的信息交流;3、对称加密算法⼀般不能提供信息完整性的鉴别。
它⽆法验证发送者和接受者的⾝份;4、对称密钥的管理和分发⼯作是⼀件具有潜在危险的和烦琐的过程。
对称加密是基于共同保守秘密来实现的,采⽤对称加密技术的贸易双⽅必须保证采⽤的是相同的密钥,保证彼此密钥的交换是安全可靠的,同时还要设定防⽌密钥泄密和更改密钥的程序。
假设两个⽤户需要使⽤对称加密⽅法加密然后交换数据,则⽤户最少需要2个密钥并交换使⽤,如果企业内⽤户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的⽣成和分发将成为企业信息部门的恶梦。
常见的对称加密算法有DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES常⽤算法介绍:(1)DES(Data Encryption Standard,数据加密算法) DES是最基本的对称加密算法,也是使⽤频率最⾼的⼀种算法,加密密钥与解密密钥相同。
DES出⾝⽐较好,出⾃IBM之⼿,后被美国军⽅采纳,之后便⼴泛流传,但是近些年使⽤越来越少,因为DES使⽤56位密钥,以现代计算能⼒,24⼩时内即可被破解。
虽然如此,在某些简单应⽤中,我们还是可以使⽤DES加密算法。
第05章 用户身份可鉴别性机制

第5章
用户身份可鉴别性机制
证书机构
证书机构——公钥基础设施的核心机构 证书机构的作用
(1)证书的数字签名与发放,用户相信证 书的真假主要看是否是可信的CA签名的, 因此CA对证书的签名很重要。
(2)证书的管理工作,如跟踪证书状态, 对因故无效的证书发出吊销通知等等
第5章
用户身份可鉴别性机制
5.3.4 证书的生成
(b)第二个检查是保证用户持有的证书请求中 发送的公钥与用户自己的私钥相对应。 这很重要,因为我们必须证明用户拥有 与这个公钥对应的私钥,否则用私钥签名的 消息用公钥解密不了。
这个检查称为检查私钥的拥有证明(POP,
Proof Of Possession)。 如何验证?
第5章
用户身份可鉴别性机制
数字证书是个计算机文件,文件的扩展名为
.cer
护照证明了什么?数字证书又证明了什么? 护照证明我与姓名、国籍、出生日期和地点
、照片与签名等关联的正确性
数字证书证明我与公开密钥关联的正确性。
第5章
用户身份可鉴别性机制
数字证书概述
数字证书建立用户与公钥的关联。因此,
数字证书要包含用户名和用户的公钥,证明 特定公钥属于某个用户。
第5章
用户身份可鉴别性机制
口令的管理
口令管理涉及的方面
–传输形式:明文or密文 –存储形式:原口令or口令摘要 –对简单用户口令的处理措施:直接or加盐 –初始口令如何设置 –初始口令如何交付给用户 –口令遗忘的处理方式:重申、找回 –口令的方便性:记住口令、设备自动产生
第5章
用户身份可鉴别性机制
公钥与私钥的三种验证机制
(1)RA可以要求用户用私钥对证书签名请求( 即注册的证书内容)进行数字签名。如果RA 能用这个用户的公钥验证签名正确性,则可 以相信这个用户拥有该私钥。(发起方在用 户)
非对称加密算法(RSA、DSA、ECC、DH)

⾮对称加密算法(RSA、DSA、ECC、DH)⾮对称加密算法 (RSA、DSA、ECC、DH)1.1 概念⾮对称加密需要两个密钥:公钥 (publickey) 和私钥 (privatekey)。
公钥和私钥是⼀对,如果⽤公钥对数据加密,那么只能⽤对应的私钥解密。
如果⽤私钥对数据加密,只能⽤对应的公钥进⾏解密。
因为加密和解密⽤的是不同的密钥,所以称为⾮对称加密。
⾮对称加密算法的保密性好,它消除了最终⽤户交换密钥的需要。
但是加解密速度要远远慢于对称加密,在某些极端情况下,甚⾄能⽐对称加密慢上1000倍。
1.2 特点算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,⽽使得加密解密速度没有对称加密解密的速度快。
对称密码体制中只有⼀种密钥,并且是⾮公开的,如果要解密就得让对⽅知道密钥。
所以保证其安全性就是保证密钥的安全,⽽⾮对称密钥体制有两种密钥,其中⼀个是公开的,这样就可以不需要像对称密码那样传输对⽅的密钥了。
这样安全性就⼤了很多。
1.3 ⼯作原理(1) A 要向 B 发送信息,A 和 B 都要产⽣⼀对⽤于加密和解密的公钥和私钥。
(2) A 的私钥保密,A 的公钥告诉 B;B 的私钥保密,B 的公钥告诉 A。
(3) A 要给 B 发送信息时,A ⽤ B 的公钥加密信息,因为 A 知道 B 的公钥。
(4) A 将这个消息发给 B (已经⽤ B 的公钥加密消息)。
(5) B 收到这个消息后,B ⽤⾃⼰的私钥解密 A 的消息。
其他所有收到这个报⽂的⼈都⽆法解密,因为只有 B 才有 B 的私钥。
1.4 主要算法RSA、Elgamal、背包算法、Rabin、D-H、ECC (椭圆曲线加密算法)。
使⽤最⼴泛的是 RSA 算法,Elgamal 是另⼀种常⽤的⾮对称加密算法。
1.5 应⽤场景(1) 信息加密收信者是唯⼀能够解开加密信息的⼈,因此收信者⼿⾥的必须是私钥。
发信者⼿⾥的是公钥,其它⼈知道公钥没有关系,因为其它⼈发来的信息对收信者没有意义。
4.4非对称密码技术

为实现加密,需要公开(e, n),为实现解密需要(d, n)。
问题……
如何计算ab mod n?
如何判定一个给定的整数是素数? 如何找到足够大的素数p和q ?
如何计算ab mod n?
要点1:(a x b) mod n = [(a mod n) x (b mod n)] mod n] 要点2:a16=aaaaaaaaaaaaaaaa =a2, a4,a8, a16 更一般性的问题:am k m的二进制表示为bkbk-1…b0, 则 m bi 2 i
4.4.1 非对称密码学的基本原理
4.4.1 非对称密码学的基本原理
4.4.1 非对称密码学的基本原理
4.4.1 非对称密码学的基本原理
涉及到各方:发送方、接收方、攻击者 涉及到数据:公钥、私钥、明文、密文 非对称密码算法的条件:
产生一对密钥是计算可行的 已知明文m和公钥PK,计算c=Epk(m)是容易的. 已知明文m和私钥SK,计算c=Esk(m)是容易的. 对于攻击者,利用公钥来推断私钥是计算不可行的 已知公钥和密文,恢复明文是计算不可行的 (可选)加密和解密的顺序可交换
公钥
C f ( M ) M e mod n
M f 1 (C ) C d mod n
私钥 图 RSA利用单向陷门函数的原理
开 始
产 生 第 一 个 素 数
产 生 第 二 个 素 数
两 个 素 数 是 否 相 同
否
产 生 公 钥
求 欧 拉 值
产 生 加 密 密 钥
产 生 解 密 密 钥
如何判定一个给定的整数是素数
Miller and Rabin, WITNESS算法 WITNESS(a,n) 判定n 是否为素数,a是某个小于n的整数
数据安全和隐私保护

云安全合规
企业应遵守云安全合规要求,保护数据安全和 隐私。合规机制可以提高企业在云计算环境中 的数据安全性。
数据安全挑战
数据传输安全
01 加密传输通道,防止数据泄露
数据存储安全
02 使用加密数据存储,保护数据不被篡改
权限管理
03 确保只有授权人员可以访问数据
●05
第5章 数据安全和隐私保
护在大数据环境中的挑战
●07
第7章 总结
数据安全和隐私 保护的重要性
数据安全和隐私保护是企业发展和用户权益保 护的基础。在当今信息化时代,数据扮演着至 关重要的角色,因此保障数据安全和隐私至关 重要。只有保障了数据的安全和隐私,才能有 效促进数字经济的健康发展。
数据安全和隐私保护的重要性
企业发展基础 确保数据不被泄露或篡改
数据存储
加密技术保护数据在存 储介质中的安全性 防止数据泄露或被窃取
访问控制
加密技术限制数据的访 问权限 确保只有授权用户可以 访问
选择合适的加密技术
需求分析
应用场景
根据具体需求选择适用的加密算 根据不同应用场景选择合适的
法
加密方案
安全性考量
评估加密技术的安全性和可靠 性
●03
第3章 隐私保护技术
●06
第6章 数据安全和隐私保
护的未来发展
未来趋势
未来数据安全和隐私保护将更加关注用户控制 权和透明度。技术将不断创新,以应对日益增 长的安全威胁和隐私挑战。
个性化隐私保护
自定义隐私策略 用户可以定制隐私保护策略
提高隐私保护效果 个性化技术将成为未来发展的 重要方向
共享数据安全
关键课题
01 共享数据安全将成为未来数据安全的关键课题
对称与非对称加密

对称密码体制的其它算法
2、IDEA 类似于TDEA,是一种分组密码算法, 分组长度为64位,但密钥长度为128位。 3、AES(高级加密标准) 是一种分组长度和密钥长度都可变的分 组密码算法,其分长度和密钥长度分别 可为128、192和256,具有安全、高效和 灵活等特点。
非对称加密体制
对称密钥加密方法存在的问题: 1、密钥的生成、管理、分发等都很 复杂; 2、不能实现数字签名。
混合加密方法
发送者将明文用对称加密算法加密后传 给接收者, 给接收者 , 再将对称加密的密钥用接收者 的公钥加密传给接收者, 的公钥加密传给接收者 , 接收者再用自已 的私钥解密得到对称加密的密钥, 的私钥解密得到对称加密的密钥 , 从而解 密明文。 密明文。 提问:如何解决数字签名的问题? 提问:如何解决数字签名的问题?
DES加密算法是由 IBM 研究在1977年提出的。并被美 国国家标准局宣布为数据加密标准DES,主要用于民用 敏感信息的加密
分组加密算法:明文和密文为 位分组长度 分组加密算法:明文和密文为64位分组长度 对称算法:加密和解密除密钥编排不同外, 对称算法:加密和解密除密钥编排不同外,使用 同一算法 密钥长度: 位 每个第8位为奇偶校验位 密钥长度:56位,每个第 位为奇偶校验位 采用混乱和扩散的组合, 采用混乱和扩散的组合,每个组合采用替代和置 换方法, 换方法,共16轮运算 轮运算 只使用了标准的算术和逻辑运算,运算速度快, 只使用了标准的算术和逻辑运算,运算速度快, 通用性强, 通用性强,易于实现
混合加密方法
对称密钥密码算法的特点:算法简单, 解 对称密钥密码算法的特点:算法简单,加/解 密速度快,但密钥管理复杂,不便于数字签名; 密速度快,但密钥管理复杂,不便于数字签名; 非对称密钥密码算法的特点:算法复杂, 非对称密钥密码算法的特点:算法复杂,加/ 解密速度慢,密钥管理简单,可用于数字签名。 解密速度慢,密钥管理简单,可用于数字签名。 所以将两者结合起来,形成混合加密方法。 所以将两者结合起来,形成混合称加密算法
第三讲 数据加密-非对称加密算法讲解

解决方法:
一钥一密 定期更换
密钥的管理和分发
密钥的分发
– 问题? – 改进!
非对称加密算法
算法和密钥
明文M,密文C,加密E,解密D 密钥用K表示
– K可以是很多数值里的任意值,密钥K的可能值的范围叫做 密钥空间。加密和解密运算都使用这个密钥,即运算都依赖 于密钥,并用K作为下标表示,加解密函数表达为: – E(M , k)=C – D(C , k)=M – D(E(M , k), k)=M,如图所示。
Triple-DES
三重两钥DES(tri-DES/2) 112-bites(equivalent to 34 digits) Any Number between 0 to 5192296858534827628530496329220095
– – – – 两个密钥K1,K2 Encrypt with K1 Decrypt with K2 Encrypt with K1
RSA算法描述1
描述如下: (1)、生成两个大素数p和q。 (2)、计算这两个素数的乘积n=p×q。 (3)、计算欧拉函数φ(n)=(p-1)(q-1)。
– 欧拉函数参见教材p63
(4)、选择一个随机数e满足1<e<φ(n),并且e和 φ(n)互质,即gcd(b, φ(n))=1。 (5)、计算ed=1 mod φ(n)。
AES
National Security Agency approved AES in june 2003 for pretecting top-level secrets within US gov agencies
密钥的管理和分发
使用同样的密钥的范围
非对称加密算法

⾮对称加密算法个⼈博客⽹: (你想要这⾥多有)⼀、概述因为加密和解密使⽤的是两个不同的密钥,所以这种算法叫作⾮对称加密算法.⾮对称加密算法需要两个密钥:公开密钥和私有密钥. 公开密钥与私有密钥是⼀对的,这两个共同组成⼀个解钥,才能实现解密。
特点:⾼级、双保险种类:1. DH(Diffie-Hellman)密钥交换算法2. RSA——基于因⼦分解,RSA是可以双向加密的:私钥加密,公钥解密;公钥加密,私钥解密。
3. EIGamal——基于离散对数4. ECC(Elliptical Curve Cryptography)——椭圆曲线加密说明:如果⽤公开密钥对数据进⾏加密,只有⽤对应的私有密钥才能解密. 如果⽤私有密钥对数据进⾏加密,那么只有⽤对应的公开密钥才能解密(某些算法有提供). ⾮对称加密算法实现机密信息交换的基本过程是: 甲⽅⽣成⼀对密钥并将其中的⼀把作为公⽤密钥向其它⽅公开,得到该公⽤密钥的⼄⽅使⽤该密钥对信息进⾏加密后再发送给甲⽅. 甲⽅再⽤⾃⼰保存的另⼀把专⽤密钥对加密后的信息进⾏解密. 另⼀⽅⾯,甲⽅可以使⽤⼄⽅提供的公钥对信息进⾏加密后再发送给⼄⽅,⼄⽅再⽤⾃⼰的私匙对数据进⾏解密.⼆、密钥交换算法DH1、DH算法概述DH 对称加密算法:数据安全、密钥管理复杂、密钥传递过程复杂(存在密钥泄露问题)⾮对称加密算法的特点:算法强度复杂、安全性依赖于算法与密钥.但是由于算法复杂,使得⾮对称算法加解密速度没有对称算法加解密的速度快.对称密钥体制中只有⼀种密钥,并且是⾮公开的,如果要解密就得让对⽅知道密钥.所以保证其安全性就是保证密钥的安全.⾮对称密钥体制有两种密钥,其中⼀个是公开的,这样就可以不需要像对称密码那样向对⽅传输密钥了.因此安全性就⼤了很多.对称密钥与⾮对称密钥⽐较:算法复杂度:对称密钥<⾮对称密钥加解密速度:对称密钥>⾮对称密钥安全性:对称密钥<⾮对称密钥2、DH算法实现过程及相关类详解【1】DH加密算法密钥交换:初始化发送⽅密钥,如:KeyPairGeneratorKeyPairPublicKey//创建KeyPairGenerator对象通过KeyPairGenerator来得到KeyPair类的对象,KeyPairGenerator senderKeyPairGenerator = KeyPairGenerator.getInstance("DH");初始化接收⽅密钥,如:KeyFactoryX509EncodedKeySpecDHPublicKeyDHParameterSpecKeyPairGeneratorPrivateKey【2】密钥构建KeyAgreementSecreKeyKeyactoryX509EncodedKeySpecPublicKeystatic KeyAgreement getInstance(String algorithm)⽣成实现指定密钥⼀致算法的KeyAgreement对象【3】加密、解密CipherCipher cipher = Cipher.getInstance( " DES " );3、DH算法实现package .des;import java.security.KeyFactory;import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.PrivateKey;import java.security.PublicKey;import java.security.spec.X509EncodedKeySpec;import java.util.HashMap;import java.util.Map;import java.util.Objects;import javax.crypto.Cipher;import javax.crypto.KeyAgreement;import javax.crypto.SecretKey;import javax.crypto.interfaces.DHPrivateKey;import javax.crypto.interfaces.DHPublicKey;import javax.crypto.spec.DHParameterSpec;import javax.sound.midi.Soundbank;import mons.codec.binary.Base64;import org.bouncycastle.crypto.agreement.srp.SRP6Client;import org.bouncycastle.jcajce.provider.asymmetric.X509;import org.omg.CORBA.PUBLIC_MEMBER;public class DH {static String string = "wen-min";public static void main(String[] args) {DH.jdkDH();}public static void jdkDH() {try {//1.初始化发送⽅密钥KeyPairGenerator senderKeyPairGenerator = KeyPairGenerator.getInstance("DH");senderKeyPairGenerator.initialize(512);KeyPair senderKeyPair = senderKeyPairGenerator.generateKeyPair();byte[] senderPublicKeyEnc = senderKeyPair.getPublic().getEncoded();//发送⽅公钥,发送给接收⽅ //2.初始化接收⽅密钥KeyFactory receiverKeyFactory = KeyFactory.getInstance("DH");X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(senderPublicKeyEnc); PublicKey receiverPublicKey = receiverKeyFactory.generatePublic(x509EncodedKeySpec);DHParameterSpec dhParameterSpec = ((DHPublicKey)receiverPublicKey).getParams();KeyPairGenerator receiverKeyPairGenerator = KeyPairGenerator.getInstance("DH");receiverKeyPairGenerator.initialize(dhParameterSpec);KeyPair receiverKeypair = receiverKeyPairGenerator.generateKeyPair();PrivateKey receiverPrivateKey = receiverKeypair.getPrivate();byte[] receiverPublicKeyEnc = receiverKeypair.getPublic().getEncoded();//3.密钥构建KeyAgreement receiverKeyAgreement = KeyAgreement.getInstance("DH");receiverKeyAgreement.init(receiverPrivateKey);receiverKeyAgreement.doPhase(receiverPublicKey,true);SecretKey receiverDesKey = receiverKeyAgreement.generateSecret("DES");KeyFactory senderKeyFactory = KeyFactory.getInstance("DH");x509EncodedKeySpec = new X509EncodedKeySpec(receiverPublicKeyEnc);PublicKey senderPublicKey = senderKeyFactory.generatePublic(x509EncodedKeySpec);KeyAgreement senderKeyAgreement = KeyAgreement.getInstance("DH");senderKeyAgreement.init(senderKeyPair.getPrivate());senderKeyAgreement.doPhase(senderPublicKey, true);SecretKey senderDesKey = senderKeyAgreement.generateSecret("DES");if(Objects.equals(receiverDesKey, senderDesKey)) {System.out.println("双⽅密钥相同");}//4.加密Cipher cipher = Cipher.getInstance("DES");cipher.init(Cipher.ENCRYPT_MODE, senderDesKey);byte[] result = cipher.doFinal(string.getBytes());System.out.println("jdk dh eccrypt :" + Base64.encodeBase64String(result));//5.解密cipher.init(Cipher.DECRYPT_MODE, senderDesKey);result = cipher.doFinal(result);System.out.println("jdk dh decrypt : " + new String(result));} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}}执⾏结果:双⽅密钥相同jdk dh eccrypt :Ra+RRytG7xw=jdk dh decrypt : wen-min4、DH加密算法的消息传递机制:1.甲⽅构建密钥对⼉,将公钥公布给⼄⽅,将私钥保留;双⽅约定数据加密算法;⼄⽅通过甲⽅公钥构建密钥对⼉,将公钥公布给甲⽅,将私钥保留。
非对称加密技术在互联网通信中的应用

非对称加密技术在互联网通信中的应用随着互联网的发展,我们离不开各种网络通信。
无论是在线购物、网银转账、社交网络,我们的个人隐私和财务信息都需要通过网络传送。
为了保障我们的隐私和安全,逐渐出现了各种加密技术。
其中,非对称加密技术应用广泛,本文将分析非对称加密技术在互联网通信中的应用。
1. 非对称加密技术的概念非对称加密技术是一种密码学技术,在传输数据的时候,加密和解密使用的密钥是不同的。
在这种加密方式下,发送方使用公开的密钥来加密信息,接收方使用自己的私有密钥来解密信息。
由于发送方无法获得私有密钥,所以无法破解信息。
在这种加密方式下,即使信息被窃取,也无法被破解,因此具有更高的安全性。
2. HTTPS协议中的应用HTTPS协议是一种安全的HTTP传输协议,采用SSL/TLS协议加密通信数据。
HTTPS协议采用非对称加密技术,将公钥发送给客户端,客户端使用公钥来加密数据后发送给服务器。
服务器利用自己的私钥来解密数据,确保数据的安全性。
双方使用的密钥不同,即使信息被截获,也无法破解数据。
从而保证了网站的安全性和用户隐私的保护。
3. 数字签名的使用数字签名是非对称加密技术的一种应用,用来确保信息的完整性和来源可信。
数字签名的原理是将信息的摘要(消息摘要)用私有密钥进行加密,生成数字签名。
接收方收到信息后,使用公共密钥解密数字签名,比较计算出的消息摘要和接收到的消息摘要,从而验证信息的完整性和来源。
数字签名常用于在金融、法律、电子政务等领域中。
例如,在在线支付中使用数字签名可以防止支付信息被篡改。
4. SSH协议中的应用SSH协议是一种加密的远程登录协议。
与传统的远程登录协议不同,SSH协议采用非对称加密技术对传输的数据进行加密,防止传输内容被黑客窃取或中途被篡改。
SSH协议的实现中使用RSA等非对称加密算法,确保了信息传输的安全性。
5. PGP邮件加密的应用PGP(Pretty Good Privacy)是一种邮件加密软件,使用非对称加密技术进行加密和解密邮件。
对称加密与非对称加密

对称加密与⾮对称加密转载请注明出处(⼀)对称加密(Symmetric Cryptography)对称加密是最快速、最简单的⼀种加密⽅式,加密(encryption)与解密(decryption)⽤的是同样的密钥(secret key)。
对称加密有很多种算法,由于它效率很⾼,所以被⼴泛使⽤在很多加密协议的核⼼当中。
对称加密通常使⽤的是相对较⼩的密钥,⼀般⼩于256 bit。
因为密钥越⼤,加密越强,但加密与解密的过程越慢。
如果你只⽤1 bit来做这个密钥,那⿊客们可以先试着⽤0来解密,不⾏的话就再⽤1解;但如果你的密钥有1 MB⼤,⿊客们可能永远也⽆法破解,但加密和解密的过程要花费很长的时间。
密钥的⼤⼩既要照顾到安全性,也要照顾到效率,是⼀个trade-off。
2000年10⽉2⽇,美国国家标准与技术研究所(NIST--American National Institute of Standards and Technology)选择了Rijndael算法作为新的⾼级加密标准(AES--Advanced Encryption Standard)。
.NET中包含了Rijndael算法,类名叫RijndaelManaged,下⾯举个例⼦。
加密过程:private string myData = "hello";private string myPassword = "OpenSesame";private byte[] cipherText;private byte[] salt = { 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x5, 0x4, 0x3, 0x2, 0x1, 0x0 };private void mnuSymmetricEncryption_Click(object sender, RoutedEventArgs e){var key = new Rfc2898DeriveBytes(myPassword, salt);// Encrypt the data.var algorithm = new RijndaelManaged();algorithm.Key = key.GetBytes(16);algorithm.IV = key.GetBytes(16);var sourceBytes = new System.Text.UnicodeEncoding().GetBytes(myData);using (var sourceStream = new MemoryStream(sourceBytes))using (var destinationStream = new MemoryStream())using (var crypto = new CryptoStream(sourceStream, algorithm.CreateEncryptor(), CryptoStreamMode.Read)){moveBytes(crypto, destinationStream);cipherText = destinationStream.ToArray();}MessageBox.Show(String.Format("Data:{0}{1}Encrypted and Encoded:{2}", myData, Environment.NewLine, Convert.ToBase64String(cipherText)));}private void moveBytes(Stream source, Stream dest){byte[] bytes = new byte[2048];var count = source.Read(bytes, 0, bytes.Length);while (0 != count){dest.Write(bytes, 0, count);count = source.Read(bytes, 0, bytes.Length);}}解密过程:private void mnuSymmetricDecryption_Click(object sender, RoutedEventArgs e){if (cipherText == null){MessageBox.Show("Encrypt Data First!");return;}var key = new Rfc2898DeriveBytes(myPassword, salt);// Try to decrypt, thus showing it can be round-tripped.var algorithm = new RijndaelManaged();algorithm.Key = key.GetBytes(16);algorithm.IV = key.GetBytes(16);using (var sourceStream = new MemoryStream(cipherText))using (var destinationStream = new MemoryStream())using (var crypto = new CryptoStream(sourceStream, algorithm.CreateDecryptor(), CryptoStreamMode.Read)){moveBytes(crypto, destinationStream);var decryptedBytes = destinationStream.ToArray();var decryptedMessage = new UnicodeEncoding().GetString(decryptedBytes);MessageBox.Show(decryptedMessage);}}对称加密的⼀⼤缺点是密钥的管理与分配,换句话说,如何把密钥发送到需要解密你的消息的⼈的⼿⾥是⼀个问题。
非对称密钥算法

非对称密钥算法非对称密钥算法是一种特殊的密钥加密算法,也被称为公开密钥加密和单向加密。
它利用一对秘密密钥(公钥和私钥)来实现加密和解密。
一般来说,公钥由发送方事先发布给接收方,而私钥由发送方保留,不会被发布给任何人,包括接收方。
这样,发送方可以使用自己的私钥加密消息,并使用接收方公钥将其解密,而接收方却无法使用自己的私钥加密任何消息,因为它本身就不拥有任何私钥。
公钥加密算法是目前被广泛应用的一种安全通信技术,它包括RSA,ElGamal,D-H密钥交换,Elliptic Curve Cryptography(ECC)等算法,这些算法的重点是实现高级的隐私保护和数据安全。
RSA算法是目前在网络安全方面被广泛应用的公钥加密算法,它是由美国科学家Ron Rivest,Adi Shamir和Len Adleman发明的。
RSA的主要思想是用一对公开的密钥来完成加密和解密,这对密钥分别是一个公钥和一个私钥,这两个密钥是互不相通的,不能够从另一个密钥计算出来,也不能够从明文计算出来。
只有拥有私钥的收件人能够解密加密的消息,而拥有公钥的任何人都可以把消息加密给收件人。
ElGamal算法是由Taher Elgamal发明的公开密钥系统,它是一种椭圆曲线密码(ECC)。
与RSA不同,ElGamal可以同时用来加密和签名。
此外,ElGamal的安全性更高,因为它的密码长度可以更小,在相同的安全级别下比RSA更加有效。
DH密钥交换是一种没有中心机构的方式,可以在双方之间进行安全的通信,也被称为Diffie-Hellman密钥交换算法。
它利用两个实体之间的共同协商,可以产生一组密钥,用来加密和解密数据,并在双方之间交换信息。
它和RSA有许多相似之处,但又有所不同,它不需要生成共享私钥,而是向另一方发送其共享公钥,然后根据该公钥生成一组密钥,其中包含一个共享的私钥,这样,双方就各自拥有一份共享的私钥,而无需中央机关担任中介者。
非对称加密概述

非对称加密概述前言在阅读《精通比特币》的过程中,我发现比特币系统中有两个重要的概念需要利用非对称加密技术:比特币地址的生成交易合法性的验证因此,我用了几天时间学习了密码学基础知识,尤其是非对称加密技术的原理。
这里加以整理总结,本文只求通俗,必需涉及数学公式才能解释的部分只给出优质教程的链接,根据需求选择学习就好。
本文以一个一脸懵逼的新手视角进行介绍:•想了解非对称加密,那么对称加密是什么?•非对称加密又是什么??•非对称加密技术能做什么•如果想深入了解非对称加密算法原理看哪些资料•先说说对称加密想了解非对称加密,不妨先解释对称加密是什么对称加密,全称应该是对称密钥加密(Symmetric-key algorithm),是密码学中的一类基本的加密算法。
这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。
而在密码学中,密钥(key)是指某个用来完成加密、解密、完整性验证等密码学应用的秘密信息。
一个密钥大概长这样“A56FDJK3 dj2slh345dhi”,一般以一定长度的字母和数字组成的字符串来表达,具体长度和使用的字母由具体的加密算法规定,没有统一规定。
下面用例子和图来直观解释对称密钥加密,有请出密码学中出镜率最高的两个人:Alice和Bob假设Alice正在利用网络向Bob发送一条消息“Alice已向Bob转账1BTC,请查收。
”由于通信过程不能保证是安全的,两人的通信暴露在网络中是存在被第三方劫持的可能因此Alice和Bob商量使用对称加密方法对消息进行。
为了安全,两人私下确定了使用的加密规则(例如对称加密算法DES),以及密钥(例如“AliceBobKey”)于是新的通信过程如下图所示:从图中可以看出,Alice使用事先商量好的加密算法和密钥对消息进行加密,通过互联网发送给Bob,Bob收到密文后,使用同样的算法和密钥对密文进行解密。
加密-解密的过程完全对称,因此被称为对称密钥加密。
非对称加密原理

非对称加密原理
非对称加密,又称为公钥加密,是一种加密技术,它使用了一对密钥来进行加
密和解密操作。
这对密钥包括了公钥和私钥,公钥用于加密,私钥用于解密。
非对称加密的原理是基于数学上的难解问题,例如大素数的乘积分解。
在非对称加密中,公钥是公开的,任何人都可以获得并使用它来加密数据,而私钥则只有数据的接收者才能获得,用来解密数据。
非对称加密的原理可以通过以下步骤来解释:
1. 生成密钥对,首先,需要生成一对密钥,包括公钥和私钥。
公钥可以公开给
任何人,而私钥则需要妥善保管,只有数据的接收者才能获得。
2. 加密数据,发送方使用接收方的公钥来加密数据。
这样,只有拥有私钥的接
收方才能解密数据。
3. 解密数据,接收方使用自己的私钥来解密数据,从而获取原始的明文数据。
非对称加密的原理基于数学上的难解问题,例如大素数的乘积分解。
这意味着
即使知道了公钥,想要通过公钥来计算出私钥也是非常困难的,因为这需要对大数进行因式分解,这是一个非常耗时的过程,尤其是当密钥的长度很长时。
非对称加密的原理使得数据在传输过程中更加安全,因为即使公钥被截获,攻
击者也无法通过公钥来获取私钥,从而无法解密数据。
这种加密技术被广泛应用于互联网上的安全通信,例如SSL/TLS协议中的HTTPS通信,以及数字签名等领域。
总之,非对称加密的原理是基于一对密钥来进行加密和解密操作,公钥用于加密,私钥用于解密。
这种加密技术基于数学上的难解问题,使得数据在传输过程中更加安全可靠。
非对称加密在信息安全领域有着广泛的应用,为互联网上的安全通信提供了重要的保障。
非对称加密工作原理

非对称加密工作原理非对称加密是一种密码学中常用的加密方式,它不同于对称加密的密钥只有一个,而是采用了一对密钥,分别是公钥和私钥。
公钥是公开的,可以随意传播,而私钥则是保密的,只有密钥的持有者才能知道。
非对称加密的工作原理可以用以下几个步骤来描述:1. 密钥生成在非对称加密中,首先需要生成一对密钥,包括公钥和私钥。
这对密钥是通过一种特定的算法生成的,通常是基于数论的算法,如RSA算法。
在生成密钥的过程中,需要选择合适的参数,如密钥长度等。
2. 加密过程在加密过程中,使用公钥对明文进行加密。
明文是指待加密的原始数据,可以是文本、图片、音频等任意类型的数据。
加密算法会将明文转换为密文,密文是不可读的乱码,只有对应的私钥才能解密还原为明文。
3. 解密过程解密过程是非对称加密的关键步骤,只有持有私钥的人才能进行解密操作。
使用私钥对密文进行解密,将密文还原为明文。
解密过程是加密过程的逆过程,它需要使用相同的算法和密钥参数来还原明文。
4. 数字签名非对称加密还可以用于数字签名。
数字签名是一种用于验证数据完整性和身份认证的技术。
在数字签名过程中,私钥持有者可以使用私钥对数据进行签名,生成一个唯一的数字签名。
其他人可以使用公钥来验证数字签名的有效性,从而确认数据的完整性和来源可信。
5. 密钥管理在非对称加密中,密钥的安全性非常重要。
公钥是公开的,可以随意传播,但私钥必须妥善保管,不能泄露给他人。
密钥的管理包括密钥的生成、分发、存储和更新等过程,需要采取一系列的措施来保证密钥的安全性。
非对称加密的工作原理可以保证数据的安全性和完整性。
由于公钥是公开的,任何人都可以使用公钥对数据进行加密,但只有私钥的持有者才能解密密文。
这种加密方式可以在不安全的网络环境下进行数据传输,保证数据的机密性。
非对称加密还具有身份认证和数据完整性验证的功能。
通过数字签名技术,可以对数据进行签名,其他人可以使用公钥来验证签名的有效性,从而确认数据的来源可信和完整性。
加密通信采用的各种技术和协议

应用:IPsec协议广泛应用于VPN、远程访问、电子商务等领域。
安全性:IPsec协议提供了多种加密算法和认证方法,可以适应不同的安 协 议
概述: W PA / W PA 2 是 两种无线网络安 全协议,用于保 护无线网络通信
协议标准的更新
加密通信技术的 发展:从传统加 密技术到现代加 密技术的演变
协议标准的更新: 从SSL/TLS到 HTTPS,再到未 来的量子加密技 术
更新频率:随着 技术的发展,协 议标准需要不断 更新以适应新的 安全需求
更新内容:包括 加密算法、密钥 管理、认证机制 等方面的更新和 改进
通信安全技术的融合
加密通信技术和协议
,a click to unlimited possibilities
汇报人:
目录
01 添 加 目 录 项 标 题
02 加 密 通 信 技 术
03 加 密 通 信 协 议 05 加 密 通 信 的 未 来 发
展
04 加 密 通 信 的 应 用 场 景
Part One
单击添加章节标题
Part Two
加密通信技术
加密算法
对称加密算法:如AES、DES、3DES等 非对称加密算法:如RSA、ECC、DSA等 混合加密算法:结合对称和非对称加密算法的优点 哈希算法:如SHA-1、SHA-2、MD5等,用于数据完整性验证和数字签名
加密方式
对称加密:使用相同 的密钥进行加密和解 密
的安全性
Part Four
加密通信的应用场 景
网络安全保护
加密通信技术在 金融行业的应用
数据加密学习总结

黑马程序员数据加密学习对称加密算法:对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。
有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。
而在大多数的对称算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为秘密密钥算法或单密钥算法。
它要求发送方和接收方在安全通信之前,商定一个密钥。
对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信性至关重要。
对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。
不足之处是,交易双方都使用同样钥匙,安全性得不到保证。
非对称加密算法:非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。
公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。
对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。
所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。
这样安全性就大了很多。
加密模式:电子密码本(Electronic Code Book,ECB):在ECB 模式中,每块明文都是独立于其他块加密的。
虽然这样做比较高效(可以并行执行多个数据块的加密)但这种方法有一个很大的问题。
例如,在ECB 模式中,对相同明文块的加密总是产生相同的密文块,这为某些类型的密码分析攻击打开了方便之门。
ECB 方式通常被认为不适合保护敏感数据。
密码块链接(Cipher Block Chaining,CBC):在CBC 模式中,文本块是连续加密的,在加密当前明文块之前,用前一次块加密的结果修改当前明文块。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章
非对称密钥加密算法
田立勤
非对称密钥加密的步骤
非对称密钥加密的步骤如下: (1)A要给B发消息时,A用B的公钥加密消息,因为A知道B 的公钥。 (2)A将这个消息发给B(已经用B的公钥加密消息)。 (2)A将这个消息发给B(已经用B的公钥加密消息) (3)B用自己的私钥解密A的消息。
第五章
非对称密钥加密算法
第五章
非对称密钥加密算法
田立勤
(2)求这个数与指数为E的幂,即6 (2)求这个数与指数为E的幂 即65。 (3)计算65 mod ll9,得到41,这是要在网络上发送的加密 信息。 接收方用下列方法解密41,得到F: 接收方用下列方法解密41 得到F (4)求这个数与指数为D的幂,即4177。 (5)计算4177 mod ll9,得到6。 (6)按字母编号机制将6译码为F,这就是原先的明文。
第五章
非对称密钥加密算法
田立勤
非对称密钥加密技术
非对称密钥加密(Asymmetric Key Cryptography)也称为公 钥加密(Public Key Cryptography) 。 它使用两个密钥,构成一对,一个用于加密,一个用于解 密,其他密钥都无法解密这个消息,包括用于加密的密钥 这个机制的妙处在于,每个通信方只要一对密钥,就可以 和多个其他方通信。 这个模式有 个简单的数学基础。如果 个大数只有两个 这个模式有一个简单的数学基础。如果一个大数只有两个 素数因子,则可以生成一对密钥。
第五章
非对称密钥加密算法
田立勤
两全其美
实际中,对称与非对称密钥加密结合起来,提供了相当高 实际中 对称与非对称密钥加密结合起来 提供了相当高 效的安全方案,工作如下,这里假设A是发送方,B是接收 方。 (1)A的计算机利用DES对称密钥加密算法加密明文消息 (PT),产生密文消息(CT)。这个操作使用的密钥(K1)称为 一次性对称密钥,用完即放弃。 次性对称密钥 用完即放弃
第五章
非对称密钥加密算法
田立勤
另一个应用示例
根据这些值,考虑加密与解密过程。 根据这些值 考虑加密与解密过程 设A是发送方,B是接收方。可以用编码机制编码字母:A =1,B=2,…,Z=26。假设用这个机制编码字母,那么其 工作如下,假设发送方A要向接收方B发送 个字母F。利 工作如下,假设发送方A要向接收方B发送一个字母F。利 用RSA算法,字母F编码如下: (1)用字母编号机制(如A=1,B=2,…,Z=26),这里F为6 ,因此首先将F编码为6。
第五章
非对称密钥加密算法
田立勤
对称算法和非对称算法的速度比较
如果用硬件实现DES之类对称算法和RSA之类非对称算法 ,则DES比RSA快大约1000倍。 如果用软件实现这些算法,则DES比RSA快大约100倍。
第五章
非对称密钥加密算法
田立勤
对称与非对称密钥加密比较
非对称密钥加密解决了密钥协定与密钥交换问题,但并没 非对称密钥加密解决了密钥协定与密钥交换问题 但并没 有解决实际安全结构中的所有问题。对称与非对称密钥加 密还有其他一些差别,各有所长。
第五章
非对称密钥加密算法
田立勤
两全其美
这个过程好像很复杂,怎么会很有效?这个基于数字信封的 这个过程好像很复杂 怎么会很有效?这个基于数字信封的 过程之所以有效,原因如下: (a)首先,我们用对称密钥加密算法和一次性会话密钥(K1) 加密明文(PT)。我们知道,对称密钥加密算法速度快,得 到的密文(CT)通常比原先的明文(PT)小。 如果这时使用非对称密钥加密算法,则速度很慢,对大块 明文更是如此。另外,输出密文(CT)也会比原先的明文 ( ) (PT)大。
第五章
非对称密钥加密算法
田立勤
RSA的关键
可以看出RSA算法本身很简单,关键是选择正确的密钥 可以看出RSA算法本身很简单 关键是选择正确的密钥 A是发送方,B接收方,则B要生成私钥D(Decryption)和 公钥E(Encrypt)),然后将公钥和数字N发给A。A用E和 N加密消息,然后将加密的消息发给B。B用私钥(D)解密消 息。
第五章
非对称密钥加密算法
田立勤
实例1:用户用口令调用Web service
用户端提供用户名及口令方式调用Web Service 现有提 Service,现有提 供Web Service的服务提供者甲向用户乙提供服务,乙在 调用甲的时候需要提供用户名及口令,其传送过程如下 (1)用户乙随机产生 个加密密钥(DES密钥),用此密 (1)用户乙随机产生一个加密密钥(DES密钥),用此密 钥对自己的口令进行加密,然后用服务提供者甲的公钥对 DES密钥进行加密,最后将用户名,加密后的口令和加密 DES密钥进行加密 最后将用户名 加密后的口令和加密 后的DES密钥及调用Web Service时需提供的其它参数提 交给甲。
田立勤
算法示例
79
注意:密文的长度比明文的长度长
第五章
非对称密钥加密算法
田立勤
另一个应用示例 另 个应用示例
前面的例子是纯粹的数字运算,实际加密的密文可能是非 数字的,那么如何利用RSA呢?下面通过例子来说明。 (1)取P=7,Q=17 取 ( )计算 (2)计算N=P×Q=7×17=119。 Q (3)选取公钥,因为(P—1)×(Q—1)=6×16=96,96的因子 为2、2、2、2、2和3,因此公钥E不能有2和3的因子。我们 选择公钥值5。 (4)选择私钥,使(D×E) mod (P-1)×(Q-1)=1。我们选择D 为77,因为(5×77) 为77 因为(5×77) mod 96 385 mod 96 1 能满足条件 d 96=385 d 96=1,能满足条件
田立勤
非对称密钥加密的实际情形
考虑 个使用非对称密钥加密的实际情形。 考虑一个使用非对称密钥加密的实际情形 –假设银行通过非安全网络接受N个客户的事务请求。要 是使用DES则银行跟每个用户都必须有 个共享的密钥, 是使用DES则银行跟每个用户都必须有一个共享的密钥 因此需要有N个对称密钥,如果使用RSA,则银行只要需 要公钥/私钥对就可以了(两个密钥)。 –银行向所有客户发布公钥,客户用银行公钥加密消息 之后再将其发给银行。 –银行可以用自己的私钥解密所有这些加密消息,解决 了一对多的问题。
第五章
非对称密钥加密算法
田立勤
RSA的关键
由于攻击者无法求出P和Q,也就无法求出D,因为D取决 由于攻击者无法求出P和Q 也就无法求出D 因为D取决 于P、Q和E。因此,即使攻击者知道N和E,也无法求出D ,因此无法将密文解密。 (D×E) mod (P-1)×(Q-1)=1 数学分析表明,N为100位数时,要70多年才能求出P和Q。
第五章
非对称密钥加密算法
田立勤
两全其美
(2) A要取第1步的一次性对称密钥(K1) 用B的公钥(K2)加 A要取第1步的 次性对称密钥(K1),用B的公钥(K2)加 密K1。这个过程称为对称密钥的密钥包装(key wrapping)。 (3)A把密文CT和加密的对称密钥一起放在数字信封(digital envelope)中。 (4)这时A将数字信封(包含密文(T)和用B的公钥包装的对称 密钥(K1)用基础传输机制(网络)发送给B。这里假设数字信 封包含上述两个项目。
第五章
非对称密钥加密算法
田立勤
两全其美
(5)B接收并打开数字信封。B打开信封后,收到密文CT和 (5)B接收并打开数字信封 B打开信封后 收到密文CT和 用B的公钥包装的对称密钥(K1)。 (6)B可以用A所用的非对称密钥算法和自己的私钥(K3)解密 (即打开)逻辑箱,其中包含用B的公钥包装的对称密钥(K1) ,这个过程的输出是对称密钥K1。 (7)最后,B用A所用的对称密钥算法和对称密钥K1解密密 文(CT),这个过程得到明文PT。 ( )
第五章
非对称密钥加密算法
田立勤
RSA的加密与解密
加密:输入E,N和明文PT,加密的公式是: 加密:输入E N和明文PT 加密的公式是: –CT=PTE mod N 解密:输入D,N和密文CT,解密的公式是: –PT=CTD mod N
第五章
非对称密钥加密算法
田立勤
算法实例
第五章
非对称密钥加密算法
第五章
非对称密钥加密算法
田立勤
RSA的关键
既然B能计算求出D,是否别人也能计算求出D?,实际上 既然B能计算求出D 是否别人也能计算求出D? 实际上 这并不容易,这就是RSA的关键所在,因为要想求出D,根据 公式 (D×E) mod (P-1)×(Q-1)=1知,必须知道E,P和Q 攻击者只要知道公钥E(这里是5)和数字N(这里是119),好像 就可以通过试错法找到私钥D(这里是77)。 攻击者要怎么做?首先要用N求出P和Q(因为N=P×Q)。本 例中,P和Q很小(分别是7和17),因此很容易求出,但实际 Q ( ) 中,P和Q选择很大的数,因此要从N求出P和Q并不容易, 是相当复杂和费时的。 是相当复杂和费时的
第5章 非对称密钥加密 算法
上课教师:田立勤 上课教师 立勤
第五章
ห้องสมุดไป่ตู้
非对称密钥加密算法
田立勤
非对称密钥加密算法概述
对称密钥加密快速而高效,但也存在很大的缺点,就是存 对称密钥加密快速而高效 但也存在很大的缺点 就是存 在密钥交换问题。 20世纪70年代中期,斯坦福大学的学生Whitfield Diffie和 他的导师Martin Hellman开始考虑密钥交换问题。 经过一些研究和复杂的数学分析,他们发明了非对称密钥 加密的思想。 因此,Whitfield Diffie与Martin Hellman可以称为非对称密 钥加密之父。
第五章
非对称密钥加密算法
田立勤
非对称密钥加密算法概述
例如,数字10只有两个素数因子2和5。如果用5作为加密因 例如 数字10只有两个素数因子2和5 如果用5作为加密因 子,则只能用2作为解密因子,任何别的数都不行,包括5 假设A要向B发送消息,A和B都要有对方的公钥和自己的 私钥。即: A的私钥保密; B的私钥保密; B的私钥保密 A要将公钥告诉B; B要将公钥告诉A。 B要将公钥告诉A