系统架构师学习笔记_第十一章(上)_连载

第十一章  信息安全技术


11.1  信息安全关键技术

11.1.1  加密和解密

有意的计算机犯罪 和 无意的数据破坏

被动攻击:非法地从传输信道上截取信息,或从存储载体上 偷窃、复制 信息。

主动攻击:对传输或存储的数据进行 恶意的删除、篡改 等。

密码技术是防止数据攻击的一种有效而经济的方法。

信源、信宿、明文、密文。

传输消息的通道称为信道,参数 称为 密钥,解密算法是加密算法的逆运算。

加密密钥与解密密钥相同,或者可以简单相互推导 的密码体质 称为 对称密码体质。

不能(在有效时间内)相互推导的,称为 非对称密码体质。


1、对称密钥密码体质及典型算法

对称算法(Symmetric Algorithm),有时又称为 传统密码算法,也称 单密钥算法。

安全通信之前,商定一个密钥,安全性依赖于密钥,密钥的保密性对通信至关重要。

优点:算法实现的 效率高、速度快。

缺点:密钥的管理过于复杂。


1. DES 算法简介

DES(Data Encryption Standard,数据加密标准)是IBM公司研制,美国国家标准局 1977年公布,作为 非机要部门 使用的数据加密标准。

DES 是一个分组加密算法,以64位为分组对数据加密。密钥长度56位(因为每个第8位都用作奇偶校验)。


2. IDEA 算法简介

国际数据加密算法(International Data Encryption Algorithm,IDEA)前身是 推荐加密标准(Proposed Encryption Standard,PES)。

分组长度 64b,密钥长度128b。

运算非常简单,只是 异或,速度极快,穷举破解不现实。


2、不对称密码加密算法

不对称密码体制又称 双密钥和公钥密码体质,1976年 由 Diffie 和 Hellman 提出的。

私钥 秘密保存。

不需要事先通过安全秘密管道交换密钥。

RSA 的安全性依赖于大素数分解。公钥和私钥 都是两个大素数(大于100个十进制 位)的函数。

据猜测,从一个 密钥和密文 中,推断出明文的难度 等同于 分解两个大素数的 积。

具体操作时 考虑到 安全性 和 M信息量 较大等因素,一般是 先做 HASH 运算。

速度慢一直是 RSA 的缺陷,因此一般来说,RSA只用于少量数据加密。


11.1.2  散列函数与数字签名

1、MD5 散列算法

散列函数是一种公开的数学函数。散列函数运算的输入信息叫做 报文,运算后所得的结果叫做 散列码 或 消息摘要。

特点:

