Skip to content

Latest commit

 

History

History
21 lines (14 loc) · 2.74 KB

README.md

File metadata and controls

21 lines (14 loc) · 2.74 KB

公共组件

公共组件包括联邦数据安全交换过程中使用到的基础性密码算法及安全协议。

1.同态加密

同态加密(homomorphic encryption: HE)提供了在不泄漏原始数据内容的情况下,可以对加密数据进行处理的功能。同态加密根据加密算法不同可以分为加法同态(只支持加减运算),乘法同态(只支持乘除法运算)以及全同态加密(支持加减乘除,指数,对数等运算)。目前FLEX协议中支持Paillier半同态算法。

2.密钥交换协议

FLEX协议中采用了Diffie–Hellman密钥交换协议,其安全性是依赖于计算离散对数的困难程度。在FLEX协议中我们提供了2048、3072、4096、6144、8192位五种大素数的长度。通常位数越大安全性越高,但是计算时间越长。

3.安全伪随机数生成

联邦数据交换过程中经常需要生成随机数和伪随机数。随机数可以通过系统提供的真随机数生成函数成。但是安全的伪随机数生成算法是除了满足统计学伪随机性外,还需要满足密码学安全伪随机性。安全伪随机数生成器(pseudo-random number generator: PRNG)可以通过输入一个种子,生成密码学安全的伪随机数列。目前FLEX协议中采用NIST.SP.800-90标准中规定的四种安全伪随机数生成算法之一HMAC_DRBG。

4.一次一密

一次一密(one-time pad)是一种理想的加密方案,使用乱码本记录一个大的不重复的真随机密钥集。实际应用中,发送方会对所发消息加密,然后销毁乱码本中用过部分。接收方有一个同样的乱码本,并依次使用乱码本上的每个密钥去解密密文,接收方在解密消息后销毁乱码本中用过的部分。新的消息则用乱码本的新的密钥加解密。FLEX协议中先将待加密的数值转换为整数,然后与密钥相加或相减,解密时需要再将整数转换为浮点数。

5.格式保留加密

格式保留加密(format preserving encryption: FPE)是一种可以保证密文与明文具有相同的格式与长度的加密方式。FPE常用于数据去标识化或脱敏中,能保持明文和密文的格式相同。FLEX中的格式保留加密采用了NIST.SP.800-38G标准中的AES-FF1算法。

6.不经意传输

不经意传输(oblivious transfer: OT)协议,是一种可保护隐私的双方通信协议,能使通信双方以一种选择模糊化的方式传输消息。执行协议后,接收方只能得到他想要得到的其中一条或多条消息。在整个过程中,发送方不能控制接收方的选择,发送方不知道接收方得到了哪几条消息,接收方也不能得到除了选择之外的其它消息。FLEX中的匿踪查询使用了1-n的OT协议。