当前位置:网站首页>密码学笔记
密码学笔记
2022-06-28 05:28:00 【简,】
目录
对称密码算法(Symmetric-key Algorithm)
非对称密码算法(Asymmetric-key Algorithm)
基本定义:
密码学不仅仅研究加密解密的数学算法。更多的时候,密码学研究保护信息安全的策略,我们可以称之为“协议”。在已有的数学模型基础上,我们往往忽略具体的数学实现方法,转而专注地研究借助这些数学工具能够构建的安全措施。
只要破译者无法在他能承受的成本(时间,人力或者其他资源)下完成破译,我们就可以认为这个密码很安全
密码的评估标准:
1.安全性:实际安全,随机性,可靠性,其他安全因素
2.成本:专利要求,计算效率,存储空间效率
3.算法和执行特性:灵活性,简洁性
正文:
密码算法主要分为三类:对称密码算法、 非对称密码算法、摘要算法。
对称密码算法(Symmetric-key Algorithm)
对称算法 是指加密秘钥和解密秘钥相同的密码算法,又称为 秘密秘钥算法 或 单密钥算法 。
该算法又分为 分组密码算法(Block cipher) 和 流密码算法(Stream cipher) 。
- 分组密码算法
- 又称块加密算法
- 加密步骤一:将明文拆分为 N 个固定长度的明文块
- 加密步骤二:用相同的秘钥和算法对每个明文块加密得到 N 个等长的密文块
- 加密步骤三:然后将 N 个密文块按照顺序组合起来得到密文
- 流密码算法
- 又称序列密码算法
- 每次只加密\解密一位或一字节明文
在单钥加密的情况下,密钥只有一把,所以密钥的保存变得很重要。一旦密钥泄漏,密码也就被破解。
非对称密码算法(Asymmetric-key Algorithm)
非对称算法 是指加密秘钥和解密秘钥不同的密码算法,又称为 公开密码算法 或 公钥算法,该算法使用一个秘钥(公开的)进行加密,用另外一个秘钥进行(不公开的)解密。
双钥加密的原理如下:
a) 公钥和私钥是一一对应的关系,有一把公钥就必然有一把与之对应的、独一无二的私钥,反之亦成立。
b) 所有的(公钥, 私钥)对都是不同的。
c) 用公钥可以解开私钥加密的信息,反之亦成立,即,公钥用来加密信息,私钥用来数字签名。
d) 同时生成公钥和私钥应该相对比较容易,但是从公钥推算出私钥,应该是很困难或者是不可能的。
因为任何人都可以生成自己的(公钥,私钥)对,所以为了防止有人散布伪造的公钥骗取信任,就需要一个可靠的第三方机构来生成经过认证的(公钥,私钥)对。目前,世界上最主要的数字服务认证商是位于美国加州的Verisign公司,它的主要业务就是分发RSA数字证书。
目前,通用的单钥加密算法为AES,通用的双钥加密算法为RSA,都产生于上个世纪70年代。
摘要算法(Digest Algorithm)
摘要算法 它把数据压缩成摘要,使得数据变小,将数据点格式固定下来(任意长的数据经过哈希算法,都会输出一段固定长度的数据,称为“哈希值”)又称为 散列函数 、 哈希函数 、 杂凑函数 、单向函数 等。
摘要算法所产生的固定长度的输出数据称为 摘要值 、 散列值 或 哈希值 ,摘要算法无秘钥。
摘要算法 通常用来做数据完整性的判定,即对数据进行哈希计算然后比较 摘要值 是否一致。
摘要算法主要分为三大类:MD(Message Digest,消息摘要算法)、SHA-1(Secure Hash Algorithm,安全散列算法)和 MAC(Message Authentication Code,消息认证码算法);另国密标准 SM3 也属于摘要算法。
原文有一丁点修改,摘要都截然不同。
结语:
我们已经讲解过经典的RSA非对称密码算法和SHA256摘要算法,以后会单独出一篇文章讲解AES对称密码算法。
在我看来,密码学真正有意思的地方在于:我们想在网络上保护自己的隐私。千百年来,人们一直在尝试,探索,但过去的技术还不能实现高度隐私,而电子技术却有望其成为现实。它让一切古典密码都黯然失色(20世纪后期,如凯撒,维吉尼亚,ENIGMA)。但同时,它也将落于纸笔和思维游戏的密码,借着机器上升至人力无法驾驭的程度。让一切想窥探人们隐私的坏家伙望尘莫及
将信任置于日光之下,将秘密藏于共识之中。
边栏推荐
- Qcom LCD commissioning
- Programmer - Shepherd
- Wireless sensor network learning notes (I)
- Rxswift -- (1) create a project
- Study on modified triphosphate: lumiprobe amino-11-ddutp
- Store inventory management system source code
- Carboxylic acid study: lumiprobe sulfoacyanine 7 dicarboxylic acid
- Biovendor sRAGE antibody solution
- 如何做好水库大坝安全监测工作
- Zzuli:1071 decomposing prime factor
猜你喜欢

How does the power outlet transmit electricity? Simple problems that have plagued my little friend for so many years

Blog login box

Jdbc的使用

MySQL export database dictionary to excel file

Linked list in JS (including leetcode examples) < continuous update ~>

mysql导出数据库字典成excel文件

How to design an awesome high concurrency architecture from scratch (recommended Collection)

MySQL 45讲 | 05 深入浅出索引(下)

Wedding studio portal applet based on wechat applet

解决ValueError: Iterable over raw text documents expected, string object received.
随机推荐
Online yaml to JSON tool
Enum
Wireless sensor network learning notes (I)
codeforces每日5题(均1700)
Leetcode 88: merge two ordered arrays
[skywalking] learn distributed link tracking skywalking at one go
How to do a good job of gateway high availability protection in the big promotion scenario
Object detection with OpenCV
Keil C51的Data Overlaying机制导致的函数重入问题
When using the MessageBox of class toplevel, a problem pops up in the window.
CpG solid support research: lumiprobe general CpG type II
WordPress zibll sub theme 6.4.1 happy version is free of authorization
Codeworks 5 questions per day (1700 for each)
Yin Yang master page
What are functions in C language? What is the difference between functions in programming and functions in mathematics? Understanding functions in programming languages
Concurrent wait/notify description
Hundreds of lines of code to implement a script interpreter
MySQL export database dictionary to excel file
Gorm transaction experience
How does the power outlet transmit electricity? Simple problems that have plagued my little friend for so many years