密码应用: 从安全通信到数据可用不可见*

2024-04-28 07:08张秉晟
密码学报 2024年1期
关键词:密码学关键字加密

任 奎, 张秉晟, 张 聪

浙江大学 网络空间安全学院, 杭州 310007

1 引言

在人类社会的演进过程中, 密码技术的应用历史悠久.早期的密码学技术作为一门艺术流传, 通过手工或简单机械的方式实现信息的替换和置换.在那个时代, 密码技术主要应用于军事领域, 以确保军事信息的安全传输.随着19 世纪中叶电磁波的发现和应用, 全球范围内的信息通讯得以实现, 信息传输的区域限制被打破.为了保障信息传输的安全, 密码技术不断演进发展, 并在第一、第二次世界大战时期取得了显著的应用.

20 世纪中叶起, 随着计算机、互联网等技术兴起, 相关技术的应用日益商业化和普及化, 并悄然改变了整个现代社会的生产和生活方式.这促使新的密码技术理念与方向产生, 包括香农(Shannon)[1]的信息论和Diffie-Hellman (DH)[2]、RSA[3]等公钥密码学的发展, 因此, 密码技术由一种传统的流传艺术蜕变为严谨的科学研究.密码技术的应用也不再局限于军事领域, 而是逐步扩展到商业领域, 并渗透到现代社会的各行各业.

90 年代中期, 互联网技术进入了全球普及阶段, 各地的互联网服务提供商(ISP) 开始提供互联网接入服务, 以确保更多人能够接入互联网.在那个时期, 电子邮件和网页浏览成为最重要的两项应用, 其面临的主要安全威胁是在网络环境下, 信息传输过程中可能被窃取、篡改或泄漏.

以AES[4]、RSA[3]等加密算法为代表的密码技术, 以及建立在其基础之上的TLS[5–8]、SSH[9]等安全协议, 已被集成到OpenSSL[10]、OpenSSH[11]等广泛部署的开源代码库中, 为网络环境下的信息传输提供了全面的安全保障.TLS、SSH 等协议使用对称加密、公钥加密等密码学技术在数据传输过程中建立安全的通信通道, 生成仅通信双方拥有的会话密钥, 并有效保护数据免受中间人攻击.这些密码学技术已广泛应用于各种信息传输应用领域, 包括但不限于电子邮件、实时聊天软件以及网页浏览等, 以维护数据的机密性、完整性和消息源的可认证性.

随着3G、4G、5G 等技术的广泛普及以及智能手机、平板电脑等移动终端的迅速发展, 移动互联网技术已成为信息技术时代的中流砥柱, 催生了移动社交、线上办公、移动支付等一系列新兴商业模式和产业, 深刻改变了人们的生活和工作方式.然而, 由于移动终端的计算和存储能力有限, 许多移动应用需要依赖云服务来提供基础设施和技术支持.云端服务可提供大容量存储空间, 并支持用户进行SQL 等快速查询服务.然而其同样面临着新的安全威胁, 如云端服务器被攻陷[12,13]导致的用户信息泄漏等.因此, 云服务器需要采用加密技术, 并确保在加密数据集上能够进行搜索操作, 以保障数据的隐私.

可搜索加密(searchable encryption) 是一种加密技术, 用户将加密后的数据存储到云端, 云端服务器在不知道密钥的情况下提供查询服务.该技术既保障了数据的安全性又实现了数据的可搜索性.目前,可搜索加密技术已在多个产品中得到大规模部署, 包括Dropbox、亚马逊云存储服务器(Amazon web services, AWS)、Google Drive、MEGA 等, 进一步支撑了移动互联网的发展.

区块链技术的出现, 为互联网带来了全新的发展模式.与客户端/服务器架构下的云存储场景不同, 区块链技术以P2P 架构为基础在网络中构建起去中心化的分布式账本.各节点共同存储数据的完整副本,打破了对单一中心化服务器的信任依赖, 有效避免单点失效、腐败等问题的发生.区块链利用密码学哈希函数、数字签名等技术, 实现了链上数据的完整性、有效性与不可篡改性.如今, 区块链已被广泛应用于金融交易、政务、供应链等领域, 并推动了Web3.0 生态的普及.然而, 由于数据的公开分布式存储, 导致其自身存储与计算能力有限, 同时任何链上用户都可以访问所有信息, 进而引发加密货币、电子投票等应用场景下的一系列隐私与应用局限性问题.因此, 在实际应用中需要采用新的隐私保护与扩容技术, 以维护用户隐私并提高链上可扩展性.

零知识证明(zero-knowledge proof) 是一种广泛应用的密码学领域隐私保护技术.它允许一个参与方(证明者) 向另一方(验证者) 证明某个陈述为真, 而无需透露陈述的具体内容, 确保用户数据的隐私性和安全性.目前, 零知识证明在区块链隐私交易货币、安全电子投票、Web3.0 下的分布式应用产品等方面广泛部署, 旨在提供加密货币的隐私性、电子投票过程的可验证性以及复杂分布式应用场景下的可扩展性.

随着移动互联网、物联网以及人工智能技术的迅速发展, 网络空间中的数据规模呈现几何级增长, 并表现出多样化、多源化、高速化、高价值等特征.通过对这些海量数据进行挖掘和分析, 政府可以实现对决策的精确把控, 企业可以实现对产品的精准推送.因此, 数据已成为我国第五大生产要素, 推动着社会的变革.在大数据时代, 网络空间面临着新的安全威胁, 即数据在收集、流通、计算过程中可能引发隐私泄漏问题.因此, 数据资产拥有者在数据出域时需要采用隐私计算技术, 以确保数据的全生命周期安全.

安全多方计算(secure multi-party computation) 是一种广泛应用的隐私计算技术, 允许多个参与方在不泄漏彼此数据的情况下进行计算和数据分析.目前, 多方安全计算中的隐私集合求交(private set intersection) 与隐私信息检索(private information retrieval)[14,15]技术已大规模部署于商业产品中, 如蚂蚁集团的隐语[16]、Google 的Private Join and Compute[17]、微软的APSI[18]和SealPIR[19]等.

