密码学基础

Posted weixin_51830687

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了密码学基础相关的知识,希望对你有一定的参考价值。

5.1 密码学基本概念

密码学形成与发展
◆古典密码学(1949年之前)
◆主要特点:数据的安全基于算法的保密
◆近代密码学(1949~1975年)
◆主要特点:密码学真正成为]科学
◆现代密码学(1976年以后)
◆密码学的新方向公钥密码学
◆主要特点:解决了密钥分发和管理的问题
密码学形成与发展

例如: ENIGMA
ENIGMA-是由 Arthur Scherbius(亚瑟谢尔比斯)于1919年发明了密码转轮机,使用机电代替手工。在二次世界大战期问Enigma曾作为德国陆、海、空三军最高级密码机
◆古典密码
◆安全性在于保持算法本身的保密性
◆不适合大规模生产
◆不适合较大的或者人员变动较大的组织
◆用户无法了解算法的安全性
◆主要分类
◆替代密码
◆置换密码
◆替代密码与置换密码的组合
◆近代密码学
◆1949年, Shannon(香农)发表论文"The Communication Theory of Secret Systems",将信息论引入了密码,从而把已有数干年历史的密码学推向了科学的轨道,奠定了密码学的理论基础。
◆现代密码学
◆解决了密钥分发、管理问题,并提供更多服务
◆1976年, Diffie& Hellman的" New Directions in Cryptography"提出了非对称密钥密码
密码学真正广泛在商业中应用
密码学技术在信息安全中的应用

密码系统安全
◆基本保密通信模型
◆基本概念
◆明文、密文
◆加密、解密、加密密钥、解密密钥…

密码系统的安全性
◆影响密码系统安全性的基本因素
◆密码算法复杂度、密钥机密性、密钥长度
◆科克霍夫( Kerckhoff)原则:密码体制应该对外公开,仅需对密钥进行保密;如果一个密码系统需要保密的越多,可能的弱点也越多
◆评估密码系统安全性
◆无条件安全、计算安全性、可证明安全性
密码系统安全
◆密码系统实际安全需要满足的准则
◆破译该密码系统的实际计算量无法实现
◆破译该密码系统所需计算时间超过信息的生命周期
◆破译该密码系统的费用超过被加密信息本身的价值
密码算法分类
◆基于算法的保密性
◆受限制的算法
◆基于密钥的算法
◆基于密钥的算法,按照密钥的特点分类
◆对称密码算法( symmetric cipher)
◆非对称密钥算法( asymmetric cipher)
◆按照对明文的处理方式分类
◆分组密码( block cipher)
◆流密码( stream cipher)
◆受限制的算法
◆算法的保密性是基于保持加/解密算法的秘密
◆基于密钥的算法
◆算法的安全性不是基于算法的保密,而是基于密钥的安全性,也即基于科克霍夫原则
对称密码算法
◆也称单钥或私钥密码算法,发送和接收数据的双方必须使用相同的密钥对明文进行加密和解密运算,就是说加密和解密使用的是同一密钥。

非对称密码算法( Public Key Cryptosystem PKC)
◆也称双钥或公钥密码算法,是指对信息加密和解密时所使用的密钥是不同的,即有两个密,一个是可以公开的(称为公钥),一个是私有的(称为私钥),这两个密钥组成一个密钥对。使用公钥对数据进行加密,则只有用对应的私钥才能解密

分组密码
◆分组密码又称块密码
◆当加密明文时,先把明文变成二进制序列,然后将其变成若干个固定长度的组,不足位用0补全。然后逐个分组依次进行加密操作。
◆分组长短影响密码强度,分组长度不能太短地也不能太长。既要便于操作与运算又要保证密码的安全性
◆流密码
◆又称序列密码。明文称为明文流,以序列的方式表示。
◆加密时候,先由种子密钥生成一个密钥流。然后利用加密算法把明文流和密钥流进行加密,产生密文流。流密码每次只针对明文流中的单个比特位进行加密变换,加密过程所需要的密钥流由种子密钥通过密钥流生成器产生
分组密码和流密码的区别
◆分组密码每次只能处理一个固定长度的明文,不足还需要补全,分组密码的体制一般首先将M进行填充得到消息M,使其长度为固定分组长度癿L的整数倍
◆流密码加密时不一定得到相同的密码,因为明文的重复部分是使用密钥流的不同部分加密的。对于分组密码,在一个固定的密钥的作用下,对相同的明文加密,一定能得到相同的密文。

