非对称密码体制35页PPT

合集下载

非对称密码体制课件

非对称密码体制课件

• 解决了对称密码的诸多局限性
2020/11/18
非对称密码体制
4
非对称密码基本概念:非对称密码体制
明文
加密器 EK
PK
密钥产生器
密文
解密器 DK
SK
明文
• 密钥—(PK, SK) • PK:俗称公钥(Public Key),通常公钥是公开的,可以被任何实 体通过有效渠道获取; • SK:俗称私钥(Secret Key),通常私钥是保密的,不能被任何实 体通过非法渠道获取;
2020/11/18
非对称密码体制
3
非对称密码基本概念:非对称密码的提出
• 对称密码的局限性 • 密钥管理的困难性问题 • 陌生人间的保密通信问题 • 数字签名问题
非对称密码(1976年由W. Diffie和M. Hellman提出)与对称密码的几点 区别:
• 双钥——双钥密码、公钥密码
• 基于数学函数,而非替换和换位
2020/11/18
非对称密码体制
6
非对称密码基本概念:非对称密码的算法组成
密钥生成KG( ) • 根据输入的安全参数 ,输出公钥和私钥对(PK, SK)
• 加密E( ) • 根据输入的公钥和消息,输出密文。
• 解密D( ) • 根据输入的解密私钥和密文,算法输出消息或输出表示密文不合法的特殊符号“?”
明文
加密器 EK
K
密文
解密器 DK
K
明文
密钥产生器
• 密钥管理:若N个人相互保密通信,每人必须拥有(N-1)个私钥,N很 大时,需要保存的私钥很多。如何解决?
• 可信中心分发:共需要发N*(N-1)/2个私钥:例如N =1000时, 999 *1000/2 = 499500

《非对称密码体制》课件

《非对称密码体制》课件
5. 计算私钥
使用扩展欧几里得算法,计算d, 满足d*e % phi(n) = 1。
2. 计算n
计算n=p*q。
4. 选择公钥
选择一个与phi(n)互质的整数e。
6. 完成
完成后,公钥由n和e组成,私钥由d组成。
RSA算法的解密过程
1. 加密数据
使用公钥(n, e)加密消息M,产生密文C。
2. 计算明文
1
1. 选择素数
选择一个素数q, 以及一个大素数p = kq + 1, 保护q。
2
2. 选取g值
选择一个能提供一个循环群的数g(1 <= g <= p-1)。
3
3. 计算x,y
任意选择一个512位的长整数k,然后计算x = g^k mod p, y = (hash(M) + x*a)/k mod q, hash(M)为M的哈希值。
使用私钥d,计算出原始消息M。M = Cd (mod n)
3. 完成
接收方使用私钥d,根据公式计算出M。
RSA算法的安全性分析
RSA算法显然会受到攻击,但我们认为这个算法还是安全的。攻击者可以使用因子分解算法来破解RSA 算法,但是这需要一个非常长的时间。对于RSA算法安全保护的加强,一般使用扩展和混淆技术。
非对称密码的优势
提高了数据传输的安全性, 避免了密钥管理的麻烦。
小提示
有时候也会将它们结合使 用,来发挥它们的优势。
典型的非对称密码算法
目前最流行的非对称密码算法有:RSA算法、DSA算法、ECC算法等。下图是其概述:
RSA算法
使用65000位的密钥。在加密 时使用一个公钥,但需要一个 私钥才能进行解密。
非对称密码体制

非对称密码体制

非对称密码体制

