在电子商务中有着广泛的应用,下面结合大学所学的知识浅谈一下密码学~
主要内容有:对称密钥系统,非对称密钥系统,数字信封,确保信息完整性hash散列,数字签名,数字证书等
1,对称密钥系统加密和解密用同一个密钥,密钥长度较短,传输熟读较快,常常用于在建立连接后的内容加密
如下图所示;典型的算法,DES(核心思想是替换加密和转换加密),三重DES

2,非对称密钥系统,也称为公钥加密,它使用一对密钥,包括一个公钥( Public Key )和一个私钥( Private Key )。
主要作用是认证,典型有算法RSA,背包算法,如下图所示

两者常常一起使用,下面是应用的案例

发送者公开密钥进行加密,接收者用私钥进行解密,问题是这个私钥怎么传输?

接收者用私钥进行加密,所有人都知道的公钥,安全问题?

这个图片解决以上两个问题,首先用发送者的私钥进行加密,这时所有人的公钥都可以解开,然后在用接收者的公钥进行加密,确保了只有接收者可以解开
公钥算法相对兑成算法速度较慢,无法用于加密和解密大量数据,在实际应用中常常是两者同时使用
下面来介绍可以几个相关概念:
数字信封:(digitalenvelope),用公钥建立和发送一个对称密钥个给接收人,然后用这个密钥进行信息的加密和解密
通俗点将就是:通过非对称加密,获取对称加密的密钥,如下图所示:

下面来思考一个问题,当我们可以确保信息不会外泄时,我们怎么样保证所发信息的完整性?
散列值(也成哈希值),当不用个输入时,可以确保有不同的输出,通过输出值可以保证输入的唯一性
散列是一个单向的函数,即使信息有细微的变化,所输出的散列值也不同
确保信息完整的有效加密方法就是通过散列值,这点已经广泛应用,比如我们平时用的迅雷,电驴,甚至有时候在下载大型软件时,旁边会附有他的散列值
原理如下
1.将信息和信息的散列值一同发给收件人
2.收件人收到信息,通过相同的散列算法,计算出另一个散列值
3将两个散列值进行比较,如果相同,则说明在传输过程中未出现丢失,信息是完整的
-------------------------------------------------------------------------------------------------------
到目前为止,我们已经解决了两个问题,即传输中信息泄露(安全性)和接收后保证信息的完整性,当我们接收到一个数据后又是怎样确定是发送者发送的呢?下面我们来讨论这个问题
现在最关心的是发送者的身份?现实生活中我们可以使用笔迹鉴定,按手印等,如甲在写完文章后,既按了一个手印,当乙(甚至是所有人)看到这个手印后,既可以确定是甲按的,这个手印具有唯一性,在网络传输中我们可以将内容和这个手印一起传给接收者,当接收者看到这手印后,即认定他就是甲,
这个手印就是就是下面要讲的数据签名
数据签名:基本原理
1.对发送者者内容进行散列

获取发送内容的哈希值,确保完整性
2,对这个散列值进行加密(用发送者的私钥)记住一个原则,私钥加密,公钥解密不安全,但是可以用于身份验证

3.将数字签名(用发送者私钥加密的发送内容的哈希值),附加在发送的内容中生成一个明文A,一起进行发送

4.对明文A,用接收者的公钥进行加密生成密文B,进行发送
5.接受者在收到密文B后,用自己的私钥进行解密,还原成明文A

6.接受者从还原的明文A中,抽取中签名,然后对签名用发送者的公钥进行解密得到一个散列值F,如果能得到说明,信息就是发送者发来的,因为发送者的私钥只有发送者的公钥能解开,至此验证了身份,对接收的明文A中内容进行哈希散列,获取哈希D ,如果D和F一致,说明发送的是完整,
下面我们来讨论一个更深层次的问题:在确定了发送方的身份后,我们怎么确定接收方的身份,你必须知道某人的公钥才向他发送信息,公钥来自何处,如何确定公钥持有者的身份?
带着这个问题,我们来探究下一个话题:数字证书
数字证书有认证中心发行,用来正式公钥和私钥持有人真实身份,个人可以像CA(认证中心)申请数字证书,这个过程称为公钥认证,证书中心用自己 的私钥对申请人公钥和一些基本信息进行加密,寄给申请方,
当有人像申请人发送信息时,他们首先要求接收人,寄过来签名证书,然后发送人使用CA公钥给证书解密,发送人对接收人的身份得意确认,这样最后只需要与认证方打交道即可
例子自己看看吧,我就不分析了

转载复制可以,请注明出处http://lirujia00.iteye.com/admin/blogs/1731309,谢谢
参考资料:http://www.youdzone.com/signature.html

- 大小: 8.5 KB

- 大小: 7.6 KB

- 大小: 3.6 KB

- 大小: 6.1 KB