本文组织结构如下: 第2 节介绍常用的密码学技术基础知识; 第3 节介绍TLS、SSH 协议在保障数据安全传输场景下的应用; 第4 节介绍可搜索加密技术在云存储场景下的应用; 第5 节介绍零知识证明技术在区块链场景下的应用; 第6 节介绍安全多方计算在隐私计算场景下的应用; 第7 节为总结与展望.

2 背景知识

通常意义上, 密码学(cryptology)包含密码编码学(cryptography)和密码分析学(cryptanalysis), 其研究方向分支如图1 所示.本节聚焦密码编码学, 给出多项密码技术的形式化定义.

图1 密码学分类Figure 1 Classification of cryptology

2.1 对称密码(Symmetric cryptography)

对称密码算法[4], 又称私钥密码算法, 其特点为通信双方使用相同的密钥进行加密与解密操作, 并保证在敌手不知道密钥的情况下, 无法从密文中推测出有关明文的任何信息.具体定义如下:

2.2 非对称密码(Asymmetric cryptography)

非对称密码学算法[3,20], 又称公钥密码算法, 其特点为通信双方使用一对密钥(公钥, 私钥), 其中公钥用于加密信息, 私钥用于解密信息, 并保证在敌手不知道私钥的情况下, 无法从密文中推测出有关明文的任何信息.相比于对称密码算法, 通信双方只需共享彼此的公钥, 便可在不安全的信道上实现信息传输.具体定义如下:

2.3 消息认证码(Message authentication codes)

消息认证码[21,22]是一种用于保护信息完整性和真实性的密码学技术.通过生成与密钥相关的标签,附加到消息上, 用于确保消息在传输过程中没有被篡改或伪造.具体定义如下:

2.4 数字签名(Digital signature)

数字签名[23,24]是一种保护信息真实性、完整性和不可抵赖性的密码学技术.相比于消息认证码, 数字签名使用一对密钥(公钥, 私钥), 其中私钥用于签名生成, 公钥用于签名验证, 并保证敌手在不知道私钥的情况下, 无法伪造出新的可通过验证的签名.具体定义如下:

2.5 同态加密(Homomorphic encryption)

同态加密算法[25,26]是一类特殊的公钥加密算法, 其允许在密文状态下执行某些计算操作, 可实现在不泄露明文信息的情况下对其进行数据处理.其具体定义如下:

当前同态加密算法分类如下:

(1) 部分同态加密: 仅支持一种特定类型的密文同态计算, 如加法或乘法;

(2) 全同态加密: 支持任意类型的密文同态计算.

2.6 密码协议(Cryptographic protocol)

密码协议又称安全协议, 其以密码算法为基础, 为两方或两方以上参与者完成某项特定任务制定一系列步骤, 旨在提供网络环境下的信息安全服务, 如保密性、完整性、不可否认性等.常见的密码协议有:

(1) 传输层安全协议(TLS): TLS 协议用于保护互联网上的数据传输, 特别是在Web 浏览器和服务器之间的通信.它提供机密性和完整性, 同时允许双方进行身份验证.

(2) 安全多方计算协议(MPC)[27]: MPC 协议用于多方数据拥有者下的隐私计算, 保证多个参与方在共同计算出某个函数结果的前提下, 不泄露彼此的私有输入信息.

(3) 零知识证明协议(ZKP)[28]: ZKP 协议为一种密码学协议, 其允许一方(证明者) 向另一方(验证者) 证明某一断言的正确性, 同时不泄露关于该断言的任何信息.

3 密码学在安全通信及身份认证中的应用

20 世纪中后期, 互联网逐渐由最初的军事和学术用途向商业化和大众化方向发展.互联网技术建立起一个全球性的沟通和信息共享平台, 吸引越来越多的个人、组织和国家接入, 使其成为现代社会不可或缺的重要组成部分.

在全球互联网发展的早期, 用户对互联网的使用仅局限于电子邮箱、搜索引擎、文件下载等简单功能.然而, 由于相关基础设施尚不够健全, 信息窃取、恶意邮件、中间人攻击等信息安全问题频发.在这一背景下, 以密码学技术为基础的众多安全协议快速发展, 以保障通信过程中的信息安全.

在互联网环境下, 当用户A 向用户B 传输信息时, 数据以数字信号的形式通过介质(如网线) 进行传播, 此时可能存在恶意攻击者, 通过物理方式窃听传输过程中的数据, 如图2 所示.若数据以明文形式传输,那么攻击者可轻松获取敏感信息, 如个人身份、财务数据、医疗记录等.因此, 对数据机密性的保护至关重要, 其强调在通信过程中, 数据只能由合法的通信方获取, 任何未经授权的第三方均无法获得有关传输内容的任何信息.在这一背景下, 加密算法成为不可或缺的工具, 其核心功能在于将数据转化为只有授权方能够理解的形式, 进而确保即使数据泄露也难以被解读, 即保障了数据的机密性(confidentiality).

图2 恶意窃听者示意图Figure 2 Diagram of malicious eavesdropper

然而, 实现机密性并不足以确保信息的安全, 因为攻击者可能对密文进行恶意篡改, 如直接删除部分信息, 且接收方可能无法察觉这一恶意行为.因此, 保障数据的完整性同样重要, 其强调在通信过程中, 任何未经授权的第三方不得对数据进行非法篡改或伪造.消息认证码(MAC) 技术旨在解决上述问题, 其使用密钥为数据生成固定长度的标识, 并由拥有相同密钥的另一方进行完整性验证.同时, MAC 还保证第三方在不知道密钥的情况下无法伪造出能够通过验证的合法标识, 即保障了数据的完整性(integrity).

