freeCodeCamp/guide/chinese/security/cryptography/index.md

59 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Cryptography
localeTitle: 加密
---
## 加密
密码学的基本目标是使两个人能够通过不安全的渠道进行交流,使得第三个人无法理解所说的内容。该频道可以是电话线或计算机网络。
密码学开始被罗马人使用,以便在战斗中使消息不被敌人解读。
现代之前的密码学实际上是加密的同义词,信息从可读状态转换为明显无意义。
现代密码术用于数据中,因此只有一方或仅授权的方可以访问信息。
多年来的加密变得更加先进。
### 例
Person1想要发送给Person2的信息我们称之为“明文”可以是文本数字数据或任何类型的数据。 Person1使用预定密钥加密明文并通过该信道发送得到的“密文”。 Person3在看到频道中的密文时无法确定明文是什么但是知道加密密钥的Person2可以解密密文并重建明文。
### 凯撒CypherShift Cypher
第一个已知的密码是Ceasar密码。 Ceasar cypher通过在字母表中向上或向下移动特定量的“明文”字母来工作。
从外部人的角度来看,消息似乎是随机字母,其间有空格。
### 现代密码学
现代加密使用几乎随机数和数学上合理的功能,以便进行安全通信。这些新开发的功能因其结构而不易被破解,甚至需要数百年的超级计算机才能破解。
现代加密有两种主要类型:
### 1对称或单密钥加密
对称密钥加密是一种加密方法,其中双方仅使用一个密钥进行加密和解密。由于它们的设计,这些算法通常比非对称或公钥加密快得多。
一些对称加密技术包括数据加密标准DES高级加密标准AESBlow FishTwo FishRC4。
### 2非对称或公钥加密
非对称加密算法为每个用户提供一对密钥:一个公钥和一个公钥。使用该对中的一个密钥加密的任何消息只能用另一个密钥解密。
一些非对称技术包括RSADiffie-HellmanDSS数字签名标准ElGamal。
### 密码哈希
大多数加密散列函数被设计为将任意长度的字符串作为输入并产生固定长度的散列值。
加密哈希函数必须能够承受所有已知类型的密码分析攻击。
### 密码学哈希
加密散列函数是一种散列函数它也被设计为单向函数一种耗费太多时间和资源来暴力破解的函数。散列的主要目的是处理消息的intregrity因此相同的消息总是会产生相同的散列。
#### 更多信息:
* [密码学Douglas Stinson的理论与实践](https://www.crcpress.com/Cryptography-Theory-and-Practice-Third-Edition/Stinson/p/book/9781584885085)
* [关于加密的TechTarget](http://searchsecurity.techtarget.com/definition/encryption)
* [密码学指南](https://www.tutorialspoint.com/cryptography/index.htm)