5.2 对称密码算法

◆加密密钥和解密密钥相同,或实质上等同
◆算法优点:算法简单、计算量小、加密速度快。加密效率高,适合加密大量数据,明文长度与密文长度相等
◆算法缺点
◆安全信道难以实现
◆安全交换密钥问题及密钥管理复杂
◆无法解決对消息的簒改、否认等问题。
◆分组密码算法
◆流密码算法
对称密码算法
◆分组密码算法:DES、3DES、IDEA、AES、RC5、 Twofish、 Blowfish、CAST-256、MARS

◆流密码算法:RC4


◆3DES
1、两个密钥合起来有效密钥长度有112bit,可以满足商业应用的需要。
2、加密时采用加密解密一加密。
◆AES:比3DES快,而且至少和3DES一样安全,分组长度128位,密钥长度128/192/256。
其他算法
◆RC4算法:算法不对明文进行分组处理,而是字节流的方式依次加密明文中的每一个字节,解密的时候也是依次对密文中的每个字节进行解密。算法密钥长度是可变的。
◆Blowfish算法:算法是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来加密64特长度的字符串。该算法是非专利的。
◆DEA算法:使用128位的密钥和8个循环,它采用软件实现和采用硬件实现同样快速。

5.3 非对称密码算法

◆非对称密码算法特点
◆密钥成对(公钥,私钥)
◆公钥加密私钥解、私钥加密公钥解
◆典型算法:RSA、ECC、 ElGama、SM2

