数据安全与隐私保护 课件 第1-3章-绪论、密码学、数据存储与处理安全_第1页
数据安全与隐私保护 课件 第1-3章-绪论、密码学、数据存储与处理安全_第2页
数据安全与隐私保护 课件 第1-3章-绪论、密码学、数据存储与处理安全_第3页
数据安全与隐私保护 课件 第1-3章-绪论、密码学、数据存储与处理安全_第4页
数据安全与隐私保护 课件 第1-3章-绪论、密码学、数据存储与处理安全_第5页
已阅读5页,还剩283页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据安全与隐私保护课程主要介绍数据全与隐私保护的相关知识、技术和方法,主要内容包括:导论、密码学、数据存储与处理安全、数据传输安全、身份认证与访问控制、数据隐私保护、大数据算法安全与隐私保护、隐私保护案例分析,涉及数据存储、数据处理、数据传输、数据共享和数据使用等全生命周期的安全保护,以及隐私保护、身份认证、访问控制和大数据算法等相关技术。

通过本课程的学习,学生能够掌握在数据全生命周期保护数据安全的相关技术,能够学会在数据共享中保护隐私的具体方法。课程主要内容课程主要内容第1章

导论1.1数据安全概述1.2隐私保护概述1.3数据安全与隐私保护需求1.1数据安全概述

数据安全涉及多个层次,包括数据的存储安全、处理安全、传输安全、技术安全、算法安全、服务安全以及数据的隐私保护。

不加密的数据是不安全的,容易造成泄密事件,保护数据安全就是要保护信息系统或信息网络中的数据资源免受各种类型的威胁、干扰和破坏。1.数据的概念

根据百度百科的定义,数据是指对客观事件进行记录并可以鉴别的符号,计算机科学中的数据是指所有能输入计算机并被计算机程序处理的符号的总称。

根据麦肯锡全球研究所的定义,在大数据时代的数据是一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合。1.1数据安全概述大数据及其处理技术的结构1.1数据安全概述2.数据的特征

