reticulum_website/docs/crypto_zh-cn.html
2023-12-25 20:53:33 +01:00

36 lines
3.5 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html>
<head>
<link rel="stylesheet" href="css/water.css?v=6">
<meta charset="utf-8"/>
<title>Reticulum Network</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<p><center><div class="top_menu lang_menu"><a href="./crypto_de.html">Deutsch</a> | <a href="./crypto.html">English</a> | <a href="./crypto_pl.html">Polski</a> | <a href="./crypto_pt-br.html">Português</a> | <a href="./crypto_tr.html">Türkçe</a> | <a href="./crypto_jp.html">日本語</a> | <a href="./crypto_zh-cn.html">简体中文</a></div><div class="top_menu"><a href="index_zh-cn.html">Reticulum</a> | <a href="start_zh-cn.html">开始使用</a> | <a href="hardware_zh-cn.html">硬件要求</a> | <a href="connect_zh-cn.html">测试网络</a> | <a href="docs_zh-cn.html">阅读手册</a> | <a href="crypto_zh-cn.html">密码学</a> | <a href="credits_zh-cn.html">致谢</a> | <a href="https://github.com/markqvist/reticulum">源代码</a> | <a href="donate_zh-cn.html">支持开发</a></div></center></p>
<h1>密码学原语Cryptographic Primitives</h1>
<p>Reticulum 使用了一系列高效、健壮、现代的密码学原语cryptographic primitives。它们都有着被广泛使用的现成的实现在一般的 CPU 或是微控制器上都可以运行。这些必要的原语是:</p>
<ul>
<li>Ed25519 用于签名</li>
<li>X22519 用于 ECDH 密钥交换</li>
<li>HKDF 用于密钥派生</li>
<li>AES-128 CBC 模式</li>
<li>HMAC-SHA256 用于消息认证</li>
<li>SHA-256</li>
<li>SHA-512</li>
</ul>
<p>在默认安装下,<code>X25519</code><code>Ed25519</code><code>AES-128-CBC</code> 都由 <a href="https://www.openssl.org/">OpenSSL</a> 提供(通过<a href="https://github.com/pyca/cryptography">PyCA/cryptography</a>)。散列函数 <code>SHA-256</code><code>SHA-512</code> 由 Python 标准库 <a href="https://docs.python.org/3/library/hashlib.html">hashlib</a> 提供。<code>HKDF</code><code>HMAC</code><code>Fernet</code> 原语与 <code>PKCS7</code> 填充函数总是由以下内部实现提供:</p>
<ul>
<li><a href="https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/HKDF.py">HKDF.py</a></li>
<li><a href="https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/HMAC.py">HMAC.py</a></li>
<li><a href="https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/Fernet.py">Fernet.py</a></li>
<li><a href="https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/PKCS7.py">PKCS7.py</a></li>
</ul>
<p>Reticulum 还包含了所有所需密码学原语的纯 Python 实现。如果 OpenSSL 和 PyCA 在系统上不可用的话Reticulum 会使用自带的纯Python实现。这时最明显的影响是速度——OpenSSL作为后端会<em>快的多</em>。然而最严重的影响,则可能是使用这些没有经受过与 OpenSSL 同级别安全审查、测试与评估的实现所带来的安全性问题。</p>
<p>如果你想使用自带的纯 Python 实现,我非常建议你充分了解可能的风险,并仔细思考这些风险是否适用在你身上。</p>
<p>Reticulum 目前还十分年轻,这一点必须牢记于心。虽说在构建时,开发者尽量遵守了密码学的最佳实践,但它<em>还没有</em>受过外部的安全审计,而且很可能会有破坏隐私或是安全性的 Bug。如果你愿意帮忙或是愿意赞助进行安全审计请联系开发者。</p>
<p align="right"><a href="credits_zh-cn.html">下一个主题: 致谢与署名</a></p>
</body>
</html>