1. 给定 M,要找到另一消息 M,使 H(M)= H(M')很难。

2. 散列函数都是 单向的,反推 M 很难。

3. 对于任何一个报文,无法预知它的散列码。

4. 散列码具有固定的长度,不管原始报文长度如何。

常见的散列函数有:MD5、SHA、HMAC 等。

MD5(Message Digest 5)已成为国际标准,产生128位(16字节)长度的散列值(或称 消息摘要)。

通过以下4个步骤:

1. 附加填充位,填充后数据长度 MOD 512 后 余 448。如果数据长度正好 MOD 512 余 448,增加 512 个填充位,填充个数也就是1~512。
填充位第一个为 1,其余全部是 0。

2.  补足长度。

3.  初始化 MD缓存器。

4个32位寄存器,A、B、C、D,初始化为:

A: 01 23 45 67
B: 89 AB CD EF
C: FE DC BA 98
D: 76 54 32 10

4.  处理数据段。


2、数字签名与数字水印


1.  数字签名可以解决 否认、伪造、篡改、冒充 等问题。

凡是需要对用户身份进行判断的情况 都可以使用数字签名。

三个过程:系统的初始化过程、签名产生过程、签名验证过程。

签名者必须注意保护好私有密钥,因为它是公开密钥体系安全的重要基础。

如果密钥丢失,应该立即报告鉴定中心取消认证,鉴定中心必须能够迅速确定用户的身份及其密钥的关系。

RSA、ElGamal、Fiat-Shamir、美国的数字签名标准/算法(DSS/DSA)、椭圆曲线 等多种。


2.  数字水印(Digital Watermarking)是实现版权保护的有效办法,也是信息隐藏技术研究领域的重要分支。

通过在原始数据中嵌入秘密信息——水印(Watermark)来证实该数据段所有权。

水印可以是一段 文字、标识、序列号 等,通常是不可见或不可察的,与原始数据紧密结合并隐藏其中。

数字水印技术必须具有较强的 鲁棒性、安全性、透明性。

数字水印主要应用领域:

版权保护,作品被盗版或出现版权纠纷时,所有者即可 从盗版作品或水印版作品中 获取水印信号作为依据。

加指纹,将不同用户端 ID 或 序列号 作为不同的水印(指纹)嵌入作品的合法备份中,一旦发现未授权的备份,就可以 确定它的来源。

标题与注释。

篡改提示,可将原始图像分成多个独立块,再将每个块加入不同的水印,来确定作品的完整性,这类水印必须是脆弱的,并且检测水印信号时,不需要原始数据。

使用控制,防复制。


空域算法、变换域算法、压缩域算法、NEC算法、生理模型算法 等。


11.1.3  密钥分配中心与公钥基础设施

现代密码系统中,算法本身的保密已经不重要了,只要密钥能够保密,即使加密算法公开,甚至加密设备丢失,也不会对加密系统的坚固性和正常使用产生多大影响。

如何高效地分配密钥、安全地管理密钥 对保证数据安全来说 至关重要。


1、密钥分配中心

密钥自动分配 是 密钥分配中心(Key Distribution Center,KDC)技术。


2、数字证书和公开密钥基础设施

数字证书的内容一般包括:唯一标识证书所有者的名称、唯一标识证书签发者的名称、证书所有者的公开密钥、证书签发者的数字签名、证书的有效期、证书的序列号 等。

PKI(Public Key Infrastructure,公钥基础设施)的结构模型有三类实体:管理实体、端实体、证书库。

管理实体是PKI的核心,是服务的提供者,端实体是PKI的用户。

CA 和 RA 是两种管理实体,CA 能够 发布和撤销 证书,维护证书的生命周期。RA负责处理用户请求。

证书库的存取对象为证书和CRL,其完整性由数字签名来保证,因此不需要额外的安全机制。

转载于:https://www.cnblogs.com/hack/archive/2010/08/18/1802824.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275929.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跨库一致性_设计跨平台的一致性

跨库一致性I offended an Apple employee the other day when I was checking out the new iPad Pro and I told him that I was an Android phone user. Eyes rolled, jokes were made, and we agreed to disagree.前几天,我在检阅新iPad Pro时冒犯了一名苹果员工&…

React-生命周期杂记

前言 自从React发布Fiber之后,更新速度日新月异,而生命周期也随之改变,虽然原有的一些生命周期函数面临废弃,但理解其背后更新的机制也是一种学习 在这里根据官方文档以及社区上其他优秀的文章进行一个对于生命周期的总结&#xf…

漫画 | 一个NB互联网项目的上线过程…

大家好,我是若川(点这里加我微信 ruochuan12,长期交流学习)。今天虽然是周六,但还是要上班,所以就推荐一篇比较轻松的漫画。点击下方卡片关注我、加个星标,或者查看源码等系列文章。学习源码整体…

stm32 中断处理级别_STM32中断优先级彻底讲解

文章来源:http://blog.sina.com.cn/s/blog_4fed55ce0100j7nd.html一:综述STM32 目前支持的中断共为 84 个(16 个内核68 个外部), 16 级可编程中断优先级的设置(仅使用中断优先级设置 8bit 中的高 4 位)和16个抢占优先级(因为抢占优先级最多可…

胖子脸:库珀·布莱克100年

In 16th century Europe, roman typefaces were the first to surpass blackletter as the preferred choice for expressing emphasis in print. True bold weight roman letters didn’t appear until the 19th century, which critics quickly coined “Fat Faces” due to …

C语言中的布尔值

C语言的布尔类型在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。所以我们通常使用逻辑变量的做法: //定义一个int类型变量,当变量值为0时表示false,值为1时表示trueint flag;flag 0;//......…

用委托实现窗体间传值

1.新建一个工程.在Form1中添加一个Label和一个Button.新建一个事件类,让它有一个string 类型的属性,用于传值. 1 ///ReturnValueEventArgs.cs 2 using System; 3 using System.Collections.Generic; 4 using System.Text; 5 6 namespace test 7 { 8 public class Return…

c++ explicit关键字_聊一聊 C++的特性 explicit 匿名空间

聊一聊 C的特性 explicit && 匿名空间explicit关键字首先看一下explicit的作用:explicit 是避免构造函数的参数自动转换为类对象的标识符,平时代码中并不是经常用到,但是,有时候就是因为这个,会造成一定的BUG出…

谷歌浏览器那些有趣的隐藏功能

大家好,我是若川(点这里加我微信 ruochuan12,长期交流学习)。今天推荐一篇实用文章。文末有抽奖。点击下方卡片关注我、加个星标,或者查看源码等系列文章。学习源码整体架构系列、年度总结、JS基础系列很多小伙伴说还是…

AppDelegate的模块化+瘦身

前言 关于iOS的模块化,要追溯到16年接触的BeeHive了,BeeHive将功能模块化,以module的形式进行构建,以performSelector:的形式进行module的事件响应,以protocol的形式进行module间的通信。可以说思路非常清晰…

yii mysql_Yii2框架操作数据库的方法分析【以mysql为例】

本文实例讲述了Yii2框架操作数据库的方法。分享给大家供大家参考,具体如下:准备数据库DROP TABLE IF EXISTS pre_user;CREATE TABLE pre_user(id int(11) AUTO_INCREMENT PRIMARY KEY,username varchar(255) NOT NULL,password varchar(32) NOT NULL DEF…

C++接口注意

1. 用Record接口,要注意 Packed的区别 2. cdecl和stdcall的区别 3. C导出的函数建议用C格式stdcall导出,使用Def文件定义名称 4. 用VS写的API dll要注意是否引用了MFC的DLL,否则会使LoadLibrary失败,并GetLastError后返回14001 Ap…

Vue 3.1.0 的 beta 版发布

大家好,我是若川(点这里加我微信 ruochuan12,长期交流学习)。昨晚尤大视频号直播说到vue 3.1.0 beta版发布了,今天分享这篇文章。也有小伙伴可能注意到了昨晚我一直在送礼物。点击下方卡片关注我、加个星标&#xff0c…

设计模式练习_设计练习是邪恶的

设计模式练习It was the final round of interviews. Or, so the candidate thought.这是采访的最后一轮。 或者,所以候选人认为。 She’d spent all day interviewing in our office. As the final interviewer, I walked her out the building. She seemed confi…

morningcat2018 LearningDocs

2019独角兽企业重金招聘Python工程师标准>>> LearningDocs 学习资料与文档 JCP(Java Community Process ,Java社区进程 ) https://www.jcp.org/en/home/index JSR(Java Specification Requests,Java规范请求…

firefox下可恶的value

前几天做项目 遇到这样一个情况 document.getElementById("txtTest").value "111"; 这条语句在ff下和ie下都是好用的 但是用开发工具看html代码 ie下显示正常 ff下显示的却是修改之前的(实际上已经修改了,只是html没有修改过来) 用js修改input…

据说 99% 的人不知道 vue-devtools 还能直接打开对应组件文件?本文原理揭秘

1. 前言你好,我是若川[1],微信搜索「若川视野」关注我,专注前端技术分享,一个愿景是帮助5年内前端开阔视野走向前列的公众号。欢迎加我微信ruochuan12,长期交流学习。这是学习源码整体架构系列 之 launch-editor 源码&…

mysql 存储 事务_MYSQL 可以在存储过程里实现事务控制吗

展开全部6.7 MySQL 事务与锁定命令6.7.1 BEGIN/COMMIT/ROLLBACK 句法缺省的,MySQL 运行在 autocommit 模式。这就意味着,当你执行完一e69da5e887aa62616964757a686964616f31333361326265个更新时,MySQL 将立刻将更新存储到磁盘上。如果你使用…

如何忽略证书继续访问_前5个最容易被忽视的可访问性问题

如何忽略证书继续访问Accessibility is quickly becoming one of the most important aspects of the way we use the web, if not the most important. Just between 2017 and 2018, the number of federal court cases regarding web accessibility nearly tripled, signifyi…

《认清C++语言》のrandom_shuffle()和transform()算法

1&#xff09;STL中的函数random_shuffle()用来对一个元素序列进行重新排序&#xff08;随机的&#xff09;&#xff0c;函数原型如下&#xff1a; template<class RandomAccessIterator> void random_shuffle( RandomAccessIterator _First, //指向序列首元素的迭代器 R…