非对称密码的优点
◆解决密钥传递问题
◆大大减少了密钥持有量
◆提供了对称密码技术无法或很难提供的服务(数字签名)
◆非对称密码的缺点
◆计算复杂、耗用资源大
◆非对称会导致得到的密文变长
◆关于公钥密码,有几种常见的误解
◆大公钥密码更安全?
◆公钥密码算法使得对称密码算法成为了过时技术?
◆使用公钥密码实现密钥分配非常简单?
◆实现技术
◆大整数分解可题类:RSA密码体制(最著名的双钥密码体制)
◆椭圆曲线类:ECC和SM2
◆有限域中离散对数问题的 ElGamal公钥密码体制
其他SM算法
◆SM1:是对称算法。分组长度和密钥长度都为128位比特。采用该算法已经研制了智能IC卡、智能密码钥匙、加密卡等安全产品,广泛应用于电子政务、电子商务及国民经済的各个应用领域
◆SM3:是哈希算法。功能与MD5,SHA-1相同。产生256位的哈希值。该算法是不可逆的算法。适用于商用密码应用中的数字签名和验证,消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求
◆SM4:是对称算法。分组长度和密钥长度都为128位比特,主要用于无线局域网产
◆SM7:是对称算法。分组长度和密钥长度都为128位比特。该算法适用于身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付一卡通类应用(公交"一卡通”)等。
◆SM9:是非对称算法。与SM2类似,实现数字签名,密钥交换协议以及密钥封装机制和公钥加解密。不同于传统意义上的SM2算法,可以实现基于手身份的密码体制也就是公与用白的身份信息即识想关省去了证书管理等。

5.4 其他密码服务

哈希函数
◆哈希函数也称单向散列函数,主要用途是消息完整性检测和数字签名。
◆使用哈希函数,可以获取消息的“指纹”,通过对比“指纹”,就能够知道两条消息是否一致,就可以检查消息的完整性,判断消息是否被簒改。
哈希函数的基本特点
◆哈希(Hash)函数接受一个消息作为输入,产生一个叫哈希值的输出,也可称之散列值、消息摘要(message digest)。更准确地说,Hash函数是将任意有限长度比特串映射为固定长度的串,形式如下:h=H(M),M是变长的报文,h是定长的散列值。设x、x是两个不同的消息,如果,则称x和x’是Hash函数h的个(对)碰撞( collision)。对于任意给定的x,H(x)的计算相对简单(易于软硬件实现)。
◆安全的哈希函数需要满足以下性质
◆单向性:对任意给定的码h,寻求x使得在计算上是不可行的
◆弱抗碰撞性:任意给定分组x,寻求不等于x的y,使得在计算上不可行;
◆强抗碰撞性:寻求对任何的(x,y)对,使得在计算上不可行。
◆目前常用的哈希函数有MD5和SHA-1。
◆MD5算法
◆消息摘要算法(RFC1321)由 Ron Rivesth提出。该算法以一个任意长的消息作为输入,输出128bit的消息摘要
◆SHA-1算法
◆安全Hash算法( Secure Hash Algorithm,SHA)由美国标准与技术研究所设计并于1993年作为联邦信息处理标准(FIPS180)发布,修改版于1995年发布(FIPS180-1),通常称之为SHA-1.SHA-1算法的输入是长度小于264的任意消息x,输出160位的散列值。
消息验证码
◆在网络通信中,存在一些针对消息内容的攻击方法,如伪造消息、簒改消息内容、改变消息顺序消息重放或者延迟。为防止主动攻击,可采用消息认证技术
◆消息认证是证实一个收到的消息来自可信的源点且未被纂改、重放或延迟等的过程(完整性、真实性)
◆除哈希函数之外,消息认证码和数字签名都是常用的消息认证技术。
消息验证码
◆消息认证码基本特点
◆消息认证码也称消息签别码( Message Authentication Code,MAC),它利用密钥来生成一个固定长度的短数据块,并将该数据块附加在消息之后。

消息认证码基本特点
◆如果假定只有收发双方知道该密钥,那么若接收到的MAC与计算的MAC相等,则有
接收方可以相信消息未被修改。
◆接收方可以相信消息来自真正的发送方。如果消息中含有序列号(如HDLC、X.25和TCP中使用的序列号),那么接收方可以相信信息顺序是正确的,因为攻击者无法成功地修改序列号
消息验证码基本用法
◆基本用法
◆用法一:MAC直接附加在消息之后

◆MAC基于A和B共享的密钥K生成。若B对收到的消息生成的MAC与收到的MAC相同,他可以确认消息一定来自A,且未被簒改。这种方法不提供对消息的保密
◆基本用法
◆用法二:MAC直接附加在消息之后,并对整体进行加密。

◆密钥K1用于生成鉴别码,提供对消息的鉴别,消息的机密性由A和B共享的密钥K2提供
◆基本用法
◆用法三:先对消息加密,再对密文生成鉴别码:

◆这种方法同时提供保密和鉴别。
消息验证码实现算法
◆分组链消息鉴别码(CBC-MAC)
◆使用分组长度为b位的对称分组密码算法的CBC(Cipher Block Chaining)工作模式对消息进行加密,并取最后一个密文分组最左边的M位作为MAC值,M的大小可由通信双方约定。
◆基于哈希函数的MAC(HMAC)
◆使用哈希函数H,K1和K2()计算,其中K1和K2由同一个密钥K导出。
数字签名
◆消息鉴别用来保护通信双方兔受第三方的攻击。然而,它无法防止通信双方的互相攻击。通信双方可能存在欺骗和抵赖,一种有效的解决方案是数字签名。
◆数字签名是指附加在数据单元上的一些数据,或是对数据单元所做的密码变换,这种数据或变换能使数据单元的接收者确认数据单元来源和数据单元的完整性,并保护数据,防止被人伪造
数字签名基本特性
◆不可伪造性
◆不知道签名者私钥前提下,很难伪造一个合法的数字签名
◆不可否认性
对普通数字签名,任何人可用签名者公钥验证签名的有效性。由于签名的不可伪造性,签名者无法否认自己的签名。此性质使签名接收者可确认
◆消息的来源;
◆保证消息完整性,即消息防簒改
◆数字签名两种分类
◆按照对消息的处理方式,数字签名可分为两类:
◆一种是直接对消息签名,它是消息经过密码变换后被签名的消息整体;
◆另一种是对压缩消息的签名,它是附加在被签名消息之后或某特定位置上的一段签名信息。
数字签名两种分类
◆若按明文和密文的对应关系划分,以上每一种又可以分为两个子类:
◆一类是确定性( Deterministic)数字签名,其明文与密文对应,对一个特定消息的签名,签名保持不变,如RSA、 Rabin签名;
◆另一类是随机化的或概率式数字签名,它对同一消息的签名是随机变化的,取決于签名算法中的随机参数的取值。一个明文可能有多个合法数字签名,如 Elgamal签名
◆应用示例
◆发送过程
◆接收过程

5.5公钥基础设备

PKI定义及构成
◆公钥基础设施(Public Key Infrastructure,PKI)也称公开密钥基础设施。
◆按照国际电联( International Telecommunications Union,TU)制定的X.509标准,其定义,PKI“是一个包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和销等功能。”
◆简单地说,PKI是一种遵循标准,利用公钥加密技术提供安全基础平台的技术和规范,是能够为网络应用提供信任、加密以及密码服务的一种基本解决方案
◆PKI的本质是实现了大规模网络中的公钥分发词题,为大规模网络中的信任建立基础。
◆CA
◆CA是证书签发权威,也称数字证书管理中心,它作为PKI管理实体和服务的提供者,管理用户数字证书的生成、发放、更新和撒销等工作。
◆RA
◆RA是证书注册机构,又称数字证书注册中心,是数字证书的申请、审核和注册中心,同时也是CA认证机构的延伸。在逻辑上RA和CA是一个整体,主要负责提供证书注册、审核以及发证功能
◆数字证书
◆数字证书是一段电子数据,是经证书权威机构CA签名的包含拥有者身份信息和公开密钥的数据体。
◆数字证书和对公私钥相对应,而公钥以明文形式放到数字证书中,私钥则为拥有者所秘密掌握。
◆因为经过了证书权威机构CA的签名,确保了数字证书中信息的真实性,数字证书可以作为终端实体的身份证明。
◆在电子商务和网络信息交流中,数字证书常用来解决相互间的信任问题。可以说,数字证书类似于现实生活中的由国家公安部门发放的居民身份证。
数字证书格式
◆国际标准X.509定义一个规范的数字证书格式,是PKI技术体系中应用最广泛、也是最基础的一个国际标准。许多与PKI相关的协议标准(如PKIX、S/MIME、SSL、TLS、 Ipsec)等都是在X.509基础上发展起来的。
◆在X.509标准中,数字证书主要包括三部分内容证书体、签名算法类型以及CA签名数据
◆其中证书体包括以下内容:版本号( Version);序列号( Serialnumber);签名算法标识( Signature);签发者( Issuer);有效期( Validity);主体名( Subject)主体的公钥( Subjectpublickeyinfo);发行者唯一识别符( Issuer’ Unique Identifier);主体唯一识別符( Subject
nique Identifier);扩展域( Extensions)等。
◆数字证书的生命周期分为证书申请、证书生成、证书存储、证书发布、证书废止五个阶段。
◆证书申请:用户通过支持PK的应用程序(如Web浏测览器)向CA申请数字证书的过程,该过程从用户生成密钥对(公钥和私钥)时开始。
◆证书生成:一旦用户请求了证书,CA就根据其建立的认证策路验证用户信息。如果确定信息有效,则CA创建该证书。
◆证书存储:CA在生成用户证书之后,将通过安全的途径把证书发送给用户,或通知用户自行下载。数字证书将保存在用户计算机的安全空间里。为了防止证书的丢失或损坏,证书持有者应将证书导出并保存在安全的存储介质里,如软盘、智能卡。
◆数字证书生命周期
◆证书发布:CA在生成用户证书之后,会把用户的公钥发送到指定的任何资源库,如内部目录或公用服务器,レ方便人们获得或验证证书持有者的公钥
◆证书废止:当发出证书时,将根据分发策略为其配置特定的到期日。如果需要在该日期之前取消证书,则可以由CA将这一事实发布和分发到证书散销列表CRL中。CRL是由CA签名的一组电子文档,包括了被散销证书的唯一标识(证书序列号),CRL为应用程序和其它系统提供了一种检验证书有效性的方式。
数字证书分类
◆按照数字证书的拥有者来分,一般可以将数字证书分为:
◆人员证书
◆设备证书
◆机构证书等。
◆按照数字证书的用途来分,数字证书可分为
◆签名证书,签名证书主要用于对用户信息进行签名以保证信息的不可否认性。
◆加密证书,加密证书主要用于对用户传送信息进行加密,以保证信息的真实性和完整性。
◆证书权威机构CA
◆数字证书是各实体在网上进行信息交流及商务交易活动中的身份证明,具有惟一性和权威性。
◆证书权威机构CA专门负责数字证书的产生、发放和管理以保证数字证书的真实可靠。
◆CA是PKI的核心组成部分,PKI体系也往往称为PKI/CA体系
◆CA是证书认证服务系统的核心业务节点,主要功能包括:
◆证书的签发和管理:接受终端实体证书申请,验证审查身份,生成数字证书,并负责数字证书的分发、发布更新和撤销等功能
◆证书撤消列表的签发和管理:CA需发布和维护证书撤销列表( Certificate Revocation Lists,CRL),将已作废的证书作为“黑名单”,连同作废原因一起发布到CRL.
◆证书注册机构的设立、审核及管理:证书注册机构(Registration Authority,RA),也称证书审核注册中心,是受CA委派的、负责和终端实体交互的、接受数字证书申请并进行审核的功能系统,因此有时也称为用户注册系统
◆CA逻辑结构
◆为便于CA进行数字证书的申请、签发、发布、更新以及销等全生命过程的管理,CA内部各个系统在逻辑上可分为核心层、管理层和服务层三层

常用的PKI互操作模型
◆跨国、跨行业、跨地区间要开展安全电子业务,不同的PKI之间需要互联互通和相互信任
◆信任模型就是一个建立和管理信任关系的框架。
◆信任模型描述了如何建立不同认证机构之间的认证路径以及构建和寻找信任路径的规则。
信任相关基本概念
◆信任( Trust):在X.509的2000年版中对信任的定义为,一般说来,如果一个实体假定另一个实体会严格并准确地像它期望的那样行动,那么就称它信任那个实体。其中的实体是指在网络或分布式环境中具有独立决策和行动能力的终端、服务器或智能代理等。信任包含了双方的一种关系以及对该关系的期望。
◆信任域( Trust Domain):指一个组织内的实体在一组公共安全策略控制下所能信任的实体集合,简言之即信任的范围。公共安全策略是指系统颁发,管理和验证证书所依据的一系列规定、规则的集合。
◆信任锚( Trust Anchor):PKI体系中信任的起点。
信任相关基本概念
◆信任关系:在公钥基础设施中,当两个认证机构中的一方给对方的公钥或双方给互相的公钥颁发证书时,两者之间就建立了信任关系
◆信任路径( Trust Path):在一个实体需要确认另一个实体身份时,它先需要确定信任锚,再由信任锚找出一条到达待确认买体的各个证书组成的路径,该路径称为信任路径,通常也称信任链。实体之间的信任通过信任路径传递。
◆目前常用的PKI互操作模型主要有以下几种结构
◆严格层次结构模型
◆网状信任结构模型
◆桥信任结构模型
◆混合信仼结构模型
◆Web模型和以用户为中心的信任模型。
◆严格层次结构模型
严格层次结构模型是一种集中式的信任模型,又称树模型戓层次模型。认证机构的严格层次结构模型是一颗树,它比较适合具有层次结构的机构,如军队、垂直性行业、学校等
◆在严格层次结构模型中,多级CA和最终用户构成颗倒转的树。

◆网状结构模型
◆网状结构模型,也称分布式信任模型。与严格层次结构相反,网状信任结构把信任分散到两个或更多个CA上。在该结构中,每个终端实体都信任其证书签发CA,而CA之间如
果信任,则以点对点的方式也签发证书来表示。
◆网状信任结构模型的优点是结构灵活,扩展容易,适合动态变化的组织机构,单CA安全性的削弱不会影响到整个PKI域的运行
◆缺点主要是:证书路径的扩展与层次结构比较复杂,选择证书路径比较困难。

◆桥信任结构模型
◆桥信任结构模型也称中心辐射式信任模型。每个根CA都与单一的用作相互连接的处于中心地位的CA进行相互交叉认证,处于中心地位的CA称为桥CA。任何结构类型的PKI都可以通过桥CA连接在一起,实现相互信任,每个单独的信任域可通过桥CA扩展到多个CA之间。

◆混合结构模型
◆由实际网络结构的复杂性決定了单一的某一类信任模型不能满足现实需要,通常采取混合信任模型来解决。
◆将严格层次结构信任模型和网状信任模型结合起来,就是混合信任模型
PKI/CA技术典例应用

PKI应用及发展
◆PKI证书种类
◆属性证书
◆漫游证书
◆无线PKI(WPK1)
总结
◆密码学基本概念
◆密码学对信息安全的作用
◆对称密码算法
◆非对称密码算法
◆哈希函数
◆消息鉴别
◆数字签名
◆PKI

以上是关于密码学基础的主要内容,如果未能解决你的问题,请参考以下文章

21个常用代码片段

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

PHP 代码片段

201555332盛照宗—网络对抗实验1—逆向与bof基础

VsCode 代码片段-提升研发效率