为了确保发送方和预期的接受方在通信时所传输信息的安全, 必须同时保障数据的机密性和完整性,但这仍不足以实现信息安全.由于在互联网通信中, 彼此陌生的用户A 与用户B 进行交互时, 可能存在恶意的中间人C, 其伪装成A 和B 与双方协商密钥, 使得A 与B 误以为其正在与对方正常通信.该情况下, 恶意中间人可以轻松实现隐私窃取、篡改数据等恶意行为, 且通信双方难以察觉.因此, 在互联网通信中对通信双方进行身份认证至关重要, 即实现通信的真实性.基于数字签名技术的数字证书方案实现了身份认证与密钥交换, 可有效解决上述问题.该方案建立在证书颁发机构(CA) 作为可信第三方的基础上.在证书颁发过程中, CA 采用数字签名技术, 运用其签名私钥对服务器公钥、身份信息、证书有效期等信息进行签名, 从而生成数字证书.在验证阶段, 客户端在信任该CA 的前提下, 使用CA 的签名公钥对服务器提供的数字证书进行验证, 以确保正在与预期的目标建立连接, 而非恶意网站.由于数字签名技术确保只有拥有签名私钥的一方才能生成有效签名, 任何一方拥有验证公钥都可以进行有效性验证.因此, 数字签名技术为数字证书提供了完整性以及数据源认证的保障, 即实现了通信的可认证性(authenticity).

基于互联网通信中数据机密性、完整性和可认证性的需求, 综合运用加密算法、消息验证码和数字签名等技术的多种安全通信协议(如SSL/TLS、SSH 等) 应运而生, 为互联网安全通信提供有效解决方案.

SSL (secure sockets layer)[29]协议由Netscape[30]公司开发, 于1995 年3 月首次部署在Netscape的Navigator 1.1 浏览器上, 为客户端和服务器之间的网络通信提供了数据加密与身份认证的功能.由于SSL 协议易受到BEAST[31,32]攻击和CRIME[33,34]攻击, 其自身经过多次升级优化, 以使用更安全的加密算法.1999 年, SSL 更新并改名为TLS (transport layer security)[5,7,35–37], 本质上TLS 是SSL 的后续增强版本.SSL/TSL 协议家族是一个标准并有多种实现, 其中OpenSSL 开源软件库[38]最为著名.OpenSSL 最初是为SSL 协议而开发的, 用于加密网络通信, 但后来也扩展了支持其他加密和安全相关的功能.应用程序可以使用OpenSSL 来进行安全通信、避免窃听, 同时确认另一端连接者的身份.

TLS 传输协议位于不安全的TCP/IP[39]等底层网络通信协议之上, 为多种上层应用提供服务, 包括HTTP、SMTP[40]等.例如, HTTPS (HTTP over TLS)[41,42]构建在TLS 协议之上, 为HTTP 协议增加了安全性, 已广泛应用于万维网服务器, Chrome[43,44]、Internet Explorer[45,46]等常见浏览器都支持HTTPS 协议.Fortinet Networks[47]公司的一份报告指出, 截至2018 年第三季度, HTTPS 流量已占据互联网流量的72.2%, 并持续增长[48].

TLS 协议中综合使用加密算法、消息认证码、数字签名技术, 同时实现了网络通信中的三大核心需求: 数据机密性、完整性和可认证性.其具体执行过程可分为两部分: 握手协议与记录协议, 其中握手协议主要进行身份认证与共享密钥的协商, 记录协议保证通信数据的机密性与完整性, 如下所示.

SSH (secure shell)[9]协议同样是一类加密互联网协议, 与TLS 应用场景不同, 其主要用于实现与服务器或计算机的安全远程登录和数据传输.

在SSH 协议出现之前, 常用的远程连接协议是Telnet[49]和Rlogin[50].Telnet 和Rlogin 协议使用基于口令的身份验证方式, 只要知晓正确的用户名和口令, 就可以登录到远程主机.然而, Telnet 和Rlogin 协议缺乏针对中间人攻击的有效保护机制.SSH 协议引入了公钥加密技术对用户进行身份验证,可防止口令被猜测或被中间人截获, 从而提高远程登录时的系统安全性.

OpenSSH[11,51]是SSH 协议的一种免费开源实现, 被广泛部署于Linux[52,53]的众多发行版中, 且SSH 服务器端守护进程sshd 通常默认启动.与TLS 协议类似, SSH 协议中使用公钥加密算法来实现服务器远程登录中的核心需求: 用户的合法身份验证和信息保密, 如下所示.

4 密码学在云存储中的应用

在电子信息技术的发展推动下, 智能手机、笔记本电脑、平板电脑等移动终端产品相继问世, 移动互联网快速崛起.移动互联网技术作为信息技术时代的主力军, 催生了移动社交、手机购物、移动支付等功能, 极大改变了人们的生活工作方式.

由于移动终端本地存储资源受限, 以及云计算技术的蓬勃发展, 越来越多的用户选择将本地的数据迁移到云端服务器中, 以节省本地数据管理开销和系统维护开支.然而, 在云存储模式下, 用户数据可能包含敏感机密信息, 数据外包也面临着潜在的隐私风险[54], 如云端服务器管理员窃取用户信息[55]、黑客非法入侵泄露用户隐私[56]等.因此, 我们希望云存储技术可以满足以下两大要求: 一是安全性, 数据在云端以密文的形式存储, 在确保完整性[57]的同时提供隐私保障; 二是可搜索性, 服务器需要为加密文件提供高效的查询功能.若使用传统的加密方式, 如使用256 位的AES 加密算法对数据进行加密后再上传至云端,数据库中的文件均以密文的形式存储, 可以很好地满足安全性要求.但当用户想要在云端数据库中查询包含某个关键字的文件时, 将面临如何在密文上进行搜索的难题, 用户需要从服务器上下载所有文件并一一解密, 开销大、效率低, 即无法满足高效功能性要求.由于传统的加密方式无法同时满足以上两大需求, 可搜索加密技术[58]应运而生.其使用场景如图3 所示.

图3 可搜索加密使用场景Figure 3 Usage scenarios of searchable encryption

可搜索加密方案涵盖三个主要角色: 可信的数据所有者、被授权搜索的用户集合以及半可信的服务器.每个角色都有特定的任务和职责:

