Skip to content

Commit

Permalink
add mpc
Browse files Browse the repository at this point in the history
  • Loading branch information
xilibi2003 committed Aug 16, 2024
1 parent 5e75430 commit e0c2e1c
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 47 deletions.
File renamed without changes.
19 changes: 19 additions & 0 deletions basic/密码学/MPC.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## MPC

MPC( Multi-Party Computation ): 多方计算是一种密码学技术,允许多个参与方在不暴露各自私有数据的前提下,协同计算某个函数的结果。MPC 在隐私保护、分布式系统和安全计算领域有广泛的应用,它能够在不信任的环境中实现安全的协作计算。



MPC 系统中有多个参与方(Party),每个参与方都持有自己的私有数据。参与方之间可以通过安全协议进行通信和计算,但不会直接共享各自的私有数据。MPC 的目标是计算一个公共函数的输出值,该函数接受所有参与方的私有输入数据并产生一个结果。



MPC 的安全性体现在几个方面:

- **保密性**:参与方的数据在计算过程中是保密的,其他参与方无法知道这个数据的具体内容。
- **正确性**:所有参与方都可以确信计算结果是正确的,即便有部分参与方试图作恶。
- **鲁棒性**:即便有部分参与方出现故障或恶意行为,计算过程仍能正确进行。




117 changes: 70 additions & 47 deletions basic/密码学/密码学.md
Original file line number Diff line number Diff line change
@@ -1,72 +1,95 @@
# 什么是密码学
## 密码学

密码学是研究保护信息的安全性、隐私性和完整性的学科,它涉及设计和分析各种加密算法和协议,以及研究各种攻击手段和防御策略。密码学在计算机科学、信息安全、通信领域等有着广泛的应用,旨在确保数据在传输、存储和处理过程中的机密性和可信性
密码学是一门研究保护信息的安全性、隐私性和完整性学科的,通过各种数学算法和协议来加密和解密信息,以确保信息的机密性、完整性、真实性和不可否认性。密码学在现代计算机科学、通信、网络安全和区块链等领域中发挥着至关重要的作用

# 密码学的主要目标包括:
### 密码学主要目标

## 1. **机密性(Confidentiality)**
确保数据在传输和存储过程中不被未授权的人访问或泄露。加密技术是实现机密性的重要手段,通过将数据转化为不易理解的形式,只有持有解密密钥的人可以还原原始数据。
1. **机密性(Confidentiality)**:确保信息在传输或存储过程中不被未授权的第三方访问。加密技术通过将明文转换为密文,保护数据的机密性。
2. **完整性(Integrity)**:确保信息在传输或存储过程中不被篡改或损坏。哈希函数和消息认证码(MAC)等技术用于验证数据的完整性。
3. **真实性(Authentication)**:验证信息的来源,确保通信的双方是合法的。数字签名和公钥基础设施(PKI)等技术用于验证身份的真实性。
4. **不可否认性(Non-repudiation)**:确保信息的发送者无法否认曾经发送过的信息。数字签名技术可以确保发送者不能否认其签署的消息。

## 2. **完整性(Integrity)**
确保数据在传输和存储过程中没有被篡改或损坏。加密哈希和数字签名等技术可以验证数据的完整性,即使数据在传输过程中被篡改,也能够被识别出来。

## 3. **身份验证(Authentication)**
确保通信的双方是合法的,即确保发送者和接收者的身份是可信的。密码学技术如数字签名、身份认证协议等可以实现身份验证。

## 4. **不可抵赖性(Non-Repudiation)**
确保发送者不能否认其发送的信息,同时接收者也不能否认其接收到的信息。数字签名技术用于实现不可抵赖性,可以证明信息的发送和接收。
### 主要分类

密码学涉及的主要概念和技术包括:
密码学可以分为对称密码学、非对称密码学、哈希函数和量子密码学等几大类。

## - **对称加密(Symmetric Encryption)**
使用相同的密钥进行加密和解密,适用于保护数据的机密性。
#### 1. 对称密码学(Symmetric Cryptography)

## - **非对称加密(Asymmetric Encryption)**
使用一对密钥,即公钥和私钥,公钥用于加密,私钥用于解密,适用于加密通信和数字签名。
对称密码学使用相同的密钥进行加密和解密。由于加密和解密过程使用同一个密钥,因此密钥的安全性非常重要。