ElGamal加密算法
E密lG钥a对ma产l算生法办既法能用于数据加密也能用于数字签名 的 非首对先称选择加一密个算素法数p,两个随机正整数, g 和x,g, x < p,
E计lG算amya=l算gx法m的od安p全,性则依其赖公于钥计为算y,有g 限和域p;上x离是散私对钥数;这g和一p 难可题由。一组用户共享。
Hash算法 摘要1 +时间
加了时 间后的 新摘要
数字 时间戳
用DTS机构的私钥加密
DTS机构
网络安全与电子商务
网络安全与电子商务
非对称密码体制
非对称密码体制
非对称密码体制的特点 非对称密码体制的原理 非对称加密算法
非对称密码体制的应用模型
非对称密码体制的产生和特点
由Diffie 和Hellman 于1976年首次提出了用于对称密钥交换的公钥算法。 1977年Rivest, Shamir & Adleman 提出了著名的RSA公钥算法。 非对称密码体制的特点
ElG美am国a的l加DS密S(过Dig程ital Signature Standard)中的DSA(Digital
S设ig被na加tu密re A信lg息or为ithMm,)算首法先是选经择E一lG个am随al机算数法k演,变k<而p-来1,。计
密钥算对C1产=gk生m办od法p,C2=ykM mod p。
因此,使用非对称加密,明文信息必须转化成足够大的数 才能保证私钥的不可破译。
明文信息
二进制字符串 10进制大数
DOG
010001000100 111101000111
446743
RSA加密算法
择钥大私的钥质对数p的和生q,成并、得加到密n=p以*q及。数(由字于签p名和q。非常大,所以由n几

精品课件-应用密码学-第5章 非对称密码(3)

精品课件-应用密码学-第5章 非对称密码(3)
2020/11/19
2020/11/19
15
1155
图5-1 y2≡x3+x+6所表示的曲线 图5-4 y2≡x3+x+6 (mod 11)所表示的曲线
通过比较y2≡x3+x+6在平面的曲线(见图5-1所示)和y2≡x3+x+6 ( mod 11) 在平面上的点(如图5-4所示),直观感觉没有太多的联系。
P +Q+ R1=O。则P+Q =- R1=R,如图5-2。
2020/11/19
2020/11/219020/11/
图5-2 R=P+Q示意图 2020/11/19
8
8 88
点P的倍点定义为:过P点做椭圆曲线的切线,设与椭圆曲线交于R1, 则 P+P+ R1=O, 故2P=- R1=R。如图5-3。
2020/11/19
5
5 55
本章的介绍以第一种椭圆曲线为主,如图5-1是y2≡x3+x+6所表示的曲线,该图 可以用matlab实现。显然该曲线关于x轴对称。
图5-1 y2≡x3+x+6所表示的 曲线
2020/11/19
2020/11/219020/11/
2020/11/19
6
6 66
2.椭圆曲线的加法
2020/11/19
2020/11/19
2020/11/19
20
2200
- ④ 计算点:(x1,y1)=kP - ⑤ 计算点:(x2,y2)=kQ,如果x2=0,则返回第③步 - ⑥ 计算:c=mx2 - ⑦ 传送加密数据(x1,y1,c)给B
(4)解密过程
当实体B解密从A收到的密文(x1,y1,c)时,执行步骤:

非对称加密

非对称加密

非对称加密(公钥加密)指加密和解密使用不同密钥的加密算法,也称为公私钥加密。

假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密。

如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。

由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得十分简单。

同时,由于每个用户的私钥是唯一的,其他用户除了可以可以通过信息发送者的公钥来验证信息的来源是否真实,还可以确保发送者无法否认曾发送过该信息。

非对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比非对称加密慢上1000倍。

这里非对称加密采用RSA算法为例,具体使用时下面代码中带有说明,C#完整程序代码如下:using System;using System.Collections.Generic;using System.Text;using System.Security.Cryptography;using System.Windows.Forms;using System.Globalization;namespace WindowsApplication12{class RSA{/// <summary>/// generate private key and public key arr[0] for private key arr[1] for public key/// </summary>/// <returns></returns>public static string[] GenerateKeys(){string[] sKeys = new String[2];RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();//从XML文件中读取公钥和私钥sKeys[0] = rsa.ToXmlString(true);sKeys[1] = rsa.ToXmlString(false);return sKeys;}/// <summary>/// RSA Encrypt/// </summary>/// <param name="sSource" >Source string</param>/// <param name="sPublicKey" >public key</param>/// <returns></returns>public static string EncryptString(string sSource, string sPublicKey) {try{RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();string plaintext = sSource;rsa.FromXmlString(sPublicKey);byte[] cipherbytes;byte[] byteEn = rsa.Encrypt(Encoding.UTF8.GetBytes("a"), false); cipherbytes = rsa.Encrypt(Encoding.UTF8.GetBytes(plaintext), false);StringBuilder sbString = new StringBuilder();for (int i = 0; i < cipherbytes.Length; i++){sbString.Append(cipherbytes[i] + ",");}return sbString.ToString();}catch{MessageBox.Show("数据错误");return null;}}/// <summary>/// RSA Decrypt/// </summary>/// <param name="sSource">Source string</param>/// <param name="sPrivateKey">Private Key</param>/// <returns></returns>public static string DecryptString(String sSource, string sPrivateKey) {try{RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();rsa.FromXmlString(sPrivateKey);byte[] byteEn = rsa.Encrypt(Encoding.UTF8.GetBytes("a"), false); string[] sBytes = sSource.Split(',');for (int j = 0; j < sBytes.Length; j++){if (sBytes[j] != ""){byteEn[j] = Byte.Parse(sBytes[j]);}}byte[] plaintbytes = rsa.Decrypt(byteEn, false);return Encoding.UTF8.GetString(plaintbytes);}catch{MessageBox.Show("数据错误");return null;}}}}Hash算法(哈希值)Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。

第5章 非对称密码(1)

第5章 非对称密码(1)

2019/8/6
2019/8/6 2019/8/6
2019/8/6
1199
1199
5.1.2 非对称密码体制的设计准则
现在应用的非对称密码体制,其安全是指的计算上是安全的。 以著名的RSA算法所基于的大数分解难题为例,它假定n是两个大素数p 和q的乘积。现在一般认为,p和q的长度都是512比特左右,则n的长度是 1024比特左右。以人们现有的计算能力,在知道n的情况下,在短时间内是 不能分解n的,也就是说,这在计算上是安全的。从理论上讲,如果有足够 的计算能力,是可以分解n的。但如果分解n的时间超过了消息的保密期,或 者投入的物力超过了消息本身的价值,对消息保密的目的就达到了。
第一种方式从时间和代价上来看,都难以符合需要。在非对称密码体制 产生前,对于很多不是很重要的信息,用得较多的解决办法就是第二种方式 ,但效率是比较低的。
2019/8/6
2019/8/6
2019/8/6
3
33
2019/8/6
2019/8/6 2019/8/6
2019/8/6
444
44
5.3.1 非对称密码体制的原理
序列密码都属于对称密码体制。两个用户在用对称密码体制进行保密通信时,必须
要有一个双方共享的加密密钥。那么,如何才能让两个不在同一个地方的用户安全
地拥有共享密钥呢?
我们可能想到的方式包括:
(1)派一个人来把密钥从一方送到另外一方;
(2)通过邮件或快递传递密钥;
(3)电子邮件、电话或电报等方式传递等等。
2019/8/6
2019/8/6
2019/8/6
11
111111
2002年:Ronald L. Rivest,Adi Shamir,Leonard M. Adleman 公钥密码 学(RSA加密算法)

非对称密码体制

非对称密码体制

非对称密码体制
非对称密码体制的基本概念 非对称密码体制的原理 RSA算法 RSA算法中的计算问题 RSA算法的安全性 非对称密码体制的应用
非对称密码体制的基本概念
非对称密码(公钥密码)与所有以前的密码方法的不同点
基于的基本思想不同 密钥的使用方式不同
公钥密码算法的密钥具有如下特点
是加密密钥与解密密钥是本质上不同的 是大多数公钥密码算法的加密密钥和解密密钥具有互换的性质,即两者是相对的
网络信息安全技术
非对称密码体制
非对称密码体制(Asymmetric CryptoSystem),也称为公钥密码体制(Public Key Cryptosystem),是现代密码学的重要组成部 分。公钥密码的思想在1976年由Diffie和Hellman在 其《密码学新方向》一文中提出。Rivest、Shamir 和Adleman在1978年提出了首个非对称密码体制, 即著名的RSA公钥密码体制。非对称密码体制的发明 是现代密码的具有里程碑意义的重要事件,它的出现 标志着现代密码学的创立。
可以通过加密算法生成密文:
C EPKB (M )
接收方B使用私有密钥容易通过解密算法对密文进行解密,以恢复原来的明文
从公开密钥PKB推出私有密钥SKB,在计算上是不可行的
非对称密码体制的原理
定义 单向陷门函数满足下列条件的函数f:D→V
1)对于任意给定的x∈D,计算y=f(x)是容易的。 2)对于几乎所有任意给定y∈V,计算x∈D使得y=f(x),
RSA算法中的计算问题
即计算(m)cmod N是RSA非对称密码 体制中的主要运算,其计算可以由 c-1次的模乘来实现,然而当比较
(m)c mod N 的有大效时计,算这问不题是一个好的算法,因为