• 数据所有者: 数据所有者是对特定数据具有合法所有权或控制权的实体, 其目标是将一组文档以及相关的关键字存储在云存储服务器上.为了在将来能够便捷地检索这些数据, 数据所有者必须以一种特殊的方式对文档和关键字进行加密.一旦完成加密过程, 数据所有者将加密后的文档上传到云服务器.

• 数据用户: 数据用户是经过授权的实体, 他们希望能够搜索包含特定关键字的文档.为了执行搜索操作, 用户必须向服务器提交查询关键字的陷门(通常是加密的查询请求).搜索之后, 服务器将包含该关键字的文档返回给用户.数据用户的任务包括生成正确的陷门以进行安全搜索, 以及接收和解密服务器返回的搜索结果.

• 服务器: 服务器是中间实体, 负责执行搜索任务.当服务器从用户处接收到查询关键字的陷门时,它需要在不泄露明文信息的情况下搜索加密的数据, 并将相关文档返回给用户.服务器必须严格遵守协议, 确保用户的隐私和数据的安全性.服务器被视为诚实的, 这意味着它不会故意违反协议,但仍可能分析收到的数据以提供搜索服务.

可搜索加密的底层技术包括属性保护加密算法[59]、同态加密算法、oblivious RAM 访问模式(ORAM)、功能加密、对称可搜索加密算法(symmetric searchable encryption, SSE), 这些技术的安全性和效率比较如图4 所示.其中对称可搜索加密技术采用对称加密算法完成高效的搜索过程, 实现了效率与安全性的权衡, 因此与其他技术相比更适合处理云存储系统中大规模数据的情境, 并得到更加广泛的关注与应用.如今流行的云存储工具Dropbox、亚马逊云存储服务器AWS、Google Drive、MEGA 等都提供了加密数据库功能.AWS 在其中大规模部署了可搜索加密技术, 该技术可以在不暴露明文的情况下, 将数据进行加密后存储到云端, 然后对密文进行查询, 在满足安全性的同时, 高效地实现功能性.其简易流程如下所示:

在对称可搜索加密中, 用户持有索引私钥KI和文档私钥KD.加密存储阶段, 用户对文件进行关键词提取, 使用密钥KI、文档集合D和关键词列表搜索含有关键字w的文档时, 用户为KI和关键字w生成陷门token(w) 发送至服务器.服务器利用token(w) 与I运行搜索算法得到文档索引, 并将包含w的加密文档集合返回.在整个查询过程中, 关键字w与返回文件的内容对服务器是不可见的.

SSE 的研究始于对单一关键字的搜索, 并逐渐扩展到多关键字搜索、合取查询和析取查询等更复杂的搜索操作.

• 单关键字搜索[60]: 算法允许用户在加密的数据集合中查找包含特定关键字的文档, 而无需解密整个数据集.这些算法通常在效率和安全性之间进行权衡, 以确保高效搜索同时保持数据的隐私.其中一些经典的单关键字SSE 方案包括函数[61]以及基于倒排索引的方法[62].

• 多trapdoor 关键字搜索: 随着应用需求的增加, 研究开始关注多关键字SSE, 其允许用户执行更为复杂的搜索, 如同时搜索多个关键字, 从而提高了搜索的实用性.多关键字SSE 的研究除针对查询本身外[61], 还包括如何处理多关键字查询过程中的隐私保护问题[63,64].

• 模糊关键字搜索: 在先前的可搜索加密方案中, 缺乏对于细微文字差异或格式错误的容忍性, 导致方案在云计算环境下的适用性不足, 模糊关键词检索旨在解决此类问题.在模糊关键词检索方案中[65], 通过构造模糊关键词集, 用户可在查询时更加宽松地匹配关键词, 以便捕捉到与实际关键词相似但可能包含细微变化或错误的文档.

• 合取查询和析取查询: 合取查询[62]允许用户执行多个关键字的“与” 操作, 而析取查询[63]允许执行“或” 操作.这使得用户可以执行更复杂的逻辑查询, 例如查找同时包含多个关键字的文档,或者查找包含任何一个关键字的文档.这种扩展增加了SSE 的应用范围, 使其可以应用于更广泛的场景.

SSE 方案因其突出的搜索效率而被广泛使用,近年来的研究方向有对SSE 功能性的提升,如支持布尔查询的方案[66,67]、支持关键字排序搜索的方案[68–70]以及加入审计方对外包数据完整性的认证[71–73];对安全性的提升, 如实现后量子的可搜索加密方案; 以及对效率的提升, 如引入多种索引结构(正排索引[74]、倒排索引[75]、双向索引[76]等), 引入多种搜索方式(Bloom 过滤器[77,78]、并行搜索[79]等).权衡功能性、安全性和效率, 找到新的平衡点, 对于改进优化SSE 方案有着重要意义[80].

未来, SSE 技术将为数据隐私和高效数据检索提供更多解决方案.随着新的应用场景的出现, 如边缘计算[81]、物联网[82]等, SSE 技术也将面临更多的挑战和机遇.

5 密码学在区块链中的应用

随着信息技术的发展, 互联网出现了两种主要的应用架构.一种是客户端/服务器(C/S) 架构, 其中数据主要存储在服务器上, 客户端仅通过与其进行交互来获取数据, 百度、亚马逊等互联网巨头以及本文第4 节介绍的云存储场景均基于该架构.另一种是对等网络(P2P) 架构, 在这种架构下没有中心服务器,彼此连接的计算机处于平等地位.然而, 由于P2P 架构缺乏认证性、真实性等安全性保障, 因此仅用于简单的文件共享等, 并未得到广泛应用.

区块链技术的出现, 为P2P 网络带来了全新的发展机遇.其利用密码学技术与共识算法, 在P2P 网络中构建起分布式账本系统, 其中数据不再集中存储于单一中心服务器或数据库, 而是分散存储于网络中的多个节点上, 每个节点都拥有完整的账本副本.区块链颠覆了过去许多行业对中心化节点的信任依赖,从而避免了单点失效、腐败等问题.

