密码学概述

本文概述了密码学的历史,从古希腊的置换密码到现代的加密算法,如RSA、AES和ECC。介绍了这些算法的基本原理和应用场景,强调了它们在保密性、数据完整性和身份验证方面的重要性。此外,还提到了SHA-1和MD5等散列算法及其安全性对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间点:

 

公元前400年,希腊人发明了置换密码;

1881年,世界上第一个电话保密专利出现;

二战期间,德国军方启用“恩尼格玛”密码机;

1976年,由于对称加密算法已经不能满足需要,Diffie 和 Hellman发表了一篇叫《密码学新动向》的文章,介绍了公钥加密的概念,由Rivet、Shamir、Adelman提出了RSA算法;

1985年,N.Koblitz和Miller提出将椭圆曲线用于密码算法,根据是有限域上的点群中的离散对数问题ECDLP,它比因子分解更难(指数级)。

ECC产生背景:随着分解大整数方法的进步和完善、计算机速度的提高以及计算机网络的发展,RSA的秘钥需要不断增加长度才能保证数据安全。但是,这导致了RSA加密速度大为降低,对使用RSA的应用带来了很大的负担,需要一种新的算法来替代RSA。

1993年,美国国家标准和技术协会(NIST)提出安全散列算法(SHA);

1995年,又发布了修订版FIPS PUB 180-1,通常称之为SHA-1;

1997年,美国国家标准局公布实施了“美国数据加密标准”(DES);

1997年,利用各国7万台计算机,历时96天破解了DES的秘钥;

1998年,电子边境基金会(EFF)用25万美元制造的专用计算机,用56小时破解了DES的秘钥;

1999年,EFF用22小时15分完成了DES的破解工作;

1999年底,有人把512位的整数分解因子,512位的RSA秘钥被破解;

2000年10月,美国国家标准和技术协会(NIST)宣布选择Rijndael被选中称为将来的AES。注:Rijndael是在1999年由研究员Joan Daemen 和 Vincent Rijmen创建;

2004年,在国际密码学会议上(Crypto'2004),来自山东大学的王小云教授的报告介绍了破译MD5、HAVAL-128、MD4和RIPEMD算法。随后SHA-1也被宣告破解;

2009年底,768位的整数也被成功分解,威胁到了现在流行的1024位秘钥的安全性;

 

使用密码学的目的:

 

  • 保密性:防止用户的标识或数据被读取。
  • 数据完整性:防止数据被更改。
  • 身份验证:确保数据发自特定的一方。

 

密码学分类及介绍

 

对称加密算法

加密、解密采用相同秘钥。

不支持数字签名。

速度快:硬件实现是非对称加密算法的1000倍;

软件实现,是对称加密算法的100倍。

不适合在广域网使用;

对敏感数据进行加密;

大量数据加密

DES(Data Encryption Standard,数据加密标准):速度快,适用于加密大量数据的场合。

3DES(Triple DES):基于DES,对每块数据使用3个不同的秘钥进行三次加密,强度更高。

AES(Advanced Encryption Standard,高级加密标准):当前最常用的加密标准,速度快,强度高。

非对称加密算法

加密、解密秘钥不同,不能相互推导。执行速度较慢。

主要是基于数学难题来实现。

用于公共环境;

对短数据进行加解密;

数字签名

RSA:目前使用较多的非对称算法,支持可变长秘钥。

DSA(Digital  Signature Algorithm,数字签名算法):是一种标准的DSS(Digital Signature Standard,数字签名标准)。

ECC(Elliptic Curves Cryptography,椭圆曲线密码学)。

散列算法

对信息进行提炼,无秘钥,密文长度固定,且比明文信息小。

不能反向推导。

产生信息摘要,验证完整性;

不需要还原明文的信息加密(用户密码等)

MD5(Message Digest Algorithm 5,信息摘要算法):RSA数据安全公司开发的一种单向散列算法。

SHA(Secure Hash Algorithm,安全哈希算法):对任意长度的运算生成一个160位的数值。

 

AES算法原理:

AES算法基于排列和置换运算,使用几种不同的方法来执行排列和置换运算。

排列:对数据重新进行安排。

置换:将一个数据单元替换为另一个。

使用迭代的(循环)、对称秘钥分组(使用128位分组,即16字节)的密码,可以使用128位、192位和256位秘钥。

通过分组密码返回的加密数据的位数与输入数据相同。

 

RSA算法原理:

分解极大整数的难度决定了RSA的可靠性,只要RSA的秘钥足够长,就能保证加密信息的安全。

签名消息:例如甲想签名一个消息,步骤如下

将消息A计算一个散列值B

--》将散列值B用秘钥加密得到B'

--》将消息A+密文B'合并后发出去

--》查看的人用甲的公钥解密B',得到B

--》查看的人将消息A计算散列值,得到C

--》将B与C比较是否相等

 

ECC算法原理:

椭圆曲线上的离散对数问题(ECDLP):给定素数p和椭圆曲线E,对Q=kP,在已知P、Q的情况下求出小于p的正整数k。

可以证明,由k和P计算Q比较容易,而由Q和P计算k则比较困难。

椭圆曲线的密码体制

椭圆曲线中的加法运算--》离散对数中的模乘运算

椭圆曲线中的乘法运算--》离散对数中的模幂运算

 

ECC与RSA比较的优势:

抗攻击性强:相同秘钥长度,抗攻击性强很多倍。

计算量小,处理速度快:ECC总的速度比RSA、DSA要快很多。

存储空间占用小:ECC的秘钥尺寸和系统参数比RSA、DSA都要小很多,对于在IC卡上应用有特别重要的意义。

带宽要求低:对长消息加密时,三者对带宽要求相同;但对短消息加密时ECC带宽要求低很多。

 

SHA-1算法原理

基于MD4的,并且它的设计很大程度上模仿MD4。

每块512位(64个字节)分组,生成160位(20个字节)的输出。

 

SHA-1与MD5比较

SHA-1比MD5长,安全性稍微高一些。

由于MD5的设计,易受密码分析的攻击。

在相同的硬件上,SHA-1的运行速度慢。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值