2020上海交通大学考研专业课之数字信封

2023-10-07 05:59

本文主要是介绍2020上海交通大学考研专业课之数字信封,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

又是一年考研结束,对于我来说,这已经是第二次经历考研了,相较于第一次,多了成熟,多了底气。但是,可能依然成绩不会太理想,因为今年的数学一吧,真的是一言难尽,我已经尽我努力去达到我所能做到的最好了。具体考研的碎碎念,接下来会有专门的讲述,今天要讨论的重点是,今年我所考的上海交通大学网络安全专业的其中一个题:

请说明数字签名和数字信封的典型工作过程,并说明二者的特点以及在实现和应用方面的区别。

这个题说实话,其实不算太难,只要了解过这两者的都能写出来。问题就是,书上只有数字签名这个知识点,对于数字信封,对于我这个跨专业考研的人来说,真的是第一次听说,因为考研推荐的参考书目上根本没有这个知识点,所以~应对这种题型,只能依靠平时的知识积累了。

数字信封

数字信封是将对称密钥通过非对称加密(即:有公钥和私钥两个)的结果分发对称密钥的方法。数字信封是实现信息完整性验证的技术。

这里简单说明一下对称密钥和非对称密钥。

要解释两个概念,先简单说一下密码技术的概念:密码技术就是对网络中传输的用户数据进行加密,来实现网络信息的的机密性,完整性和追踪性等,是网络安全领域的一项基本技术。而对于密码系统,基本要素有5个:明文,密文,加密算法,密钥,解密算法。其中明文是未加密的原始消息,密文是加密以后的消息,由明文变成密文的这个过程叫做加密,密文被还原成明文的过程叫做解密,加密时使用的算法为加密算法,解密时使用的算法为解密算法,加密算法和解密算法一般是公开的。决定密码系统安全性的关键在于密钥,加密密钥和解密密钥可以相同,也可以不相同。根据二者是否相同,可以将加密体制分为:

  • 对称密码体制:加密密钥和解密密钥相同
  • 非对称密码体制:加密密钥和解密密钥不同,二者成对存在,其中加密密钥和算法是公开的,加密密钥又称为公钥;而解密密钥一般由私人自己掌管,称为私钥
对称密码体制的工作原理图

对称密码体制

非对称密码体制工作原理图

非对称密码体制

数字信封的工作原理

数字信封

  • 信息发送方采用对称密钥来加密信息内容
  • 将此对称密钥用接收方的公开密钥来加密(这部分称数字信封)
  • 将它和加密后的信息一起发送给接收方,即发送的是信息对(消息密文,密钥密文)
  • 接收方先用相应的私有密钥打开数字信封,得到对称密钥,然后使用对称密钥解开加密信息
特点
  • 数字信封技术的安全性相当高
  • 数字信封则采用密码技术保证了只有规定接收人才能阅读信息的内容
  • 在一些重要的电子商务交易中密钥必须经常更换,为了解决每次更换密钥的问题,结合对称加密技术和公开密钥技术的优点,它克服了对称密钥加密中密钥分发困难公开密钥加密中加密时间长的问题,使用两个层次的加密来获得公开密钥技术的灵活性和私有密钥技术高效性
  • 数字信封是一种综合利用了对称加密技术和非对称加密技术两者的优点进行信息安全传输的一种技术。数字信封既发挥了对称加密算法速度快、安全性好的优点,又发挥了非对称加密算法密钥管理方便的优点
数字信封应用的组成
  • 数字信封打包:数字信封打包是使用对方的公钥将加密密钥进行加密的过程
  • 数字信封拆解:使用私钥将加密过的数据解密的过程

数字签名

数字签名是一种信息发送者才能产生而别人无法伪造的一段数据串,可以用来验证信息发送者的真实性。

数字签名机制的工作原理
  • 假设A打算发一条消息x给B,并进行签名
  • A首先用他的秘密密钥DA对于x加密,得到签名y = f DA(x)
  • A发送消息对(x,y)给B
  • B收到(x,y)后,用A方的公开密钥EA对y解密,得到 x = fEA(y)
  • 比较x与x,若二者完全相同,则说明消息x确实由A方发来,签名y确实由A方生成,B方收到的消息是完整的。
数字签名的功能
  • 验证消息的完整性,有效地对抗冒充,抵赖等威胁