在区块链技术的设计与应用中, 为确保链上数据完整性与不可篡改性, 利用哈希函数抗碰撞的特性,将链上数据组织为一个个固定大小的区块, 每个区块包含前一个区块的哈希值.基于该结构, 当恶意用户试图篡改区块上信息时, 不仅会影响当前区块的哈希值, 还会导致后续所有区块的哈希值改变, 从而导致整个区块链断裂.而轻量级节点只需存储最后一个区块的哈希值, 便可确保整个区块链上信息的完整性.

经过十多年的快速发展, 区块链技术如今已在金融、政务、供应链管理等多个领域取得了广泛的部署和落地应用, 不仅改变了传统领域的工作方式, 还为新兴行业带来了全新的机遇与解决方案.然而, 由于区块链自身的去中心化本质意味着数据分布式存储于全球的多个节点上, 这使得任何人都可以访问区块链上的信息, 从而导致一系列隐私与安全问题.此外, 区块链自身的存储与计算能力有限, 无法满足日益复杂的应用需求.因此, 实现链上匿名性、不可链接性以及可扩展性对于实现区块链广泛应用与发展至关重要.密码学环签名、零知识证明技术为上述问题提供了解决方案.

5.1 加密货币的隐私性

在以Bitcoin[83]为代表的加密货币交易过程中, 发送者使用自己的私钥创建一笔交易, 其中包括目标地址、交易金额等信息, 连同其公钥广播给区块链各节点.区块链节点需验证交易的有效性, 包括检查发送者是否有足够的资金执行交易, 以及签名是否有效.若验证通过则等待将该交易打包进区块中.尽管在上述场景下, 用户的社会身份与公钥对应的数字身份分离, 但由于交易细节是公开的, 随着交易过程的不断积累, 恶意的攻击者可依靠外界信息将数字身份与其社会身份关联[84,85].在此背景下, 基于零知识证明技术的匿名交易协议Zerocash[86]被提出, 并发展为Zcash 数字货币产品.在Zcash 的交易过程中, 发送者可在不透露所拥有确切余额、地址等详细交易信息的情况下, 使用零知识证明技术向区块链节点证明交易的有效性, 如交易金额与输出金额一致、交易方拥有支配交易金额的私钥等.传统数字货币与匿名货币的对比见图5.

图5 传统数字货币与匿名货币Figure 5 Traditional digital currencies and anonymous currencies

继Zcash 之后, Monero 也是一种基于密码学技术实现的隐私货币产品.其使用环签名技术对交易信息进行签名以实现交易发送方的不可追踪.环签名[87]是一类特殊的数字签名, 允许一个组中的任意成员以组的名义创建签名而不泄漏其自身身份.因此, 基于环签名等密码学技术可以实现加密货币的匿名交易,即, 确保交易双方的身份不被泄漏.

同时, 为隐藏交易金额, Monero 使用了零知识证明技术, 在交易过程中对“输出金额与输入金额一致” 这一断言进行证明.对外, 由于交易金额在隐私保护过程中存在模运算, 需对其进行范围证明以防止负数的产生, Monero 最初使用环签名解决这一需求, 后改用零知识证明技术以提高证明效率.此外,Grin、Beam 等区块链隐私货币项目近年来也得到广泛关注,其均使用基于零知识证明等密码技术的Mimblewimble 协议实现高效的隐私保护.当前基于零知识证明的主要加密货币产品如表1 所示.

表1 基于零知识证明的加密货币产品应用Table 1 Application of cryptocurrency products based on zero-knowledge proofs

5.2 区块链可验证分布式决策

区块链上的决策一般都需要民主的投票表决.除匿名货币外, 密码学技术在区块链电子投票领域也得到广泛应用.相较于传统的中心化电子投票系统, 基于区块链的去中心化电子投票可保证选票内容的不可篡改、不可伪造以及选举过程的公开透明.然而, 为了确保各选票的合法性, 投票者必须首先通过身份验证程序来证明其有资格行使投票权.由于区块链上的信息是公开的, 任何人都可以将选票与身份认证信息相关联, 从而核实其所投的选项.为在选票匿名的前提下实现结果的可验证性, 零知识证明技术起到关键作用.该技术允许投票者在不泄露任何个人信息的前提下, 证明投票过程合法.同时, 公众可独立地对投票过程和结果进行检验.如今, 区块链电子投票系统蓬勃发展[88–90].爱沙尼亚政府于2005 年采用基于零知识证明的区块链投票系统, 保证了选民的隐私以及选票的有效性, 进而激励更多的公民参与到地方选举与大选中.Zhang 等人[91]提出了第一个区块链财政系统, 其核心部件是分布式的、端到端可验证、通用可组合安全的投票协议.Votem[92]是一个端到端可验证的投票系统, 允许用户使用移动设备投票, 并且使用区块链来安全地广播选票以及计票信息等.Snapshot[93]是一个著名的去中心化自治组织(DAO) 投票平台, 它使用IPFS[94]来存储提案和选票, 使投票过程可以安全地在链下进行.零知识证明被广泛应用于上述电子投票系统中, 以提高投票系统的安全性和可信度.

5.3 Web3 下的链上可扩展性

随着区块链技术的发展, Web3.0 概念得到广泛普及.在这一全新的网络生态系统中, 互联网内容生产者不再依赖于中心服务器进行交互, 信息价值将以更加公平的方式直接反馈给内容生产者.在此背景下,多种“分布式+” 模式的生态应用得到广泛研究与实践.以分布式金融(decentralized finance, DeFi)[95]为例, 其在区块链网络的基础上通过稳定币、交易所、借贷提供更加复杂的金融服务, 同时与传统金融相比实现了低成本、点对点的价值转移等特性.此外, 基于DeFi 的思想, 通过与游戏、社交等领域结合, 涌现出GameFi[96]、SocialFi[97]等多种分布式应用产品(DApp).然而, 由于传统区块链系统自身容量与处理速度有限, 难以满足日益增长的应用需求.为此, 以zk-rollup[98]为代表的区块链二层扩容方案可有效解决上述困境.其通过将原本的链上计算转移到链下的方式提高区块链吞吐量, 同时使用密码学零知识证明技术验证链下计算的有效性.在该场景下, 方案通常只关注零知识证明技术为论断提供高效证明的功能, 而不强调证明自身的“零知识性”.当前, 基于零知识证明的链上扩容方案已广泛部署于Curve[99]、Sushiswap[100]等众多DApp 产品及服务中, 相关应用产品如表2 所示.

