信息安全实验
北京邮电大学信息安全中心
武 斌
上次课的主要内容(分组密码)
对称密码原理
DES算法的原理
DES的运行模式
3DES的原理
Feistel网络 (离散对数)
本次课的主要内容(公钥密码)
公钥密码数学基础
单向陷门函数
离散对数
大整数分解
背包问题
椭圆曲线
公钥密码体制
RSA密码体制
背包密码体制
ECC密码体制
(离散对数)
参考书(References)
《现代密码学基础》 章照止主编 北京邮电大学出版社
《应用密码学 协议、算法与C源程序》 Bruce Schneier
著 吴世忠等译
《初等数论》 严士健著 高等教育出版社
《公钥加密算法及其快速实现》 冯登国著 科学出版社
《应用密码学》 杨义先、钮心忻著 北京邮电大学出版社
《密码分析学》 冯登国编著 清华大学出版社
《信息安全实验指导》 崔宝江,周亚建 国防工业出版社
密码学实验教学目的
通过实验帮助学生建立起非对称密码算法的概念
体系,获得对非对称密码算法的感性认识。
帮助学生了解常见的非对称加密算法。
本次实验的教学要求
学生通过实验能深入、透彻地理解RSA等算法的
基本原理;
能使用RSA对文件进行加密。
非对称密码算法
非对称密码技术又称公钥密码技术,或双钥密码技术,
即加密和解密数据使用不同的密钥。
网络
信息M 非对码密钥算法
B公钥
密文C
用户B
用户A
非对称
密码算法 密文C信息M
B私钥
非对称密码体制的提出
Diffie,W., Hellman, M. “New Directions in Cryptography.”
Proceedings of the AFIPS National Computer Conference,
June 1976.
Diffie,W., Hellman, M. “Multiuser Cryptographic
Techniques.” IEEE Transactions on Information Theory,
November 1976.
非对称密码体制的密钥管理
非对称密钥技术解决了密钥的发布和管理问题,
商户可以公开其公开密钥,而保留私有密钥。
发送方可以用人人皆知的接收方公开密钥对发
送的信息进行加密,安全的传送给该接收方,
然后由接收方用自己的私有密钥进行解密。
非对称密码体制的原理
公钥体制的基本原理是 单向陷门函数。
非对称密码体制的安全性取决于构造双钥算法
所依赖的数学问题。即要求加密函数具有单向性,
即求逆的困难性。
因此,
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
双钥体制的关键是首先要寻求一个
合适的 单向函数。
单向函数
一个函数f:AB,若它满足:
1、对所有xA,易于计算f(x);
2、对“几乎所有xA”,由f(x)求x“极为困
难”,以至于实际上不可能做到。
则称f为单向(One-way)函数。
定义中的“极为困难”是对现有的计算资源和
算法而言。
单向陷门函数
单 向 陷 门 函 数 ( Trapdoor one-way
function),是这样的单向函数:
在不知陷门信息下,由f(x)求x“极为困难”;
当知道陷门信息后,由f(x)求x是易于实现的。
给定一大素数p(比如 p在21024数量级),p-1包含另一大
素数因子。称log2p为素数p的长度。
{1, 2, „, p-1}关于mod p的乘法构成了一乘群Zp*,它是
一个p-1阶循环群。该循环群的生成元一共有φ (p-1)个。
设一个生成元为整数g,1
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
。
密码分析者尚不能证明其安全性,但也不能否定其安全
性。
RSA是一种分组密码,其理论基础是一种特殊的可逆模
指数运算,其安全性基于分解大整数的困难性。
既可以用于加密,也可用于数字签名。
硬件实现时,比DES慢约1000倍。软件实现时比DES慢
约100倍。永远不会比对称钥算法快。
已被许多标准化组织(如ISO、ITU、IETF和SWIFT等)接
纳,目前多数公司使用的是RSA公司的PKCS系列。
RSA的密钥生成
独立选择两个大的素数p和q(各100~200位十进制数
字),计算n=pq。n的Euler值为
(n) = (p-1)(q-1)
随机选一整数e(1 e (n) ),GCD((n) , e)=1。
因而在模下, e有逆元
d = e-1 mod (n)
取公钥为(n,e),对外公布;取私钥为d ,自己私藏。
p,q不再需要,可以销毁。
RSA的加密过程
A欲发送明文m给B,其中0
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
额外使用一个公开的杂凑函数H。
RSA的描述
设n是两个不同奇素数p和q之积,即
n=pq,P=C=Zn, (n) = (p-1)(q-1)
K={(n,p,q,e,d) | n=pq,p,q是素数,ed=1 mod (n) }
对每一个K=(n,p,q,e,d),
定义加密变换为
EK(x)=x
e mod n, x Zn
解密变换为
DK(y)=y
d mod n, y Zn
公开n和e,保密p,q和d。
RSA数字签名过程
设A欲发消息m给B。
(1) A用H将消息m进行处理,得散列值h=H(m)。
(2) A用自己的私钥d对h “解密”得s = hd (mod n)。
(3) A将(m,s)发送给B。
(4) B用A的公钥e,检验是否H(m) = se (mod n)。
若是,则(m,s)是A发送的签名消息。
RSA数字签名的原理图
课堂实验
参考FTP中的RSA程序,进行修改和调试,
实现RSA算法的加解密。
实验报告要求
实验报告内容
查阅资料,找出目前实际可行的素数判定方法,说明
其原理,并且比较各自的优缺点。
利用上面一种素性检测方法,试编写程序实现输入一
个大数,判定其是否为素数。(选做题)
实验报告格式
包括实验目标、实验原理、实验过程、实验结果、程
序代码功能说明等。
实验报告要求
实验报告提交
时间:下次课之前提交
方式:ftp://59.64.158.251
用户名:xasylxy密码:xasylxy
注意:报告需要提交到为本课时建立的目录中,每个
人将报告和程序代码放在一个文件夹内,然后压缩至
一个RAR文件,文件命名格式为:学号-姓名,例:
111-张三。