<commit_before>---
layout: default
---

# 密码
2017.05.11

## 杂凑函数
* [SHA2]
  + SHA256: 摘要长度为256比特
  + SHA512: 摘要长度为512比特
  + SHA2算法中一些常数的选择是通过素数平方根的小数部分得到的，突然想到QQ号码生成的随机性

## 流密码
* [salsa20]

## 消息认证码
* [Poly1305], [rfc7539]

## 密码套件
* HMAC-SHA512
* AES256-GCM
* ChaCha20-Poly1305
* ChaCha20-Poly1305-IETF
* XChaCha20-Poly1305-IETF
* Key exchange: X25519
* Signle-part Signature: Ed25519
* Multi-part Signature: Ed25519ph
* Short message hash: SipHash-2-4

[SHA2]:<https://en.wikipedia.org/wiki/SHA-2>
[salsa20]:<https://en.wikipedia.org/wiki/Salsa20>
[Poly1305]:<https://en.wikipedia.org/wiki/Poly1305>
[rfc7539]:<https://tools.ietf.org/html/rfc7539>
<commit_msg>add some cipher suite<commit_after>---
layout: default
---

# 密码
2017.05.11

## 分组密码

## 流密码
* [salsa20]

## 密码杂凑函数
* [SHA2]
  + SHA256: 摘要长度为256比特
  + SHA512: 摘要长度为512比特
  + SHA2算法中一些常数的选择是通过素数平方根的小数部分得到的，突然想到QQ号码生成的随机性

## 消息认证码
* [Poly1305], [rfc7539]

## 认证加密

## 公钥密码算法

## 密码套件

密码套件通常包括：协议名称，秘钥交换算算法，身份认证算法，加密算法，加密模式，密码杂凑函数。常见的密码算法套件包括但不限于：

* TLS_RSA_WITH_AES_128_CBC_SHA
* TLS_RSA_WITH_AES_128_CBC_SHA256
* TLS_ECDH_ECDSA_WITH_RC4_128_SHA
* TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
* TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
* TLS_DH_RSA_WITH_AES_128_GCM_SHA256
* TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
* TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA

[SHA2]:<https://en.wikipedia.org/wiki/SHA-2>
[salsa20]:<https://en.wikipedia.org/wiki/Salsa20>
[Poly1305]:<https://en.wikipedia.org/wiki/Poly1305>
[rfc7539]:<https://tools.ietf.org/html/rfc7539>

{'fraction_non_alphanumeric': 0.14809873248832556, 'fraction_numerical': 0.12408272181454302, 'mean_word_length': 5.578947368421052, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3164269', 'n_tokens_mistral': 996, 'n_tokens_neox': 909, 'n_words': 77}