表2 基于零知识证明的隐私保护产品应用Table 2 Application of privacy-preserving products based on zero-knowledge proofs

6 密码学在专用安全多方计算中的应用

随着互联网、云计算、人工智能等技术的快速兴起, 数据已从静态存储的“信息资源” 转变为继土地、劳动力、资本、技术后的第五大生产要素.通过对海量数据的分析计算, 企业可实现对产品的精准推送、政府可实现对决策的精确把控, 实现数据价值的开发利用.然而, 数据要素往往含有用户或企业的敏感信息, 在共享与计算过程中面临着隐私泄露、数据滥用等风险.针对该隐私保护问题, 我国出台了《网络安全法》、《数据安全法》、《个人信息保护法》等法律法规, 标志着我国在保障个人隐私与数据安全上进入有法可依、依法建设新阶段.

在大数据时代下, 如何在遵守政策法规与保护数据安全的同时, 实现数据的流通与资源整合始终是一大挑战.近年来, 在政策支持与技术发展的双重驱动下, 隐私计算技术高速发展, 并在数据流通的实践应用中发挥重要作用.以蚂蚁集团推出的隐私计算框架隐语SecretFlow 为例(如图6), 其综合了多方安全计算、联邦学习、可信执行环境等关键技术, 以保障跨组织协作计算时原始数据和计算结果的隐私性.其中专用多方安全计算(包含零知识证明、隐私集合求交、隐私信息检索等) 以密码学为基础, 在联合营销、联合个人征信、医疗数据采集等场景有着重要应用.

图6 “隐语” 开源隐私计算平台架构Figure 6 “SecretFlow” open-source privacy computing platform architecture

6.1 零知识证明技术

零知识证明最早由Goldwasser、Micali 和Rackoff[28]于1985 年提出,其对交互式证明系统的零知识性进行了精确定义.然而, 早期的证明系统在性能上有所缺陷, 且仅支持特定类型的证明, 因此始终停留在理论层面.直至2010 年, Groth[101]提出零知识证明的关键性理论, 推动了其实用性研究.经过近十年的技术发展,当前零知识证明技术可分为三种主流算法: (1)零知识的简洁非交互式知识论证(zk-SNARKs);(2) 零知识的可扩展透明知识论证(zk-STARKs); (3) Bulletproofs.其技术对比如表3 所示.

表3 零知识证明技术对比Table 3 Comparison of zero-knowledge proof techniques

zk-SNARKs 概念最早由Bitansky 等人[102]于2012 年提出.2016 年, Parno 等人[103]提出更加高效的Pinocchio 协议, 成为zk-SNARKs 工程实现的关键里程碑.之后, 如Groth16[104]、Sonic[105]、Plonk[106]等一系列协议被提出, 着力于优化其实际性能以及对可信设置的依赖.同时, 由于zk-SNARKs基于椭圆曲线群上的加密方案, 无法抵抗量子攻击, 因此近年来针对zk-SNARKs 的后量子安全研究也在进行[107,108].目前, zk-SNARKs 已成为区块链领域最广泛使用的一类零知识证明方案.除5.1 节介绍的数字货币产品外, 基于Marlin 技术[109]的代币POND、基于Plonk 技术[106]的代币ZKSpace 以及智能合约扩容产品UniSync 等众多产品均得到广泛关注.值得一提的是, 由于Marlin、Plonk 等零知识证明技术底层的密码学理论基础—代数群模型被Zhang 等人[110]证伪, 相关产品安全性目前不得而知.

zk-STARKs 最早由Ben-Sasson 等人[111]于2018 年提出, 是一类无需可信设置的零知识证明技术,其具有可扩展性, 既证明过程所消耗的时间与输入大小呈线性相关, 但证明大小相较于zk-SNARKs 要高数千倍.同时, 该类证明仅依赖于抗碰撞的哈希函数, 因此能够实现后量子安全.

Bulletproofs 由Bünz 等人[112]于2018 年提出, 其兼顾了zk-SNARKs 和zk-STARKs 的优点, 可在无可信设置的前提下生成远小于zk-STARKs 的证明, 但需要更长的证明和验证时间.该技术当前主要应用于5.1 节中所述的范围证明场景下.

6.2 隐私集合求交技术的应用范例

在数字营销领域, 计算广告转化率是评估在线广告投放效果的主要方法.该指标反映了在所有广告受众中, 有多少用户最终访问了商品页面并完成购买行为, 进而帮助商家评估广告投放的效果、支付相应报酬.在此场景下, 商家拥有购买该产品的所有用户信息集合, 而广告投放者拥有所有观看该产品广告的用户信息集合, 商家需要计算两集合之间的交集, 以便进行精确的广告转化率计算.然而, 各集合均是双方各自的商业数据资产, 无法直接提供给彼此.

隐私集合求交协议(PSI) 可解决上述困境, 同时在基因检测、联系人发现、近邻检测等场景下也有广泛应用[113–115].该技术允许参与方在不公开私有数据集合的前提下, 安全地计算出集合的交集.从实现技术看, 隐私集合求交技术可以分为: (1) 基于公钥密码的PSI; (2) 基于不经意传输的PSI; (3) 基于混淆电路的PSI.

(1) 基于公钥密码的PSI