NOTE:当消息较长时,上述签名方法要占用过多的信息资源。现在一般利用散列函数,又称为哈希函数,先对消息进行处理,得到较短的消息摘要,然后对消息摘要签名,从而提升签名效率。
对消息摘要进行签名的原理图

数字签名

数字信封和数字签名之间的区别

  • 二者使用的加密算法种类不同。数字信封采用了对称加密算法和非对称加密算法两种算法,而数字签名技术采用了非对称加密一种算法
  • 二者实现的功能不同。数字信封实现的功能是只让收信人阅读信件内容,而数字签名技术则是为了验证发信人的身份
  • 二者的特点不同。数字信封技术充分综合了对称加密算法和非对称加密算法的优点,而数字签名技术则利用了非对称加密算法可以实现用户身份验证功能的特点。
上面就是对数字信封和数字签名的比较。去年考研分享的一个点是安全策略和安全机制之间的联系和区别。本来这篇博客想昨天晚上就写出来的,但是昨天考完实在是头痛,所以拖到了今天,不过总算是又学到了一个知识点!!还是很不错,接下来还会有技术方面的博客分享,当然还有考研一些碎碎念的分享,不过应该非技术类的东西,我应该会写到微信公众号当中啦,如果有想聊聊考研的,想聊聊二战的,还有想聊聊各种电子产品的,想聊聊人生的,欢迎关注微信公众号:蜂蜜橘子

蜂蜜橘子

这篇关于2020上海交通大学考研专业课之数字信封的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/156485

相关文章

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

AIGC6: 走进腾讯数字盛会

图中是一个程序员,去参加一个技术盛会。AI大潮下,五颜六色,各种不确定。 背景 AI对各行各业的冲击越来越大,身处职场的我也能清晰的感受到。 我所在的行业为全球客服外包行业。 业务模式为: 为国际跨境公司提供不同地区不同语言的客服外包解决方案,除了人力,还有软件系统。 软件系统主要是提供了客服跟客人的渠道沟通和工单管理,内部管理跟甲方的合同对接,绩效评估,BI数据透视。 客服跟客人

NC 把数字翻译成字符串

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 有一种将字母编码成数字的方式:‘a’->1, ‘b->2’, … , ‘z->26’。 现在给一串数字,返回有多少种可能的译码结果 import java.u

34465A-61/2 数字万用表(六位半)

34465A-61/2 数字万用表(六位半) 文章目录 34465A-61/2 数字万用表(六位半)前言一、测DC/AC电压二、测DC/AC电流四、测电阻五、测电容六、测二极管七、保存截图流程 前言 1、6位半数字万用表通常具有200,000个计数器,可以显示最大为199999的数值。相比普通数字万用表,6位半万用表具有更高的测量分辨率和更高的测量准确度,适用于精度比较高的测

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密 可以将表情,动物,水果,表情,手势,猫语,兽语,狗语,爱语,符号,数字,字母,加密和解密 可以将文字、字母、数字、代码、标点符号等内容转换成新的文字形式,通过简单的文字以不同的排列顺序来表达不同的内容 源码截图: https://www.httple.net/152649.html

两个长数字相加

1.编程题目 题目:要实现两个百位长的数字直接相加 分析:因为数字太长所以无法直接相加,所以采用按位相加,然后组装的方式。(注意进位) 2.编程实现 package com.sino.daily.code_2019_6_29;import org.apache.commons.lang3.StringUtils;/*** create by 2019-06-29 19:03** @autho

关于字符串转化为数字的深度优化两种算法

最近在做项目,在实际操作中发现自己在VC环境下写的字符串转化为整型的函数还是太过理想化了,或者说只能在window平台下软件环境中运行,重新给大家发两种函数方法: 第一个,就是理想化的函数,在VC环境下充分利用指针的优越性,对字符串转化为整型(同时也回答了某位网友的答案吖),实验检验通过: #include <stdio.h> #include <string.h> int rayatoi(c

Oracle 数据库中 字符型字段 按数字排序

由于需要维护表里面的值,id主键是字符串型,保存的都是数字,每次都要看好久,才知道新增id,用哪个数字; 遇到了一个主键排序的问题。字符型的主键,保存的都是数字,数据导过来以后发现数据排序都是乱的,就想着按数字规则排序。 但发现to_number总是报错,就想着里面应该是有字符存在。后来使用了正则关系式,问题解决。 以下是正则关系式的两种用法,记录下来: 方法一: select * fr