## - **哈希函数(Hash Functions)**
将任意长度的数据转换成固定长度的哈希值,用于验证数据的完整性和生成数字指纹。
- **常见算法**
- **DES(数据加密标准)**:一种早期的对称加密算法,已被更安全的算法所取代。
- **AES(高级加密标准)**:目前最广泛使用的对称加密算法,被认为非常安全。
- **应用场景**:对称密码学广泛应用于数据加密、文件加密和安全通信中。

## - **数字签名(Digital Signatures)**
使用私钥对数据进行加密以生成签名,用于验证数据的来源和完整性。
#### 2. 非对称密码学(Asymmetric Cryptography)

## - **零知识证明(Zero-Knowledge Proofs)**
证明某个陈述的真实性,而不泄露具体信息,用于保护隐私。
非对称密码学使用成对的密钥:一个公钥和一个私钥。公钥用于加密,私钥用于解密。由于公钥可以公开,非对称密码学不需要像对称密码学那样在通信双方之间共享一个秘密密钥。

## - **加密协议(Cryptographic Protocols)**
一系列的通信规则和步骤,用于在不安全的通信环境中实现机密性和安全性。
- **常见算法**
- **[RSA](https://learnblockchain.cn/tags/RSA算法)**:一种基于大素数分解的非对称加密算法,广泛用于数字签名和加密。
- **ECC(椭圆曲线密码学)**:一种基于椭圆曲线数学的非对称加密算法,提供更高的安全性和效率。
- **应用场景**:非对称密码学广泛应用于数字签名、密钥交换和 SSL/TLS 协议中。

## - **分布式密钥生成(Distributed Key Generation,DKG)**
在多方参与的系统中,DKG允许生成密钥而不需要暴露私钥。
#### 3. 哈希函数(Hash Functions)

哈希函数将任意长度的输入数据转换为固定长度的输出(哈希值)。哈希函数具有以下几个重要特性:输入相同输出一定相同,输入不同输出几乎一定不同;哈希值的生成是不可逆的。

# 区块链密码学
- **常见算法**
- **SHA-256(安全哈希算法)**:一种常用的加密哈希函数,广泛应用于区块链和数字签名中。
- **MD5**:一种早期的哈希函数,现已被认为不够安全,逐渐被淘汰。
- **应用场景**:哈希函数用于数据完整性校验、数字签名、密码存储和区块链中的共识算法。

>区块链涉及的密码学是确保数据的安全性、隐私性和不可篡改性的关键部分。以下是区块链涉及的一些主要密码学概念和技术:
#### 4. 量子密码学(Quantum Cryptography)

## 1. **哈希函数(Hash Functions)**
哈希函数是将任意长度的输入数据转换为固定长度的输出(哈希值)的函数。在区块链中,哈希函数用于创建区块的标识符,确保区块数据的完整性,一旦数据发生变化,哈希值也会随之改变。
量子密码学利用量子力学的特性来实现信息的安全传输。它基于量子态的不可克隆性和测量不可逆性,提供理论上不可破译的加密方式。

## 2. **非对称加密(Asymmetric Encryption**
非对称加密使用一对密钥,即公钥和私钥。公钥用于加密信息,而私钥用于解密。在区块链中,非对称加密常用于数字签名和身份验证
- **量子密钥分发(QKD**一种通过量子通信实现密钥分发的技术,被认为是绝对安全的。
- **应用场景**:量子密码学主要用于高安全性要求的通信系统中,如军事、政府和金融领域

## 3. **数字签名(Digital Signatures)**
数字签名是通过使用私钥来对信息进行加密,以确保信息的来源和完整性。在区块链中,数字签名用于验证交易的发起者,并确保交易在传输过程中没有被篡改。

## 4. **零知识证明(Zero-Knowledge Proofs)**
零知识证明允许一方向另一方证明某个陈述的真实性,而不需要透露具体信息。这在保护隐私和进行身份验证时非常有用。

## 5. **环签名(Ring Signatures)**
环签名允许在一组成员中选择一个作为签名者,而外部人员无法确定是哪个成员签名的。这在保护隐私时非常有用,例如加密货币交易中的交易者匿名性。
### 密码学发展趋势

## 6. **多重签名(Multisignature)**
多重签名要求多个私钥共同才能签署一个交易,这增加了交易的安全性,防止单一私钥的泄露导致资金丢失。
随着计算能力的提升和攻击技术的进步,传统的密码学方法面临越来越大的挑战, 当前密码学有 3 个发展趋势:

## 7. **分布式密钥生成(Distributed Key Generation,DKG)**
在多方参与的系统中,DKG允许参与者合作生成一个公私钥对,而不需要暴露私钥。这在去中心化的系统中非常有用。
1. **后量子密码学**:量子计算的出现可能威胁到现有的非对称加密算法,因此后量子密码学正在开发能够抵抗量子计算攻击的加密方法。

2. **隐私保护技术**:在大数据和人工智能的发展背景下,密码学正在朝着增强隐私保护的方向发展,例如[零知识证明](https://learnblockchain.cn/tags/零知识证明)[多方计算(MPC)](https://learnblockchain.cn/tags/MPC)[全同态加密(FHE)](https://learnblockchain.cn/tags/FHE)等技术。

3. **更高效的加密算法**:随着物联网设备的普及,更轻量级、更高效的加密算法正在被开发,以适应低功耗、低计算能力的设备需求。











### 区块链密码学

区块链涉及的密码学是确保数据的安全性、隐私性和不可篡改性的关键部分。以下是区块链涉及的一些主要密码学概念和技术:

1. **哈希函数(Hash Functions)**:哈希函数是将任意长度的输入数据转换为固定长度的输出(哈希值)的函数。在区块链中,哈希函数用于创建区块的标识符,确保区块数据的完整性,一旦数据发生变化,哈希值也会随之改变。

2. **非对称加密(Asymmetric Encryption)**:非对称加密使用一对密钥,即公钥和私钥。公钥用于加密信息,而私钥用于解密。在区块链中,非对称加密常用于数字签名和身份验证。

3. **数字签名(Digital Signatures)**:数字签名是通过使用私钥来对信息进行签名,以确保信息的来源和完整性。在区块链中,数字签名用于验证交易的发起者,并确保交易在传输过程中没有被篡改。

4. **零知识证明(Zero-Knowledge Proofs)**:零知识证明允许一方向另一方证明某个陈述的真实性,而不需要透露具体信息。这在保护隐私和进行身份验证时非常有用。

5. **环签名(Ring Signatures)**:环签名允许在一组成员中选择一个作为签名者,而外部人员无法确定是哪个成员签名的。这在保护隐私时非常有用,例如加密货币交易中的交易者匿名性。

6. **多重签名(Multisignature)**:多重签名要求多个私钥共同才能签署一个交易,这增加了交易的安全性,防止单一私钥的泄露导致资金丢失。

7. **分布式密钥生成(Distributed Key Generation,DKG)**:在多方参与的系统中,DKG允许参与者合作生成一个公私钥对,而不需要暴露私钥。这在去中心化的系统中非常有用。

8. **同态加密(Homomorphic Encryption)**:同态加密允许在加密状态下对数据进行计算,而不需要解密数据。这在保护隐私的同时进行计算非常有用。

9. **椭圆曲线算法(Elliptic Curve Cryptography,ECC)**:是一种现代密码学中常用的非对称加密技术,广泛应用于保护通信安全、数字签名、加密货币等领域。它基于椭圆曲线的数学性质,提供了与传统加密算法相比更高的安全性和效率。

## 8. **同态加密(Homomorphic Encryption)**
同态加密允许在加密状态下对数据进行计算,而不需要解密数据。这在保护隐私的同时进行计算非常有用。
## 9.椭圆曲线算法(Elliptic Curve Cryptography,ECC):
是一种现代密码学中常用的非对称加密技术,广泛应用于保护通信安全、数字签名、加密货币等领域。它基于椭圆曲线的数学性质,提供了与传统加密算法相比更高的安全性和效率。
>这些密码学技术在区块链中扮演着至关重要的角色,确保数据的安全、隐私和不可篡改性。

0 comments on commit e0c2e1c

Please sign in to comment.