- 大小: 7.1 KB

- 大小: 68.1 KB

- 大小: 14.8 KB

- 大小: 5.1 KB

- 大小: 15.1 KB

- 大小: 4.8 KB

- 大小: 45.5 KB

- 大小: 6.7 KB
分享到:
相关推荐
密码学是研究如何编制和破译密码的学科,它不仅保证了信息的机密性,还涵盖了数字签名、安全协议、权限管理和身份鉴别等多个领域。随着计算机技术的发展和信息社会的来临,密码学已经成为网络安全不可或缺的一部分,...
密码学教学视频,需要的可以自己获取,十分有帮助。能够很好的让你了解到密码学。
密码学是一门古老而又不断发展的学科,它主要研究的是如何编制和破译密码,其在信息安全领域扮演着举足轻重的角色。随着计算机技术的不断进步以及信息社会的到来,网络已成为信息传递的主要渠道,这也使得信息安全变...
浅谈区块链密码学 密码学起源 众所周知,密码学是数字加密货币实现去中心化信任的基础,目前广为流传的最早密码学的使用,要追溯到公元前58年凯撒大帝所使用的凯撒密码,凯撒在他的军事命令中,将每一个字母都进行了...
《浅谈对信息学理论的认识》 本文主要围绕信息论的创始人克劳德·艾尔伍德·香农展开,阐述了他对信息学理论的开创性贡献以及其生平历程。香农,这位美国数学家、电子工程师和密码学家,以其1948年发表的《通信的...
- **密码策略**:设置密码过期策略,鼓励用户定期更换密码,提高系统安全性。 - **日志监控**:通过`/var/log`下的日志文件,系统管理员可以监控用户活动,及时发现异常行为。 6. **参考文献与专业指导** - 学习...
3. **人员认知不足**:尽管很多高校设立了网络安全责任部门并进行了培训,但教职工和学生的网络安全意识仍然较弱,导致网络安全事件频发,特别是由于“未授权访问”和“弱密码”引发的问题。 【应对策略】 为了...
在密码学中,数论是加密算法的基础;在计算机网络中,网络拓扑和流量分析涉及到图论和线性规划。 综上所述,数学在计算机科学中的作用是多方面的,无论是编程、图形学还是数据结构的设计,都离不开数学的支撑。因此...
自己做的课件,介绍应用密码学中关于秘密分割与共享的知识,包括门限共享与门限签名。
《浅谈无线传感器网络安全技术》一文探讨了无线传感器网络(WSN)的安全问题,这是在当前物联网技术发展背景下的一项重要课题。WSN由大量传感器节点构成,它们以自组织和多跳方式通信,用于环境监测和数据采集。文章...
此外,文档还介绍了如何利用for语句解决更多实际问题,如密码箱开锁问题和经典的“百鸡问题”。通过这类问题的解决,学生能够更直观地理解for语句在解决实际问题中的应用,并且能够激发学生深入学习C语言的兴趣。...
3. 随机密码系统:香农在贝尔实验室从事密码学研究,并设计了一种基于随机数生成器的密码系统,被认为是现代密码学的奠基之作。 信息是什么?香农对信息的定义是:信息是用来减少随机不确定性的东西。例如,我们玩...
区块链是一种基于密码学的数据存储技术,它通过将数据分割成不同区块,并利用密码学算法使区块间产生关联,从而保障了数据的基本完整性。每个区块的生成都是基于验证前一个区块的结论,进而生成下一个区块,这样形成...
### 浅谈Java中的几种随机数 在编程领域,随机数生成是不可或缺的一部分,尤其在游戏开发、密码学、统计模拟等应用场景中扮演着至关重要的角色。Java作为一门广泛使用的编程语言,提供了多种生成随机数的方式,每种...
浅谈对计算机学科各专业的认识及学业规划 计算机专业是当代最重要的学科之一,因为计算机在我们的日常生活中扮演了越来越重要的作用。该专业涵盖了计算机硬件与软件相结合、面向系统、侧重应用的宽口径专业。通过...
《RFID安全浅谈》是关于网络攻防实训的一个重要话题,主要涵盖了Web安全的相关领域。RFID(Radio Frequency Identification)技术,即无线射频识别,已经在诸多领域得到广泛应用,如物流、零售、医疗等。然而,随着...
【标题】:“浅谈校园一卡通网络的补丁更新服务器” 【描述】:本文主要探讨了校园一卡通网络中补丁更新服务器的重要性,以及介绍了三种在校园一卡通网络内部署补丁更新服务器的方法,以确保系统的安全性和及时性。...
密码加密机制》 在网络安全领域,用户密码的保护至关重要,Discuz! 作为一款流行的社区论坛系统,自然在密码安全上下足了功夫。本文将详细探讨Discuz! 的密码加密方式,以帮助我们了解其加密机制以及密码安全性。 ...