数据具有“4V”的基本特征,即大量(Volume)、多样(Variety)、高速(Velocity)、低价值密度(Value。1.1数据安全概述◆全样而非抽样◆效率而非精确◆相关而非因果大数据的三大思维特征1.1数据安全概述1.1数据安全概述3.数据安全的定义

根据国际标准化组织ISO的定义,数据的安全性主要指数据的保密性、完整性、可用性和可靠性。根据《中华人民共和国数据安全法》的定义,数据安全是指通过采取必要措施,确保数据处于有效保护和合法利用的状态,以及具备保障持续安全状态的能力。

一是数据本身安全,主要是采用密码算法对数据进行主动保护

二是数据防护安全,主要是采用现代信息存储手段对数据进行主动防护

三是数据处理安全,主要是采用数据安全处理技术进行防护1.1数据安全概述4.数据安全的内涵◆数据保密性◆数据完整性◆数据可用性◆数据权限控制◆数据备份和恢复

数据安全涉及网络数据的生产、传输和使用过程中的安全,保证网络数据的保密性、完整性、可用性、真实性和可控性是网络安全的主要任务。

信息安全中的数据安全主要指数据本身的安全,以及数据防护的安全,保证数据在系统和网络传输、处理、储存过程中不被泄露或破坏。

对于系统安全,数据安全是其安全运行的要核心要素。

数据是网络攻击的重要目标,数据安全是网络安全的核心,保障数据安全是维护网络安全的重要基础。1.1数据安全概述5.数据安全的主要威胁◆数据泄露◆隐私泄露◆数据窃取◆网络攻击◆物理威胁。1.1数据安全概述6.数据生命周期安全风险分析1.1数据安全概述1.2隐私保护概述1.隐私的概念根据百度百科的定义,隐私是指隐蔽、不公开的私事。在汉语中,“隐”字的主要含义是隐避、隐藏“私”字的主要含义是个人的、自己的,秘密、不公开。在英语中,隐私一词是“privacy”,含义是独处、秘密,与汉语的意思基本相同。根据维基百科的定义,隐私是指个人或组织机构将自己或自己的属性隐藏起来的能力,从而可以选择地表达自己。根据《现代汉语词典》的解释,隐私是指不愿意告诉别人或不愿意公开的、属于个人的事。1.2隐私保护概述

大数据环境下的隐私被赋予了新的内涵,隐私具有人格权和财产权双重属性。用户在大数据环境下对私密数据、敏感信息(浏览记录、账号密码、照片视频、位置数据、医疗数据、金融数据)享有绝对决定权、控制权,且法律规定保护活跃在大数据环境下用户的该项权利,以防止不法分子非法窃取、利用、修改、传播和侵犯行为的发生。1.2隐私保护概述2.数据隐私

大数据环境下的数据隐私是个人或者团体组织不愿为某些特定的人群所知悉的能够标识自己身份的、敏感的数据信息,主要分为以下三种类别:◆个人身份数据◆网络活动数据◆位置轨迹数据1.2隐私保护概述3.数据隐私的特点在大数据技术的作用下,隐私的范围被再一次扩大,扩展到了公共领域,几乎涵盖了人们生活的各个方面。◆客体扩大化◆隐私空间越来越窄◆隐私具有连带性◆隐私的经济价值凸显◆隐私实时更新1.2隐私保护概述4.隐私安全问题的表现形式

根据大数据从产生到销毁各个生命周期的特征,隐私安全问题主要表现在数据的采集、传输、储存、处理四个过程中。◆数据采集中的隐私安全问题◆数据传输中的隐私安全问题◆数据存储中的隐私安全问题◆数据处理中的隐私安全问题1.2隐私保护概述5.数据隐私问题的特征◆个人隐私问题越来越突出◆个人信息控制力越来越薄弱◆个人隐私保障力越来越微小1.2隐私保护概述6.数据隐私泄露的途径数据隐私泄露的途径主要有两种:

一是数据主体以正当手段收集数据,并在满足知情同意的形式下,由数据处理者有意输入特定指令或者由算法自身无意生成特定群组,造成该群组成员利益受损或利益不公。二是数据主体以窃取、侵入等不正当手段获取到大量信息数据,而这些信息隐私不具备可识别性,逃脱了个人隐私保护框架的监管,进而通过算法分析,达成其特定目的。1.2隐私保护概述7.数据隐私泄露的危害◆隐私泄露会给个人生活带来困扰◆个人隐私泄露不仅仅会给个人生活带来困扰,也很容易升级为针对个人的违法侵害。◆泄露的隐私数据也会成为黑客攻击的素材。1.2隐私保护概述8.隐私保护与相关法律2012年,《关于加强网络信息保护的决定》2017年,《中华人民共和国网络安全法》2021年,《中华人民共和国个人信息保护法》2021年,《中华人民共和国民法典》经济合作与发展组织的《隐私保护与个人数据跨境流动指导原则》联合国的《全球数据保护框架》欧盟的《通用数据保护条例》美国的《隐私法》加拿大的《个人信息保护与电子文件法》1.3数据安全与隐私保护需求1.数据安全需求●数据保密性●数据完整性●数据可用性●隐私保护●安全性和可靠性●数据不被泄露●合规性1.3数据安全与隐私保护需求2.

隐私保护需求●匿名化处理●数据加密●访问控制●数据脱敏●隐私政策和合规性1.3数据安全与隐私保护需求3.数据安全与隐私保护的关系

隐私保护的需求是保护用户的敏感数据信息不被泄露,强调的是数据的匿名性。

数据安全的需求是保障数据的机密性,关注的不仅仅是数据的匿名性,还包括数据的完整性、可用性、机密性、真实性、不可否认性以及平台的安全性等。数据安全基本涵盖了隐私保护的相关需求,数据安全是对数据更高层次的要求。

如果仅施行严格数据数据安全保护措施,可能会限制数据的正常利用,可能会使数据失去应有的价值。1.3数据安全与隐私保护需求4.数据安全与隐私保护技术框架1.4案例分析2004年8月17日,在美国加州圣巴巴拉举行了一次国际密码学学术年会,中国学者王小云教授作了关于HASH函数破解的特别报告,与会的专家和学者当听到王小云已经破解了国际通行最顶级的MD5密码后,引起了一片哗然,会场里人声鼎沸,许多专家再也抑制不住自己的激动之情,整个会场掌声雷动。大会总结的报告中这样写道:“我们该怎么办?MD5被重创了;它即将从应用中淘汰。SHA-1仍然活着,但也见到了它的末日。”仅仅半年之后,王小云和她的研究团队又给出了SHA-1的58轮碰撞,使得SHA-1的安全性受到挑战,《崩溃!密码学的危机》,美国《新科学家》杂志用这样富有惊耸的标题概括我国王小云教授里程碑式的成就。因为王小云的出现,美国国家标准与技术研究院宣布,美国政府5年内将不再使用SHA-1,微软、Sun和Atmel等知名公司也纷纷开始制定各自的应对之策。密码技术在战争中发挥过巨大的作用,而在和平发展的今天,密码技术同样重要,它关系到国家安全和社会稳定。如我国自主研发的SM3密码算法,不仅为国家安全保驾护航,连人们的银行卡、社保卡、高速公路ETC、家用的电卡、水卡,都在这套密码算法系统的保护之下。王小云院士认为,没有密码安全,就没有国家安全!1.4案例分析王小云对MD5的破解,并不是通过MD5的散列Hash值逆向推算出明文M,即通过Hash=MD5(M),逆向计算出明文M;而是给定消息M1,能够找到不同消息M2,产生相同的散列值,即产生Hash碰撞:MD5(M1)=MD5(M2)概括来说,就是给定消息M1,能够计算获取M2,使得M2产生的散列值与M1产生的散列值相同。在这种情况下,MD5的抗碰撞性就已经不再满足,使得MD5不再是安全的散列算法。将MD5再用于数字签名会存在严重问题,因为可以篡改原始消息,而生成相同的Hash值。1.4案例分析在破译MD5两年之后,在王小云带领下,我国第一个基于哈希函数设计的算法SM3诞生!SM3算法的安全性非常高,为我国交通、电力系统、金融系统保驾护航。中国航天工程所用到的通信加密也同样运用到了王小云设计的算法。1.4案例分析第2章密码学2.1问题导入

今天,互联网上的在线支付已经成为人们日常消费的主要支付方式。然而,网络安全威胁给在线支付带了巨大的风险,人们在线支付面临着隐私支付信息被窃取、篡改或假冒的问题,甚至存在否认已经做过的交易的风险。支付安全问题的本质是支付数据的安全问题,它和用户面临的支付风险之间的对应关系如表所示。2.1问题导入解决这个问题,和密码技术有关。

采用对称、非对称加密体制可以确保支付数据的保密性,防止支付信息被窃取;

采用哈希函数可以确保支付数据的完整性,防止支付信息被篡改等。此外,古典密码学、密钥管理也是保障数据安全的基础。本章主要介绍密码学的相关理论与技术,包括密码学的概念、古典密码学、对称和非对称密码体制、哈希函数、数字签名以及密钥管理等。2.2密码学概述

2.2.1密码学的发展历程

密码学是以研究秘密通信为目的,对所有传送的信息采取秘密保护,以防止第三方窃取信息的一门科学。随着信息技术的高速发展,密码学的作用越来越重要,它不仅在军事、政治、外交等方面有着广泛的应用,还与人们的日常生活密切相关。如网上购物、安全通信、匿名投票等,都需要通过密码来保护用户的个人数据和隐私信息。

作为保密数据信息的主要手段,密码学的发展经历了古典密码、近代密码、现代密码三个阶段。2.2密码学概述

1古典密码阶段

古典密码阶段是从古代到1949年,其特点是手工加密和解密,因此该阶段也称为手工密码时代。在这个阶段算法和密钥都是保密的,密钥空间较小,信息的安全性主要依赖于对于加密和解密算法的保密,密码学还没有形成系统理论,还不能作为一门科学,密码的设计和分析完全依靠人的直觉,并没有严格的推理和证明。2.2密码学概述其他一些古典密码还有滚桶密码、掩格密码、棋盘密码、弗纳姆密码、圆盘密码、维吉尼亚密码等。

古典密码时期的密码学更像是一门艺术,其核心手段是代换和置换,数据安全性完全依赖于算法的保密,这种密码算法在现代计算机技术条件下是不安全的。2近代密码阶段

近代密码阶段是从1949年到1975年,其特点是采用机械或机电密码机进行加密和解密,因此该阶段也称为机电密码时代。在该阶段信息的加密和解密算法不再需要保密,其安全性主要依赖于对密钥的保密。2.2密码学概述该阶段主要是对称加密算法,发送方使用某种公开的算法利用密钥对明文进行加密,接收方使用之前发送方给予的密钥对密文进行解密得到明文。对称加密也被称为私钥加密,它的出现是近代密码学的一个重要里程碑。在这种加密方式中,使用相同的密钥进行加密和解密,后来出现的数据加密标准(DES)、高级加密标准(AES)都是基于对称密码体制,对称加密技术在保证通信安全方面发挥了重要作用。3现代密码阶段现代密码阶段是从1976年至今,其特点是采用电子计算机进行加密和解密,因此该阶段也称为计算机密码时代。2.2密码学概述在该阶段,对称密钥加密算法得到了进一步发展,加密算法更加复杂,以DES为代表的加密算法正式成为行业标准。公钥密码学体制提出后,加密密钥以“公钥”形式出现,以RSA加密算法为代表的公开密钥加密算法开始流行,以Hash算法为代表能够解决数据完整性的数据摘要算法也开始出现,现代密码的安全性完全基于计算复杂度理论,且密码算法安全性可以被证明。2.2密码学概述

2.2.2密码体制1.加密与解密的概念

加密的基本思想是伪装需要保护的信息以隐藏它的真实内容。采用加密技术可以隐藏和保护机密信息,使未授权者不能提取信息。被隐蔽的消息称作明文(Plaintext),加密可将明文变换成另一种隐蔽形式,称作密文(Ciphertext)。这种由明文到密文的变换称为加密(Enciphering),由密文恢复出明文的过程称为解密(Deciphering)。非法接收者试图从密文分析出明文的过程称为破译。2.2密码学概述加密算法是对明文进行加密时所采用的一组规则,解密算法是对密文进行解密时所采用的一组规则。加密算法和解密算法是在一组仅有合法用户知道的密钥(Key)的控制下进行的,分别称为加密密钥和解密密钥。

根据加密密钥和解密密钥是否相同,可将加密体制分为两种,一种是私钥或对称加密体制,这种体制的加密密钥和解密密钥相同,其典型代表是美国的数据加密标准(DES);另一种是公钥或非对称加密体制,这种体制的加密密钥和解密密钥不相同,并且从其中一个很难推出另一个,加密密钥可以公开,而解密密钥可由用户自己秘密保存,其典型代表是RSA加密算法。2.2密码学概述加密技术是通过密码系统来实现数据信息的保密性和安全性的,如图所示,发送方使用密钥和加密算法将明文转换为密文,使其在不安全信道上传输;通信过程中除合法用户接收密文外,还有非法的截收者,他们试图通过各种办法破译密文或篡改消息。接收方在收到密文后用密钥对其解密能够查看原始数据信息。2.2密码学概述2.密码体制的概念及分类(1)根据密钥的特点分类

根据密钥的特点,密码体制主要分为对称密码体制和非对称密码体制。

对称密码体制是指加密和解密过程中使用相同密钥的密码体制。对称密码体制的特点是加密和解密速度快,密钥管理相对简单,但由于加解密密钥相同,需要通信双方共同保障密钥不被泄漏,才能实现数据的机密性和完整性。常用的对称加密算法有DES、AES等。2.2密码学概述

非对称密码体制是为了解决对称密码体制的缺陷而提出的,在这种体制中加密和解密使用不同的密钥,通常称为公钥和私钥。公钥用于加密信息,可以公开分发给任何人,私钥用于解密信息,需要保密。常见的非对称加密算法有RSA、ElGamal等。(2)根据加密方式分类

根据数据加密应用方式的不同,密码体制又可以分为哈希函数与数字签名。

哈希函数是一种将任意长度的数据映射为固定长度散列值的函数。哈希函数具有单向性、雪崩效应和碰撞抵抗性等特性,主要用于数据的完整性校验和身份验证。2.2密码学概述

数字签名是保障数据不可抵赖性的关键技术,发送方对发送的数据进行签名,接收方能够验证签名的真实性,以确保数据的完整性和发送方的身份认证。(3)根据数据处理的特点分类

根据数据处理的特点,密码体制可以分为分组密码和序列密码。

分组密码是将明文分成固定大小的组,然后对每个组进行加密,生成相应大小的密文组,如64位或128位。

分组密码的优点是它允许并行处理,每个分组可以独立进行加密,缺点是如果两个明文分组相同,密文分组也会相同,可能会泄露秘密信息。2.2密码学概述

序列密码是对明文中的每个位或字节进行加密,生成相应位或字节的密文。序列密码的优点是加密和解密操作可以连续进行,不需要等待整个明文消息都被接收,能够实现实时加密和解密,缺点是不太适合处理大数据量的加密,因为需要对每个位或字节进行单独加密,可能需要更多的计算资源。2.2密码学概述3.密码体制的安全性度量衡量一个密码系统安全性的方法主要有三种:(1)无条件安全性。无条件安全性是假定攻击者拥有无限的计算资源,但仍然无法破译该密码系统。(2)计算安全性。计算安全性是指使用目前最好的方法攻破密码系统,所需要的计算远远超出攻击者的计算资源水平,使得破解密码系统需要的时间是无法接受的,则可以认为该密码系统是安全的。(3)可证明安全性。可证明安全性是将密码系统的安全性归结为某个经过深入研究的数学难题(如大整数素因子分解、计算离散对数等),数学难题被证明求解困难。2.2密码学概述实际上,对于实际应用中的密码系统而言,由于至少存在一种破译方法,即强力攻击法,因此都不能满足无条件安全性,只能达到计算安全性。因此,密码系统要达到实际安全性,必须满足以下准则:(1)破译密码系统的实际计算量(包括计算时间或费用)十分巨大,使得破译实际上是无法实现的。(2)破译密码系统所需要的计算时间超过被加密信息有用的生命周期,如战争中发起战斗攻击的作战命令只需要在战斗打响前需要保密,重要新闻消息在公开报道前需要保密的时间往往也只有几个小时。(3)破译密码系统的费用超过被加密信息本身的价值。2.2密码学概述4.密码技术的作用(1)机密性。机密性是指只允许特定用户访问和阅读信息,非授权用户无法读取信息的真实内容。

(2)鉴别。鉴别是与数据来源和身份鉴别有关的服务,包括对身份的鉴别和对数据源的鉴别。在一次通信中,确信通信的双方是预期的实体,这是对身份的鉴别;确信每一个数据单元发送到或来源于预期的实体,这是对数据源的鉴别。此外,数据源的鉴别还包括提供数据完整性服务。

(3)完整性。完整性是指确保数据在存储和传输过程中不被非授权的修改,非授权的修改包括数据的篡改、删除、插入和重放等,密码学中通过数据加密、哈希函数或数字签名等技术实现。2.2密码学概述(4)不可否认性。不可否认性是指阻止通信实体否认先前的行为即相关内容的服务,密码学中常用对称加密或非对称加密、数字签名等技术,并借助可信机构或证书机构的辅助来提供这种服务。2.2密码学概述

2.2.3对密码的攻击1.唯密文攻击

唯密文攻击(CiphtextOnlyAttack,COA)是指只知道密文的情况下进行分析,求解明文或密钥的密码分析方法。假定密码分析者拥有密码算法及明文统计特性,并截获了一个或者多个用同一密钥加密的密文,通过对这些密文进行分析求出明文或密钥,如图所示。唯密文攻击已知条件最少,经不起唯密文攻击的密码是被认为不安全的。2.2密码学概述2.已知明文攻击已知明文攻击(KnownPlaintextAttack,KPA)是指攻击者掌握了部分的明文M和对应的密文C,从而求解或破解出对应的密钥,如图所示。2.2密码学概述3.选择明文攻击选择明文攻击(ChosenPlaintextAttack,CPA)是指攻击者除了知道加密算法外,还可以选定明文消息,从而得到加密后的密文,即知道选择的明文和加密的密文,但是不能直接攻破密钥,希望通过破解推出密钥,如图所示。2.2密码学概述4.选择密文攻击选择密文攻击(ChosenCiphertextAttack,CCA)是指攻击者可以选择密文进行解密,在知道已知明文攻击的基础上,攻击者可以任意制造或选择一些密文,并得到解密的明文,希望以此推出密钥,是一种比已知明文攻击更强的攻击方式,如图所示。若一个密码系统能抵抗选择密文攻击,那必然能够抵抗唯密文攻击和已知明文攻击。选择密文攻击主要应用于分析公钥密钥体制。2.2密码学概述各种攻击类型比较:2.3古典密码学

2.3.1古典加密方法1.替代加密方法

替代加密方法是将明文的字母替换为其他字母、数字或符号,其原理是单字母替换,即明文的每一个字母都被替换为字母表中的固定位置后的字母。

替代加密方法的实质就是将明文的字符替换为密文中的另一种的字符,接收者只要对密文做反向替换就可以恢复出明文。

最著名的替代加密是凯撒密码。2.3古典密码学2.置换加密方法置换加密方法是通过改变明文字母的顺序来实现加密,是以置换移位为基础的周期替换密码,其中的明文字母保持相同,但顺序被打乱了。

最著名的置换移位法密码是维吉尼亚密码。

3.其他的古典加密方法如棋盘密码和栅栏密码。棋盘密码通过将26个字母变换成十位数来达到加密的目的,栅栏密码是通过将信息中的字母交替排列成上下两行,再将下面一行的字母排在上面一行的后边,从而形成一段密码。2.3古典密码学

2.3.2替代密码

替代密码是最简单且最早使用的加密技术之一,在这种方法中,明文中的每个字母或符号都被替换为另一个字母或符号,替代密码可以进一步分为单表替代密码和多表替代密码。

1.单表替代密码单表替代密码是指明文中的每个字母被固定地替换为另一个字母,最著名的单表替代密码是凯撒密码,其中每个字母在字母表中向前或向后移动固定数量的位置。单表代替建立了由明文到密文的一对一的映射关系。2.3古典密码学

(1)加法密码。

在这种方法中,明文中的每个字母都在字母表中向前或向后移动固定数量的位置。加法密码的映射函数为:

其中,k是满足0<k<n的正整数。

著名的加法密码是古罗马的凯撒大帝使用过的一种密码,其密文字母表就是明文字母表循环右移3位(k=3)后得到的字母表,即A就会被替换为D,B被替换为E,依此类推,如图所示。2.3古典密码学例如,明文为CHINA,转换成密文后就是FKLQD。

凯撒密码的安全性很低,因为它只有26种可能的移位量,而且每个字母都被相同的移位量替换。而且明文空间和密文空间相等,结构简单,单字母代替不能改变字母的统计特性。2.3古典密码学

(2)乘法密码。

乘法密码是通过对字母等间隔抽取以获得密文,其加密和解密可分别表示为:其中,m、c、k是满足0≤m、c、k≤25且gcd(k,n)=1即k和n互素。

2.3古典密码学

(3)仿射密码。

仿射密码是加法密码和乘法密码的结合,映射函数为:仿射密码是一种更复杂的替换密码,它使用模数运算来进行加密。在这种方法中,明文中的每个字母都被视为一个数字(例如,a=0,b=1,依此类推),其中a和b与字母表的长度互质。然后通过线性函数进行转换。虽然仿射密码比凯撒密码更复杂,但在已知密钥的情况下,仍然可以相对容易地被破解。

2.3古典密码学

2.多表替代密码

多表替代密码是指使用多个替代表进行加密,选择哪个替换表通常基于明文中的某些特征,如字母的位置或之前的字符。最典型的多表替代密码是维吉尼亚密码,它使用一系列不同的凯撒密码进行加密。维吉尼亚密码是一种简单的多表替代密码,由一些偏移量不同的凯撒密码组成。英文中a-z,由0-25表示。假设串长为m,明文为M,密文为C,密钥为K则:2.3古典密码学例如,明文为:ATTACKATDAWN,选择某一关键词并重复而得到密钥,如关键词为LEMON时,则密钥为:LEMONLEMONLE。加密时,对于明文,使用加密函数得:C=(A+L,T+E,T+M,…,N+E)mod26=(0+11,19+4,19+12,…,13+4)mod26=(11,23,31,…,17)mod26=(11,23,5,…,17)=(LXF,…,R)因此,得到密文为LXFOPVEFRNHR。2.3古典密码学解密时,对于密文LXFOPVEFRNHR,使用解密函数得:M=(L-L,X-E,F-M,…,R-E)mod26=(11-11,23-4,5-12,…,17-4)mod26=(0,19,-7,…,13)mod26=(0,19,19,…,13)mod26=(ATT,…,N)因此,得到明文为ATTACKATDAWN。2.3古典密码学

2.3.3置换密码

置换密码不改变明文字符,只将字符在明文中的排列顺序改变,从而实现明文信息的加密。根据复杂度的不同,可以分为简单置换密码和混合置换密码。

1.简单置换密码

简单置换密码也称换位密码,它不改变明文中的字母,而是重新排列它们的位置。这种加密方法基于将明文分割成不同的部分,然后按照某种特定的模式重新组合这些部分。

如栅栏密码就是一种转置密码,它将明文按照Z字形排列,然后依据列或行读取以产生密文。2.3古典密码学最简单的栅栏技术,将明文按对角线的顺序写下,然后按行读出即为密文。深度为2的栅栏密码加密消息“helloeverybody”,写成如下形式:hlovrbdeleeyoy最后形成的密文是:HLOVRBDELEEYOY。

2.混合置换密码

混合置换密码也称为替代-置换密码,它结合了替换和置换两种技术,首先将明文通过替代的方式进行加密,然后通过置换的方式进一步加密。这种组合方法提供了更高的安全性。2.3古典密码学如将“helloeverybody”采用混合置换密码加密为:首先,设定k=3,将明文字母表循环右移3位后,到一个中间密文:khoohyhubergb。然后,采用为2的栅栏密码加密,按对角线的顺序写下,然后按行读出即为密文,成如下形式:kohhbrbhoyueg最后形成的密文是:KOHHBRBHOYUEG。2.3古典密码学3.安全性问题

大多数古典加密方法都是基于简单的替换和转置技术,这使得它们容易被频率分析、模式识别和穷举攻击等方法所破解。

古典加密方法通常需要保密的密钥来进行加密和解密,在没有现代通信和密钥分发技术的情况下,安全地传输和存储这些密钥是一个巨大的挑战。

如果密钥被泄露或丢失,那么整个加密系统就可能被攻破。虽然古典加密方法在当时可能是安全的,但随着计算能力的不断提高,这些加密方法的安全性已经大大降低。现代的计算机可以在很短的时间内尝试所有可能的密钥或移位量,轻松地破解这些加密方法。

2.4对称密码体制

2.4.1对称密码体制概述1.对称密码体制的概念对称密码体制所采用的算法被称为对称加密算法。

在对称加密算法中,数据发送方将明文和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去,接收方收到密文后,若想得到明文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。对称密码体制可以形式化表示为一个五元组:(M,C,K,E,D),其中:●M表示明文,指待发送的消息或数据。●C表示密文,指对明文进行某种变换后输出的信息,密文是不能直接理解的字符。●K表示加密或解密密钥,是一组满足一定条件的随机序列。

2.4对称密码体制●E表示加密,即M×K→C,是将明文转换为密文的变换过程。●D表示解密,即C×K→M,是将密文还原为明文的变换过程

对称密码体制的原理示意图如图所示:

其最大的特点是加密和解密时使用相同的密钥,

优点是加密速度快、效率高,但缺点是安全性得不到保证,密钥管理困难。

常见的对称加密算法有DES、3DES、AES等。

2.4对称密码体制对称密码体制也称为单钥密码体制,密钥必须通过安全可靠的途径将送至接收端,系统的保密性取决于密钥的安全性。

按照对明文消息进行加密的方式,单钥密码体制可分为两类,即序列密码和分组密码。

序列密码是明文消息按字符进行逐位加密。

分组密码是将明文消息分组(如128位一组),分组进行加密。

2.4对称密码体制

2.序列密码

序列密码,又称为流密码,它一次只对明文消息的单个字符(通常是二进制位)进行加解密变换,明文流与密钥流按顺序逐比特异或,产生密文流,加密原理如图所示。

序列密码的加解密只是简单的模二加运算,安全强度主要依赖于密钥序列的随机性。

2.4对称密码体制序列密码的关键是要保持通信双方的精确同步,在序列密码中将明文消息按一定长度(长度较小)分组,对各组用关联但不同的密钥逐位加密产生相应的密文,相同的明文分组会因在明文序列中的位置不同而对应于不同的密文分组,接收者用相同的密钥序列对密文序列逐位解密恢复出明文。序列密码是对一次一密加密系统的尝试,能较好的隐藏明文的统计特性,具有实时性好、加解密速度快、易实现的优点,但存在密钥分配困难的缺点。

目前公开的序列密码算法主要有RC4、A5、SEAL等。

2.4对称密码体制

3.分组密码

(1)分组密码的原理

分组密码是将明文消息编码表示后的数字序列划分成长度为n的组(或称为块),然后在密钥的控制下对每一组进行加密变换,生成等长的密文数字序列,其原理如图所示。

其本质是一个从明文空间M到密文空间C的一一映射。2.4对称密码体制这种加密方式的优势在于允许对每一个分组进行独立、并行的加密处理,提高了加密的速度和效率。

(2)分组密码的设计思想分组密码是现代密码学中的一类重要加密算法,在设计分组密码时,安全性是最基本、最重要的原则,香农(Shannon)提出的混乱原则和扩散原则是分组密码设计的两个基本原则。

①混乱原则。混乱原则是指通过加密变换,使得密文与明文以及密文与密钥之间的关系尽可能地复杂和难以分析。

通过混乱原则,分组密码可以有效地抵抗统计分析攻击,提高密码的安全性。2.4对称密码体制混乱原则包括两个方面:

一是使得密文与明文的关系复杂化,在加密过程中尽可能引入足够的不确定性,如非线性变换、替换操作等,使得即使攻击者知道明文和密文之间的某种关系,也无法直接推断出密钥信息;

二是使得密文与密钥的关系复杂化,通过密钥调度算法、多轮加密等方式,使得密文与密钥之间的关系足够复杂,即使攻击者知道了部分密文,也无法轻易推导出密钥的完整信息,防止攻击者通过统计分析来破解密码。

②扩散原则。扩散原则是指通过加密变换,使得明文中的每一位都尽可能地影响到密文中的很多位,并且密文中的每一位也尽可能地受到明文中的很多位的影响。2.4对称密码体制通过扩散原则,分组密码可以防止攻击者通过差分分析或线性分析等方法来破解密码。

扩散原则也包含两个方面,

一是明文到密文的扩散,通过替换操作、置换操作等,加密算法能够将明文中的每一位信息扩散到密文中的多个位置,即使攻击者知道了明文中某个特定位置的信息,也无法直接推断出密文中对应位置的信息;

二是密文到明文的扩散,通过替换操作、置换操作等,加密算法能够将密文中的每一位信息扩散到明文中的多个位置,即使攻击者知道了密文中某个特定位置的信息,也无法直接推断出明文中对应位置的信息。2.4对称密码体制目前,在分组密码中主要通过多重代替变换(S)和替换变换(P)来实现混淆和扩散的目标,如图所示:S代替变换起到混淆的作用,P置换变换起到扩散的作用。2.4对称密码体制分组密码是一种非常重要的对称密码体制,在设计分组密码时,要遵循安全性、效率性、易用性以及可扩展性等原则。

实现分组密码时,要考虑实现的简单性、加密和解密的速度以及资源和成本的消耗等因素。

常用的分组密码算法有DES、AES、3DES和SM4算法,其中SM4算法是由我国自主研发的对称密钥分组密码算法,具有安全性高、实现简单、易于硬件和软件实现等特点,被广泛应用于国内的信息安全领域。2.4对称密码体制(2)分组密码和序列密码比较

2.4对称密码体制

2.4.2DES算法1.DES算法的总体结构

DES(DataEncryptionStandard,数据加密标准)是一种分组密码算法。DES算法设计中使用了分组密码设计混淆和扩散原则,能够抗击攻击者对密码系统的统计分析。DES算法将输入的明文分为64位的数据分组(最后一个分组不足64位则补0),使用一个64位的密钥进行变换(第8i位为奇偶校验位,i=1,2,…),每个64位明文分组数据经过初始IP置换、16次迭代和IP-1置换3个阶段处理,最后输出64位密文,算法总体结构如图所示。2.4对称密码体制2.IP置换

IP置换目的是将输入的64位数据块按位重新组合,把输出分为L0、R0两部分,每部分各长32位,置换规则如表所示。表中的数字代表新数据中此位置的数据在原数据中的位置,即将输入的64位明文的第1位置换到第40位,第2位置换到第8位,以此类推,最后一位是原来的第7位。L0是置换后的数据的前32位,R0是置换后的数据的后32位。2.4对称密码体制

2.4对称密码体制4.密钥置换DES的密钥长度为56位,分组长度为64位,而且每一轮迭代中,都需要从56位密钥产生出不同的48位子密钥。因此需要对加密密钥进行置换,使其符合加密算法的输入、输出需求,具体置换过程分为以下四个步骤。(1)置换选择PC1:

根据密钥的特点,不考虑每个字节的第8位,DES的密钥由64位减至56位,每个字节的第8位作为奇偶校验位。再将56位密钥位打乱重排,前28位记为C0,后28位记为D0。2.4对称密码体制

不考虑每个字节的第8位,DES的密钥由64位(原始密钥表)减至56位(置换密钥表)每个字节的第8位作为奇偶校验位。将56位密钥位打乱重排,前28位记为C0,后28位记为D02.4对称密码体制(2)循环左移:根据迭代轮数,将Ci-1

和Di-1

分别进行循环左移1位或2位得到Ci和Di,但保持总位数不变,每轮迭代左移的位数如表所示。(3)置换选择PC2:将Ci

与Di

合成56位中间数据,再从56位中间数据中选择一个48位的子密钥Ki(1≤i≤16)。通过该处理过程,既置换了每位的顺序,又获得子密钥Ki,因此也称为压缩置换。2.4对称密码体制压缩置换规则如表所示,表中没有9,18,22,25,35,38,43和54位。(4)循环执行循环左移、置换选择PC2过程,直至生成16个48位的子密钥。2.4对称密码体制5.

Feistel迭代DES算法在加密过程中使用Feistel结构,通过16轮的迭代操作来确保数据的安全。16轮Feistel迭代流程图如图:Feistel结构的核心是16轮迭代加密计算,每一轮的输出都依赖于密钥和上一轮的输出。整个过程是可逆的,因此可以使用相同的解密算法和密钥还原原始的明文。2.4对称密码体制在每一轮中,相同的加密算法和密钥都被使用,该过程可以看做是一个加密轮函数F,它将右边的部分R和轮密钥进行变换,并将结果与左边的部分L进行异或运算,得到新的R。

每一轮的加密过程如图所示:2.4对称密码体制6.轮函数F轮函数F是DES加密算法的核心部分,主要由扩展置换E、S盒替代、P盒置换3部分组成,通过多种替代、置换来实现数据加密。(1)扩展置换E

扩展置换的目的是在IP置换后获得的右半部分R0,将32位输⼊扩展为48位输出,以便和48位的密钥进行异或运算。扩展置换E规则如表所示:2.4对称密码体制

(2)S盒替代压缩后的密钥与扩展分组异或以后得到48位的数据,将这个数据送入S盒,进行替代运算。替代由8个不同的S盒完成,每个S盒有6位输入4位输出。48位输入分为8个6位的分组,一个分组对应一个S盒,对应的S盒对各组进行代替操作,S盒替代示意图如图所示。2.4对称密码体制

一个S盒是一个4行16列的表,盒中的每一项都是一个4位的数。S盒的6个输入确定了其对应的输出在哪一行哪一列,输入的高低两位作为行数H,中间四位作为列数L,在S盒中查找第H行L列对应的数据,S盒代替表如表所示。2.4对称密码体制

(3)P盒置换将S盒替代运算的32位输出按照P盒进行置换,该置换把每位输⼊映射到输出位,任何一位不能被映射两次,也不能被略去,映射规则如表所示:2.4对称密码体制

扩展置换E的作用是增加数据的混乱度,使加密算法更加安全可靠。由于DES算法使用了密钥加密,每轮操作都需要重新计算48位数据,增加攻击者破解密钥的难度。

S盒代换是DES算法中非常重要的一步,它可以有效地混淆明文,增加加密的难度,提高加密强度。

P置换的作用是将输入数据的不同位置的位混淆,增加加密的难度,提高数据的安全性。例如,已知明文m=computer,密钥k=program,它们相应的ASCII码表示为:m=0110001101101111011011010111000001110101011101000110010101110010

k=011100000111001001101111011001110111001001100001011011012.4对称密码体制其中,k只有56bit,在加密时需要加入第8、16、24、32、40、48、56、64位的奇偶校验位,构成64bit。①m经过IP置换后,得到如下两部分:L0=11111111101110000111011001010111R0=00000000111111100000110100000011②密钥k经过置换后,得到如下两部分:C0=1110110010011001000110111011D0=1011010001011000100011100111③循环左移一位后,得到48bit的子密钥k1:k1=001111011000111111001101001101110011111101001000④R0经过扩展变换得到48bit序列为:R0=1000000000010111111111101000000011010100000001102.4对称密码体制⑤R0和k1进行异或运算,得到:101111011001100000110011101101111110101101001110⑥将得到的结果分成8组:101111011001100000110011101101111110101101001110⑦通过8个S盒得到32bit的序列:0111011001101000010011010100001⑧对S盒的输出序列进行P盒置换,得到01000100001000001001111010011111⑨经过以上操作,得到第1轮加密的结果:0000000011111111000001101000001110111011100110001110100011001000⑩经过16轮后,得到的结果是01011000101010000100000110111000011010011111111010101110001100112.4对称密码体制7.

DES算法的特征DES算法加密速度快,加密和解密使用同一密钥,有效密钥长度为56位。加密过程先替代后置换,混合使用了混乱和扩散两种加密技术,以64位为分组,输入64位明文,输出64位密文。DES算法使用了标准的算术和逻辑运算,其作用的数最多只有64位,实现简单,很容易实现算法的重复特性,适合于大量的数据加密。

然而,DES的有效密钥只有56位,长度较短,密钥量为256个,存在许多弱密钥,随着计算能力的提升,使用暴力破解的方法就可以破解。同时需要以安全方式进行密钥交换,密钥管理分发困难。目前应用较少,沿用的也都尽量采用3DES加密。2.5非对称密码体制

2.5.1非对称密码体制概述1.非对称密码的工作原理非对称密码体制也称为公钥密码体制,加密和解密操作使用两个不同的密钥,即公钥和私钥。公钥是公开的,用于加密信息,可以被任何人使用;私钥是保密的,用于解密信息,只能由持有者自己知道。非对称密码算法依赖于一个加密密钥和一个与之相关的解密密钥,但根据密码算法和加密密钥来确定解密密钥在计算上是不可行的,且两个密钥中的任何一个都可用来加密,另一个用来解密。对称密码体制也可以形式化表示为一个六元组:(M,C,PK,SK,E,D),其中:●M表示明文,指待发送的消息或数据。

2.5非对称密码体制●C表示密文,指对明文进行某种变换后输出的信息,密文是不能直接理解的字符。●PK表示加密密钥,也称为公钥,是一组满足一定条件的随机序列。●SK表示解密密钥,也称为私钥,是一组满足一定条件的随机序列。●E表示加密,即E(PK,M)→C,是将明文转换为密文的变换过程。●D表示解密,即D(SK,C)→M,是将密文还原为明文的变换过程。2.5非对称密码体制与对称加密不同,非对称加密算法在加密和解密过程中使用不同的密钥,如图所示。所用的密钥由一个变成了两个,虽然密钥量增大了,但私钥由个人进行保管,公钥可以向任何人公开,能够更好地解决密钥的分发和管理的问题,并且还能够实现数字签名。与对称密码体制相比,非对称密码体制具有更高的灵活性和更强的安全性。非对称加密算法相对于对称加密算法在安全性和密钥分发等方面具有优势,但在计算复杂性和密钥管理等方面存在一定挑战。2.5非对称密码体制2.非对称密码体制和对称密码体制的区别非对称密码体制和对称密码体制是密码体制的两种不同的分类,主要在密钥的使用、加密和解密的速度以及安全性等方面都存在一定的区别,如表所示。2.5非对称密码体制3.非对称密码的应用场景非对称密码中加密和解密算法使用不同的密钥,使其广泛适用于数据加密和解密和数字签名的场景中。(1)加密和解密。发送方使用接收方的公钥加密,接收方使用对应的私钥解密。这样只有私钥的拥有者能解密,保证了消息的私密性。如图所示。2.5非对称密码体制

(2)数字签名。发送方使用私钥做签名,消息接收者根据对应的公钥进行签名验证。由于只有消息发送方拥有私钥、生成签名,因此签名验证成功后表明此消息确实由发送方发送过。数字签名解决了发送方否认问题,可以用于认证源和数据完整性,如图所示。2.5非对称密码体制4.非对称密码的特征由于非对称密码使用的是两个独立的密钥,算法是基于数学函数而不是基于替代和置换,因此一个安全的公钥密码算法至少应满足以下要求:

①接收方B产生一对密钥在计算上是容易的。②已知公钥和要加密的消息M,发送方A产生相应的密文在计算上是容易的,即C=E(PUb,M)。③接收方B使用私钥对接收的密文解密以恢复明文在计算上是容易的,即M=D(PRb,C)=D(PRb,E(PUb,M))。④已知公钥PUb,攻击者要确定私钥PRb

在计算上是不可行的。2.5非对称密码体制

2.5非对称密码体制5.非对称密码被攻击方式分析

(1)穷举攻击非对称密码容易受到穷举攻击,解决办法是使用长密钥。但长密钥将使加密和解密过程变慢,降低数据的处理效率。从抗穷举攻击角度分析,需要使用长密钥保证安全性;从提高加密和解密的效率角度,又需要使用短密钥保证效率。如何在保障安全性的同时,提高密码处理效率是非对称密码学研究的一个重要问题。(2)根据公钥计算私钥对公钥密码的另一种攻击办法是找出一种从给定的公钥计算出私钥的办法,目前未能在数学上的证明确定该攻击不可行,但也没有可行的办法进行这样的攻击。2.5非对称密码体制

(3)穷举消息攻击根据消息本身的特点,即公钥经常用来传递传统密码的密钥来进行对消息的穷举攻击。例如,要发送的消息是56位的DES密钥,那么攻击者能够用公钥对一切可能的密钥加密,并与传送的密文匹配,然后可解密任何消息。因而,不管公钥体系的密钥有多长,这种攻击都能够转化为对56位密钥的穷举攻击。解决办法是在要发送的消息后附加一个随机数。2.5非对称密码体制

2.5.2RSA算法1.

RSA算法原理RSA算法是一种广泛应用的公钥加密算法,其安全性基于大数分解的困难性。RSA算法通过一对公钥和私钥实现加密和解密操作,公钥用于加密数据,私钥用于解密数据。只有持有私钥的人才能解密用公钥加密的数据,从而保证了数据的安全性。RSA加密过程包括密钥生成、加密和解密三个步骤。具体过程如下:(1)密钥生成●任意选择两个大的素数p和q,计算它们的乘积n=p×q。●使用欧拉函数计算t=(p-1)(q-1),选择一个质数e,并使得e与t互质,且1<e<t。2.5非对称密码体制

2.5非对称密码体制

2.5非对称密码体制

例如,选取p=3、q=11,则计算n=3×11=33,使用欧拉公式计算t=(p-1)(q-1)=2×10=20。选取与20互质的素数3,即e=3。再根据公式(3×d)%20=1,计算得出d=7。则生成的公钥为(33,3)、私钥为(33,7)。假设A要发送(1,2,3)给B,过程如图所示。2.5非对称密码体制2.

RSA算法的特征(1)安全性高RSA加密算法的安全性主要基于大数因数分解问题的困难性。RSA公钥包含一个模数n,它是两个大质数p和q的乘积,RSA的私钥涉及到p和q的具体值。如果一个攻击者想要破解RSA加密,他需要从n中提取出p和q。然而,计算n=p*q是一个相对简单的操作,但是当n足够大时,利用因数分解从n中恢复p和q是极其困难的,这就使得RSA加密在实践中非常安全,目前还没有有效的算法能够在短时间内解决大数因数分解问题和离散对数问题。2.5非对称密码体制(2)运算速度慢受到素数产生技术的限制,难以做到一次一密,为保证安全性,n至少也要600bits以上,使得运算代价高,处理速度较慢,较对称密码算法慢几个数量级。无论是软件还是硬件实现,速度一直是RSA的缺陷,且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。

3.RSA算法的应用(1)数据传输加密RSA算法可以对敏感数据进行加密保护,防止数据泄露。只有持有私钥的人才能解密数据,保证了数据的机密性。在计算机网络中,RSA可用于对敏感信息进行加密传输,保护数据的安全2.5非对称密码体制性。支付系统、电子商务等领域常使用RSA加密算法来保护用户的隐私数据。

(2)数字签名RSA算法可以确保数据的完整性和真实性。发送方使用私钥对数据进行签名,接收方使用公钥进行验证。如果签名有效,说明数据在传输过程中未被篡改,且确实来自发送方。RSA可用于生成数字签名,验证文件的完整性和真实性,在电子合同、电子证据等场景中,RSA数字签名被广泛应用。

(3)密钥交换RSA算法可以实现安全的密钥分发。通过公钥加密的方式传输密钥,确保密钥在传输过程中不被窃取或篡改,RSA的公钥2.5非对称密码体制加密特性使其成为密钥交换的理想选择。在SSL/TLS协议中,RSA密钥交换算法用于确保通信双方的安全通信。

(4)数字证书RSA可用于生成和验证数字证书,提供身份认证和数据加密。在Web服务器身份验证、电子邮箱安全等领域,RSA数字证书发挥着重要作用。2.6哈希函数

2.6.1哈希函数概述

哈希函数,也称Hash函数、散列函数、杂凑函数、哈希算法或消息摘要算法,它将任意长度的输入数据,通过散列算法,变换成固定长度的输出,该输出就是散列值。

哈希算法的主要特点是单向性和不可逆性,即无法从哈希值还原出原始数据,具有保证数据的完整性、计算高效以及不可逆性等优点。

1.哈希函数模型结构构造哈希函数的关键是如何将长度不限的输入变换成定长的输出,通常使用迭代压缩的方法,即反复使用压缩函数。哈希函数模型由预处理、迭代处理和输出变换三个部分组成,如图所示。2.6哈希函数

2.6哈希函数

2.6哈希函数在预处理阶段,必须保证x→y是单射。如果预处理变换不是单射,则存在x≠x’,使得y=y’,从而得到h(x)=h(x’),则会产生h的碰撞。使用任意抗碰撞的压缩函数,都可以使用迭代方法构造一个抗碰撞的Hash函数。这样使得设计安全的Hash函数问题,转化为设计有固定长度输入的抗碰撞压缩函数问题。2.6哈希函数2.哈希函数的性质●可作用于任意长度的数据块,产生一个固定长度的输出,如SHA-1的输出为160比特,SHA-256的输出是256比特。●给定任意x,计算H(x)比较容易。●单向性,也称为抗原像性,即给定哈希值不可能产生对应的消息。对于任意给定的消息m,计算其哈希值h容易。但是,对于给定的哈希值h,要找到M使得H(M)=h在计算上是不可行的。●抗碰撞性,即给定消息的哈希值不能找到与之相同的另外的消息。如,给定消息x和y,使得H(x)=H(y),在计算上是不可行的。2.6哈希函数3.哈希函数的用途(1)数据加密哈希函数可以将原始数据加密成固定长度的密文,可以用于保护敏感数据的安全性,防止数据被篡改或窃取。(2)数据完整性哈希函数可以将数据转换成散列值,这个散列值可以用于验证数据的完整性。只要数据未被篡改,计算出的散列值就是不变的。如果散列值不一致,表明数据可能已被篡改。(3)数字签名Hash算法是现代密码体系中的一个重要组成部分,由于非2.6哈希函数对称算法的运算速度较慢,所以在数字签名协议中,首先利用哈希函数生成一个数字摘要,然后对数字摘要进行签名,在统计上可以认为与对文件本身进行数字签名是等效的,同时还可以提高处理的速度。(4)安全验证哈希函数可以被用于安全验证,如密码验证。在存储用户密码时,使用哈希函数将用户密码转换成散列值,然后将这个散列值存储在数据库中。当用户登录时,系统会将用户输入的密码再次通过哈希函数转换成散列值,然后与数据库中存储的散列值进行比较,从而进行密码验证。2.6哈希函数(5)文件校验常用的校验算法有奇偶校验和CRC校验,这两种校验并没有抗数据篡改的能力,它们一定程度上能检测并纠正数据传输中的信道误码,但却不能防止对数据的恶意破坏。而哈希函数“数字指纹”特性,使它成为目前应用最广泛的一种文件完整性校验算法。2.6哈希函数4.常用的哈希函数●MD5:基于消息的长度产生一个128位的散列值,用于数据完整性验证和密码加密。●SHA-1:基于消息的长度产生一个160位的散列值,用于数字签名和证书认证。●SHA-2:包括SHA-224、SHA-256、SHA-384、SHA-512等多种变体,散列值长度从224位到512位不等,是一种安全性较高的哈希函数。●CRC:循环冗余校验码,用于数据传输错误检测。2.6哈希函数●MurmurHash:一种非加密型哈希函数,用于大规模数据的哈希处理,具有较低的冲突率和较高的速度。●CityHash:一种快速的哈希函数,用于大规模数据和分布式环境下的哈希处理。●FNVHash:一种非加密型哈希函数,通过将数据的每个字节与一个较大的质数进行异或运算得到哈希值,速度较快。●JenkinsHash:一种流行的哈希函数,用于任何大小的数据,能够产生高质量的哈希值,冲突率较低。2.6哈希函数

2.6.2MD5算法1.

MD5算法的概念

MD5(Message-DigestAlgorithm5)也称为信息摘要算法,是一种广泛使用的密码散列函数,能够把明文内容按一定规则生成一个哈希(hash)值,即得到这段明文内容的信息摘要。利用MD5可以将任意长度的消息输入计算出一个固定长度的摘要,其生成的摘要具有唯一性和不可逆性。MD5算法的核心思想是将任意长度的消息输入到一个压缩函数中,该函数通过一系列变换将消息转换成固定长度(128位)的消息摘要。由于函数中使用了大量的非线性变换操作,因此即使输入的消息相差只有一位,其输出的摘要也会发生很大的变化,因此在一些场景下可以用来验证数据的完整性和真实性。2.6哈希函数2.

MD5算法流程MD5算法以512位分组来处理输入的信息,每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成的128位散列值,算法流程如图所示:2.6哈希函数3.

MD5的安全性问题尽管MD5算法在许多领域中被广泛应用,但仍然存在一些安全性问题,主要体现在以下两个方面:(1)产生哈希碰撞。哈希碰撞指的是不同的输入消息可以产生相同的哈希值,这就意味着攻击者可以通过构造不同的输入消息,产生相同的哈希值来欺骗密码系统。对于MD5算法,我国学者王小云成功地构造出了不同的输入数据,而哈希值却相同的情况,此后王小云领头设计了中国的哈希密码算法标准SM3。(2)可预测性。MD5算法中使用了较弱的加密函数和简单的操作流程,这使得其对于攻击者有着较强的可预测性。如果攻击者能够获得输入的部分信息,就有可能推导出摘要的值。2.6哈希函数

2.6.3SM3算法1.

SM3算法的概念

SM3算法又称SM3密码杂凑算法,是一种基于Hash的消息摘要算法,主要用于生成消息以及文件的数字签名,以保证信息的完整性和不可否认性。它的主要特征是加密过程不需要密钥,并且加密后无法还原为明文,是不可逆的。SM3密码杂凑算法是中国国家密码管理局2010年公布的中国商用密码杂凑算法标准。SM3适用于商用密码应用中的数字签名和验证,是在SHA-256基础上改进的一种算法,安全性和SHA-256相当。SM3和MD5迭代过程类似,也采用Merkle-Damgard结构。消息分组长度为512位,摘要值长度为256位。2.6哈希函数2.

SM3算法的加密流程

SM3算法输入的是长度小于264比特的明文数据,并以512比特的分组为单位进行加密处理,输出的是256比特的密文数据(信息摘要)。SM3算法加密流程主要包括信息填充、信息分组、信息扩展、迭代压缩、输出结果5个步骤,加密过程需要先将消息按每512比特(64字节)进行分组,然后对每组都进行消息扩展、消息压缩,执行到最后一组时进行消息填充,再压缩,最后输出结果,其执行过程如图所示。2.6哈希函数2.6哈希函数

SM3算法对输入长度小于2的64次方的比特消息,经过填充和迭代压缩,生成长度为256比特的杂凑值,其中使用了异或、模、模加、移位、与、或、非运算,由填充、迭代过程、消息扩展和压缩函数所构成。测试结果表明,SM3算法的运算速度快于SHA2算法。SM3算法适用于商用密码应用中的数字签名和验证,消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。目前已广泛应用于电子签名类密码系统、计算机安全登录系统、计算机安全通信系统、数字证书、网络安全基础设施、安全云计算平台与大数据等。2.7数字签名

2.7.1数字签名概述

数字签名是一种用于验证数据完整性和身份认证的技术,通过使用非对称加密算法将原始数据和发送者的私钥进行加密运算,形成一个数字签名,接收者可以使用发送者的公钥对数字签名进行解密,验证数据的完整性和发送者的身份。数字签名的创建需要使用发送方的私钥对数据的哈希摘要进行加密,接收方可以使用发送方的公钥来解密这个数字签名,从而获得数据的哈希摘要,并通过与自己收到的原始数据产生的哈希摘要进行对比,来检查数据是否在传输过程中被篡改。数字签名还具有身份认证、数据完整性和不可否认性的重要属性,确保了在线交互的透明度和用户之间的信任。2.7数字签名

1.数字签名的原理数字签名基于公钥密码学的基本原理,利用私钥和公钥的基本特性,即私钥只有文档的签名者拥有,并且必须保密保存,公钥可以被任何人访问,通过加密和解密操作来验证双方的身份。数字签名的过程如下:(1)签名者使用哈希函数对要签名的文档进行摘要计算,生成一个固定长度的哈希值。(2)签名者使用自己的私钥对哈希值进行加密,生成数字签名。(3)数字签名与原文一起传输给接收者。2.7数字签名(4)接收者使用签名者的公钥对数字签名进行解密,得到原文的哈希值。(5)接收者使用相同的哈希函数对接收到的原文进行摘要计算,得到一个新的哈希值。2.7数字签名例如:2.7数字签名

2.数字签名的基本特征(1)不可否认性发送者事后不能抵赖对报文的签名。只有用户A拥有私钥A,并能使用私钥A产生“加密的摘要”,这样用户A就不能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论