基于公钥密码的PSI 方案包括基于Diffie-Hellman 密钥交换的PSI 方案和基于RSA 盲签名的PSI方案.前者由Meadows[14]提出, 当前仍然是PSI 的主流实现.以联合营销场景为例, 如图7, 商家随机选取一正整数a, 分别将所有购买者信息xi进行哈希后计算H(xi)a发送给广告投放者; 该投放者随机选取一正整数b, 分别将所有投放用户信息yj进行哈希后计算H(yj)b, 同时将所有接收到的H(xi)a进行计算得(H(xi)a)b, 一并发送给商家; 商家首先将接收到的H(yj)b进行计算得到(H(yj)b)a, 并与(H(xi)a)b进行比较从而得出最终的交集信息.根据哈希函数的抗碰撞性, 当且仅当xi=yj时(H(xi)a)b与(H(yj)b)a相等.该方案基于离散对数困难问题, 在效率方面, 其计算开销与通信成本呈线性关系.1999年, Huberman 等人[116]又基于椭圆曲线对此进行了改进, 在安全性和高效性上有了更好的提升.“隐语”隐私计算平台实现了自研的基于ECDH 的三方PSI 协议, 但该协议会泄露两方交集的大小.后来, De Cristofaro 等人[15]提出了具有线性复杂度的PSI 协议, 该协议基于整数分解困难问题, 在参与方数据集大小相差较大时有着更好的效率表现[117].

图7 基于Diffie-Hellman 密钥交换的PSI 协议Figure 7 PSI protocol based on Diffie-Hellman key exchange

(2) 基于不经意传输的PSI

不经意传输(oblivious transfer, OT) 是多方安全计算中最为常见的原语, 由Rabin[118]在1981 年提出.自2003 年IKNP 方案[119]提出OT 扩展的概念后, OT 的性能大大提升并广泛应用.后续大量论文基于IKNP 方案在简化协议流程、减小存储开销、降低通信复杂度方面进一步改进和优化[120].

2013 年, Dong 等人[121]提出了首个基于OT 的PSI 方案.该方案结合了布隆过滤器[122](Bloom filter, BF) 和混淆布隆过滤器[121](garbled Bloom filter, GBF), 在存储开销和计算开销方面相较于基于DH 密钥交换的PSI 协议有着显著优势.2016 年, Kolesnikov 等人[123]基于批处理技术提升了协议效率.2018 年, Pinkas 等人[124]结合布谷鸟哈希方案[125]对协议的通信开销进行了进一步优化.2019 年,Orrù 等人[126]结合cut-and-choose 技术, 实现首个恶意敌手模型下的安全PSI 协议.基于OT 扩展技术, Freedman 等人[127]在2005 年提出不经意伪随机函数(oblivious pseudorandom function, OPRF)的概念, 并由此构造出高效的PSI 方案.2017 年, Kolesnikov 等人[128]基于OPRF 首次提出了不经意可编程伪随机函数(oblivious programmable pseudorandom function, OPPRF) 的概念.OPPRF 可以使用发送方的输入对OPRF 的密钥进行编程, 从而在密钥与发送方的私有集合元素间建立联系.2020 年,Chase 等人[129]提出了多点不经意伪随机函数(multi-point OPRF, mOPRF) 和带权多点OPRF, 实现半诚实敌手模型下的安全PSI 协议.Rindal 等人[130]提出了一种基于Vector-OLE 和PaXoS 数据结构的OPRF 构造并将其用于从OPRF 实现PSI 的标准转换.这是迄今为止任何已发表的PSI 协议(无论是半诚实还是恶意) 中速度最快、开销最低的方案.

(3) 基于混淆电路的PSI

除上述介绍的专用协议外, PSI 还可以通过通用混淆电路方法实现.由于任意函数均可以转换为布尔电路, 因此混淆电路可以计算任何功能函数, 在PSI 协议变体(PIS-C[131]、Threshold PSI[132,133]) 的构造上发挥着重要作用.

2012 年, Huang 等人[134]基于Yao 混淆电路[27], 实现了首个半诚实安全的PSI 协议.基于混淆电路的PSI 协议主要面临的问题是: 功能函数的电路设计复杂、门电路数量多、电路深度大, 因此研究人员针对通信开销进行了改进与优化.2015 年, Pinkas 等人[135]针对GMW 协议减少其OT 次数, 使用置换哈希的方法对Huang 的方案进行优化, 并应用电路进行隐私成员测试, 使得计算速度提升五倍, 且电路深度不再与集合大小相关.2018 年, Pinkas 等人[136]引入布谷鸟哈希技术将隐私集合求交问题转化为隐私成员测试, 将协议计算通信开销降低为接近线性级别.2019 年, Pinkas 等人[137]又在此基础上结合OPRF 技术, 将通信复杂度降低为与集合大小呈线性级别.2022 年, Chandran 等人[138]构造的PSI 协议基于批处理OPPRF 实现, 计算通信开销均具有线性复杂度.

6.3 隐私信息检索技术的应用范例

在金融领域, 建立健全的信用评估体系是优化金融资源配置、降低交易成本的至关重要的一环.在个人征信方面, 贷款机构需要从多维度进行评估计算, 以了解其个人信贷能力.但仅依赖于机构自身掌握的信用记录无法实现对申请人的精确征信画像, 为此, 贷款机构需融合其它金融机构或非金融机构信息, 如个人资产、商品购买情况等, 实现全面、精准、实时的评估.

然而贷款机构直接查询会泄露申请人身份, 其他机构直接共享数据也会使其丧失商业竞争力.隐私信息检索协议(PIR) 可有效解决上述困境, 该技术允许查询方在不公开被查询者的前提下实现信息搜索.执行协议后, 贷款机构可从其他数据提供方中准确查询申请人的相关信息, 从而实现更全面的资产评估, 同时被查询方不会获知有关贷款机构查询的任何信息.除上述联合个人征信外, 隐私信息检索技术在标签查询、信息核验、名单查询等场景有着广泛应用[139,140].当前隐私信息检索协议可以根据服务器数量、实现技术、查找方式做出如图8 所示的分类.

图8 PIR 协议分类Figure 8 Classification of PIR protocols

从服务器数量上看, PIR 可以分为单服务器PIR[141–151]和多服务器PIR[152–162].多服务器方案有着更好的鲁棒性和更高的效率, 但需要更强的假设, 即假设多个服务器间不会合谋设法获取用户信息.

从实现技术上看, PIR 可以基于不经意传输OT 和同态加密来实现.

