资讯专栏INFORMATION COLUMN

密码学的术语、分类和体制(笔记)

int64 / 3898人阅读

摘要:一密码学的术语分类术语密码体制明文空间密文空间密钥空间加密算法和解密算法五部分构成。柯克霍夫原则是现代密码学设计的基本原则。特性散列函数特性消息的长度不受限制。

一、密码学的术语、分类 1、术语
   密码体制:明文空间、密文空间、密钥空间、加密算法和解密算法五部分构成。
   
   密码协议:有时称为安全协议,指以密码学为基础的消息交换的通信协议,目的是在网络环境
   中提供各种安全服务,密码协议和密码算法同等重要,是密码学研究的两大课题。
   
   密码系统:用于加密解密的系统,加密时,通过输入明文和密钥,加密后输出密文;解密时,通
   过输入密文和解密密钥,输出明文。一个密码系统,由信源、加密变换、解密变换、信宿和攻击
   者组构成。
   
   柯克霍夫原则:数据的安全基于密钥而不是算法的保密。系统的安全信,取决于密钥,对密钥保
   密,对算法公开。柯克霍夫原则是现代密码学设计的基本原则。
2、分类
   2.1、按时间划分:
        古典密码、现代密码;古典密码以字符为基本加密单元,现代密码:以信息块为基本加密单元。
        
   2.2、按密钥划分:
        受限制的算法、基于密钥的算法;
        受限制的算法:算法的保密性基于保持算法的秘密,一般不建议;
        基于密钥的算法:算法的保密基于密钥的保密,正是现代密码学的主要特征。
        
   2.3、按密码体制划分:
        对称密码体制、非对称密码体制;
        对称密码体制:加密与解密密钥相同,
        非对称密码体制:加密密钥和解密密钥不同,密钥分为公钥与私钥,公钥对外公开,
                     私钥对外保密。
        
   2.4、按明文的处理方法划分:
        分组密码、流密码;
        分组密码:用同一密钥算法对每一块加密,输出的也是固定长度的密文,多用于网络加密。
        流密码:又称序列密码,加密时每次加密一位或一个字节的明文,一般在手机系统中使用,
        比较著名的流密码有RC4.


二、散列函数 1、概念
   在对称密码体制中,以流密码实现的方式,需要验证信息的完整性,这种技术
   就是散列函数提供的消息认证技术。
2、作用
   散列函数主要作用不是完成数据的加密和解密的,只用来验证数据的完整性,
   通过给数据创建“数字指纹”(散列值)如果消息在传递过程中被篡改,则该消息不能与
   获得的数字指纹匹配。
3、特性:散列函数特性
   1、消息的长度不受限制。
   2、对于给定的消息,其散列值计算是很容易的。
   3、如果两个散列值不相同,则这两个散列值的原始消息也不同,这个特性使得散列函数有确定性的结果。
   4、散列函数的运算过程是不可逆的,这个特性称为函数的单向性。
   5、对于一个已知的消息及其散列值,要找到另一个消息使其获得相同的散列值是不可能的,这种特性称为抗弱碰撞性,防止信息被伪造。
   6、任意两个不同消息的散列值一定不同,这个特性称为抗强碰撞性。
4、应用
   散列函数广泛用于信息完整性的验证,是数据签名的核心技术,散列函数的常用算法有MD(消息摘要算法)
  、 SHA(安全散列算法)、以及Mac(消息认证码算法)
三、数字签名 1、概念
   通过散列函数可以保证数据内容的完整性,但这远远不够,此外还需要保证数据来源的可认证性和数据发送行为的不可否认性。
   完整性、可认证性和不可否认性正是数字签名的主要特征。
   数字签名离不开非对称密码体制,签名算法受私钥控制,且由签名者保密;
   验证算法受公钥控制,且对外公开。
2、数字签名满足以下三个条件
       1、签名者任何时候都无法否认自己曾经签发的数字签名
       2、信息接收者能够验证和确认收到的数字签名,但任何人无法伪造信息发送者的数字签名
       3、当收发双方对数字签名的真伪产生争议时,通过仲裁机构(可信赖的第三方)进行仲裁。
   
3、数字签名规范
       私钥用于签名,公钥用于验证,私钥和公钥成对出现,公钥加密的消息只能用私钥来解,
       私钥加密的消息只能由公钥来解。
4、单向认证和双向认证
   1、单向认证:由于算法、密钥公开,任何一个已获得公钥的窃听者都可以截获到乙方发送的消息,
     替换成自己的消息发送给甲方,而甲方无法辨别消息是否来自乙方。这种认证方式属于单向认证。
    
   2、双向认证:如果有两套公私钥,甲乙双方都对数据进行签名及验证就可以避免这一问题,这种
     认证方式属于双向认证。
四、PKI加密和签名 1、签名
使用私钥加密,公钥解密
2、加密
用公钥加密,私钥解密
3、使用情景
如果A想给B发一个安全的保密的数据,那么应该AB各自有一个私钥,
A先用B的公钥加密这段数据,再用自己的私钥加密这段加密后的数据。
最后再发给B,这样确保了内容即不会被读取,也不会被篡改。