信息安全导论(4-3 密码基础-非对称密码)

信息安全导论(4-3 密码基础-非对称密码)
51
作业

RSA算法的练习(选择两个大于30的素数p,q)



两位同学一组,班内序号(1,2), (3,4), … 班内序号为偶数的同学:每人设计一个RSA公钥密码 系统,给出公开钥,保留秘密钥 班内序号为奇数的同学:每人用你同伴的公开钥加密 一个明文信息,将密文交给该同学,由该同学解密 每组同学提交一个算法报告(算法的设计过程、公开 钥、秘密钥、明文、密文、加解密运算过程等)
47



对称密码算法,加/解密速度快,但密钥 分发问题严重 非对称密码算法,加/解密速度较慢,但 密钥分发问题易于解决 为解决每次传送更换密钥的问题,结合 对称加密技术和非对称密钥加密技术的 优点,产生了电子信封技术,用来传输 数据
48
加密技术的使用
49
小结

典型的非对称密码(RSA) 对称密码,非对称密码
52

加密


古典,现代 对称,非对称 分组,序列 消息认证 数字签名 身份认证
53

认证



10
典型的公钥密码算法1:背包算 法


背包系统是1978年Merkle和Hellman 基于求解背包问题的难解性提出的一个 公钥密码系统 背包问题:
11
12
13

14
15
加解密运算:
16
17

18
19
发送方(加密)
20
பைடு நூலகம்
接收方(解密)
21
典型的公钥密码算法2:RSA


RSA是Rivest、Shamire和Adleman于 1978年在美国麻省理工学院研制的 其安全性建立在“大数分解和素性检测” 这一数论难题基础上
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档