(1) 基于不经意传输的PIR

基于IKNP 方案[119]的OT 扩展技术, Kolesnikov 等人[123]实现了1-out-of-∞OT.2019 年,Döttling 等人[163]提出了Rate-1 OT, 为PIR 协议提供了可行性构造.2021 年, Chase 等人[164]提出了分摊策略, 显著降低了Rate-1 OT PIR 的通信开销.

(2) 基于同态加密的PIR

1998 年, Stern 等人[165]首次将同态加密技术应用于PIR 方案.以联合个人征信为例, 如图9, 查询者可将待查询信息对应序号的密文设置为Enck(1), 其余设置为Enck(0), 一并发送给被查询方.被查询方将各序号对应的消息与接收到的密文相乘后, 求和即可得到查询信息对应的密文.将该密文发送给查询方进行解密, 即可得到对应信息.2001 年, Damgård 和Jurik[145]提出了基于Paillier[26]半同态加密算法的PIR.随着格上Ring-LWE 困难问题[166]的提出, Gentry[25]证明了全同态加密在理论上的可能性.基于此, XPIR[148]将基于Ring-LWE 的全同态加密方案应用于PIR, 使得Paillier 中的模幂运算转化成矩阵、多项式乘法, 计算复杂度大大降低, 但通信复杂度表现较差.微软基于SEAL 同态库构建的SealPIR 方案[149]进一步对查询方查询开销进行优化, 由单个密文代替查询向量, 大大减小了通信开销.此外, SealPIR 还提出了概率批处理技术构建多查询PIR 方案, 降低来自同一查询方的批处理请求计算成本.在OnionPIR 方案[150]和Spiral 方案[151]中, 通过引入全同态算法R-GSW[167], 结合BFV 算法[168], 组合使用全同态方案以平衡噪声增长和计算复杂度, 减小通信复杂度.

图9 基于同态加密的PIR 协议Figure 9 PIR protocol based homomorphic encryption

从查询方式来看, 除传统的索引PIR 外, 还衍生了关键字PIR[169].在关键字PIR 中, 查询方查询由一个关键字组成, 而非数据库中的索引地址.2005 年, Freedman 等人[127]提出了单服务器下基于加性同态的关键词PIR 协议.Olumofin 和Goldberg[170]通过B+ 树和完美哈希函数的方式将索引PIR 转化为关键字PIR.2018 年, Chen 等人[171]引入了全同态加密方案, 对单一关键字查询做出改进, 可以支持多个关键字的查询.此后Cong 等人[172]对该协议的参数进行了优化, 减小了通信开销.此外, Angel 等人[149]为支持关键词PIR, 将索引到关键字映射的Bloom 过滤器表示发送给用户, 并引入布谷鸟哈希技术对多查询进行了优化.

7 总结与展望

密码学在经历流传艺术到严谨科学的蜕变后, 其应用场景由军事领域拓宽到现代生活的各行各业.本文以信息技术的发展为脉络, 分别介绍了密码学在互联网发展不同时期的典型应用.在全球互联网初步发展阶段,以电子邮件和网页浏览为代表的网络通信面领着信息窃取、篡改与泄露的风险.开源代码库OpenSSL 在TLS 安全协议的基础上综合了AES、RSA 等密码算法, 为信息在互联网中的通信提供了机密性、完整性和认证性.同时, SSH 协议作为另一类加密互联网协议, 可以为互联网通信提供一个具有机密性和认证性的安全快速通道.在移动互联网快速崛起阶段,随着3G、4G、5G 技术普及, 智能手机、平板电脑等移动终端迅速发展.鉴于移动终端资源受限, 许多移动应用需要依赖云服务提供基础设施和技术支持.为应对云端数据库被攻陷的潜在威胁, 以对称可搜索加密为代表的加密数据库技术应运而生, 广泛运用于AWS、Dropbox 等, 为云存储提供了隐私保护.为应对基于P2P 网络的去中心化全新计算范式中通信的隐私性和可验证性难以兼具的问题, 以零知识证明为代表的密码技术大规模部署, 为区块链中的匿名性、不可链接性提供了技术支持, 在匿名交易, 去中心化存储领域得到广泛应用.在大数据资源共享时代,数据要素的流通可以实现数据价值的开发利用, 但其在收集、流通、计算过程中也面临新的隐私泄露问题.为保障数据安全、实现数据跨域流通“可用不可见”, 多方安全计算、隐私集合求交、隐私信息检索等隐私计算技术大规模部署于蚂蚁集团的隐语平台, 在金融、政务等领域有广泛应用.

近年来, 随着计算机技术的快速发展与数字经济的规模大幅增长, 密码学应用也面临着诸多新的挑战:

第一, 随着量子计算能力的提高, 传统密码系统安全性受到威胁.为应对该挑战, 当前学术界和工业界积极探索部署后量子密码算法, 完成后量子密码算法标准化工作, 以保障量子计算时代的数据安全.

第二, 当前密码学相关技术的性能无法满足通信带宽等资源限制下海量数据的传输与计算需求, 仍有待提高.因此, 针对不同应用场景, 对密码算法在原理上的设计优化、软件层面上的并行化处理以及硬件实现上结合FPGA 的硬件加速, 对于密码学在现实应用的落地实现有重要意义.

第三, 结合不同应用场景的细化需求, 将密码技术与计算机技术等多类技术融合从而实现多方面性能的优化, 是未来研究的一大趋势.例如, 将基于密码学的安全多方计算技术与联邦学习、可信执行环境等技术相结合, 打破单一技术的瓶颈限制, 提升性能.

猜你喜欢
密码学关键字加密
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
成功避开“关键字”
图灵奖获得者、美国国家工程院院士马丁·爱德华·海尔曼:我们正处于密钥学革命前夕
一种基于熵的混沌加密小波变换水印算法
密码学课程教学中的“破”与“立”
认证加密的研究进展
矩阵在密码学中的应用
基于ECC加密的电子商务系统
基于格的公钥加密与证书基加密
密码学的课程特点及教学方法探讨