加解密过程:
1. A用B的公钥加密数据  --加密
2. A用自己的私钥加密这段加密后的数据  --签名
3. B用A的公钥解密  --验证签名
4. B用自己的私钥解密数据  --解密

五、公钥基础设施和密码学的未来 1、概念
公钥基础设施(Public Key Infrastructure,PKI)是一个基于X.509的、用于创建、分配和撤回证书的模型。
PKI能为所有网络应用提供加密和数字签名服务。
PKI由公钥密码技术、数字证书、证书认证中心和关于公钥的安全策略等基本成分共同组成,对密钥和证书进行管理。
2、PKI的标准
RSA公司定义了PKCS(Public Key Cryptography Standard,公钥加密标准),并定义了许多
加密组件,如数字签名和证书请求格式:IETF(Internet Engineering Task Force,互联网
工程任务组)和PKIWG(Public KeyInfrastructure Working Group)PKI工作组,PKCS共
有15项标准。

比较常用的标准:
PKICS#7:加密消息语法标准
PKICS#10:证书请求语法
PKICS#12:个人信息交换语法标准
3、PKI系统的组成
PKI系统由认证中心(Certifiate Authority,CA)、数字证书库(Certificate 
Respository,CR)、密钥备份及恢复系统、证书作废系统、应用程序接口五部分组成。
认证中心CA和数字证书库CR是PKI技术的核心。
1、认证中心CA功能:
    证书发放、证书更新、证书撤销、证书验证
2、数字证书库CR功能:
    存储已签发的数字证书及公钥、包括LDAP(Light Direct Access Protocol轻量级目录访
    问协议)目录服务器和数据库。
4、数字证书 1、概念
   数字证书是网络用户身份的标识,包括ID、公钥和颁发机构的数字签名等内容。其形式主要有X.509公钥证书、SPKI(Simple
   Public Key Infrastructure,简单PKI)证书、PGP(Pretty Good Privacy)证书和属性(Attribute)证书。
   其中X.509证书最为常见,通常所说的数字证书就是指X.509公钥证书。
   
2、PGP、OpenPGP与GPG
   PGP使得一般人可以很容易的对数据文件、邮件进行加密,其主要特点是在非安全的网络环境下,使得从未谋面的人取得信任。相比与PKI,
   PGP不需要HTTPS、也不需要CA,仅仅需要一个可信赖的密钥托管服务器。
   由于PGP的广泛应用,形成一个最终的开放标准-OpenPGP。
   GPG是实现了OpenPGP的免费开源程序。
   
3、X.509和PGP的区别
   X.509 依赖CA的信任链,即群签名,PGP不依赖于CA,依赖可信任的环签名。
   X.509主要应用于可信任的、安全的环境中,如电子商务平台等;PGP可用于不安全的网络环境中,如邮件等。
   PGP依赖于非公钥体制,即公钥对数据加密,私钥对数据解密。
   PKI是通过非公钥体制进行密钥交换,转而使用对称密钥完成加密操作。
   
4、密码学的未来
   1998年DES方式加密的密钥被破解。
   2004年破解了MD5、HAVAL-128、MD4和RIPEMD被山东大学王晓云教授团队破解,MD5的破解预示着SHA-1算法的末日。
   MD5和SHA-1的破解,动摇了目前数字签名的理论根基,从理论上说数字签名可以伪造。
   密码学在信息安全中越来越重要,已成为信息安全中不可或缺的一部分。密码学的发展以密码算法被破解而引发。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68666.html

相关文章

  • 慕课网_《Java实现Base64加密》学习总结

    摘要:时间年月日星期一说明本文部分内容均来自慕课网。多用于网络加密。散列函数函数或消息摘要函数主要作用散列函数用来验证数据的完整性。 时间:2017年4月10日星期一说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:https://github.com/zccodere/s...个人学习源码:https://github.com/zccodere...

    verano 评论0 收藏0
  • 码学入门(一):用Python实现对称加密算法

    0.前言 最开始只是想整理一下密码学课程的作业,后面越写越多,就索性写成一篇入门的介绍。我会把自己对对称加密的理解和一些作业的代码串起来,力图清晰明白地展示出来,文中所有代码都放在我的Github上,如果有错误之处还请轻拍。 文章地址:https://gooong.cn/post/crypto... 代码地址:https://github.com/Gooong/Cry... 1.对称密码基...

    henry14 评论0 收藏0
  • 软件测试学习笔记_第1周第5天——缺陷管理、术语

    摘要:通过验收后得到尾款。验收测试项目型软件交付之后,由甲方安排验收产品型软件由自己测试团队负责验收。使用频繁概要设计根据需求来设计软件的框架数据库完成软件体系架构,技术选型。 ...

    tuomao 评论0 收藏0
  • Base64 编码编程使用.md

    摘要:密码学综述密码的基本功能机密性鉴别报文完整性不可否认性基本模型算法分类消息编码消息摘要对称密码非对称密码密钥交换数字签名密码学五元组明文密文加密算法解密算法密钥。 密码学综述 密码的基本功能 机密性 鉴别 报文完整性 不可否认性 基本模型 showImg(https://segmentfault.com/img/bVT5um?w=882&h=307); 算法分类 消息编码:B...

    QLQ 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<