基于后量子密码学的ChatGPT的内容过滤签名和加密方法
文献发布时间:2024-01-17 01:27:33
技术领域
本发明属于网络安全技术领域,具体涉及一种基于后量子密码学的ChatGPT的内容过滤签名和加密方法。
背景技术
由OpenAI开发并公布的ChatGPT引起了全球各个行业的广泛关注,其生成式的人工智能算法可以快速识别用户意图,并进行高效反馈,可供用户快速便捷地解决问题。自面世以来,ChatGPT因其强大的问题解决能力而被各类用户用于解决私人问题,或被各个行业的从业者用于解决其所在领域中的问题,同时也被诸多浏览器、代码编辑器、办公工具等软件所融合,因此ChatGPT应用的广度和深度飞速增长。
ChatGPT以问答的形式与使用者进行交互,用户所提出的问题和数据可能会涉及个人隐私、商业和科研机密等,而ChatGPT给出的回答同样难以评估其风险程度。因此,需要运用密码学对用户的提问内容和服务端的回答内容进行加密。同时,随着量子计算机技术的不断发展,量子计算能力快速提高,量子计算机已经对传统的公钥加密算法构成了巨大的安全威胁,因此采用传统的公钥加密来解决ChatGPT的隐私泄露问题并非合适的方法。目前ChatGPT的问答内容都是用明文传输,虽然用了https这样的加密传输协议,但传统的椭圆曲线非对称加密算法并不能阻挡量子计算机的破解。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于后量子密码学的ChatGPT的内容过滤签名和加密方法。本发明要解决的技术问题通过以下技术方案实现:
本发明提供一种基于后量子密码学的ChatGPT的内容过滤签名和加密方法,应用于服务端,包括:
生成第一密钥对;
接收提问端发送的第二密钥对中的第二公钥,并将所述第一密钥对中的第一公钥发送至提问端,以使提问端基于所述第一公钥加密提问内容,并利用自身第一签名密钥对中的第一签名私钥进行签名,生成第一会话消息;所述第一会话消息包括所述第一签名密钥对中的第一签名公钥;
接收提问端发送的第一会话消息后,利用所述第一签名公钥和所述第一私钥分别进行签名验证和解密,得到提问内容;
利用ChatGPT获得答复内容,并基于所述第二公钥加密所述答复内容后,利用自身第二签名密钥对中的第二签名私钥进行签名,生成第二会话消息;
发送所述第二会话消息至提问端,以使所述提问端基于所述第二密钥对中的第二私钥以及所述第二会话消息包含的第二签名密钥对中的第二签名公钥分别进行签名验证和解密,得到答复内容。
在本发明的一个实施例中,生成第一密钥对的步骤之前,还包括:
接收提问端的会话请求,所述会话请求中包括提问端的信息,所述信息为用户名和密码,或者IP和密码;
根据所述信息判断提问端的上一轮会话是否超出预设token长度。
在本发明的一个实施例中,生成第一密钥对的步骤,包括:
若所述提问端的上一轮会话超出预设token长度,则利用CRYSTALS-KYBER算法生成本轮会话所需的第一密钥对,并更新所述预设token长度;反之,则保持所述提问端上一轮会话的第一密钥对及所述预设token长度。
在本发明的一个实施例中,当所述提问端的上一轮会话超出预设token长度时,按照如下步骤生成本轮会话所需的第一密钥对:
生成随机数并打包;
利用哈希函数对打包后的随机数进行处理,得到第一随机数种子;
对所述第一随机数种子进行均匀采样,得到第一采样矩阵;
根据二项分布和伪随机函数生成私钥向量和公钥向量;
对所述私钥向量进行数论变换后与所述第一采样矩阵进行轮换乘运算,得到第一私钥;
将所述第一私钥代入哈希函数并进行扰动后,得到第一公钥。
在本发明的一个实施例中,接收提问端发送的第二密钥对中的第二公钥,并将所述第一密钥对中的第一公钥发送至提问端,以使提问端基于所述第一公钥加密提问内容,并利用自身第一签名密钥对中的第一签名私钥进行签名,生成第一会话消息的步骤,包括:
接收提问端发送的第二密钥对中的第二公钥,并将所述第一密钥对中的第一公钥发送至提问端,提问端基于过滤规则库对提问内容中的敏感词句进行匹配过滤,并根据提问内容中敏感词句与所述过滤规则库的匹配次数判断提问内容的风险程度后,进一步使提问端在该风险程度小于预设值时,基于所述第一公钥加密提问内容,并利用自身第一签名密钥对中的第一签名私钥进行签名,生成第一会话消息。
在本发明的一个实施例中,利用ChatGPT获得答复内容,并基于所述第二公钥加密所述答复内容后,利用自身第二签名密钥对中的第二签名私钥进行签名,生成第二会话消息后发送至提问端的步骤,包括:
利用ChatGPT获得答复内容;
利用哈希函数对所述答复内容进行处理,生成明文多项式;
对所述第二公钥进行异或操作,得到第二采样矩阵;
基于伪随机函数生成符合二项分布的扰动序列;
将所述第二采样矩阵经数论变换后与所述明文多项式环乘,并与所述扰动序列相加得到加密分量;
将各个加密分量组成得到第二密文;
生成自身的第二签名密钥对;
利用所述第二签名密钥对中的第二签名私钥对所述第二密文进行签名,得到第二会话消息。
在本发明的一个实施例中,生成自身的第二签名密钥对的步骤,包括:
生成随机数并打包;
利用哈希函数对打包后的随机数进行处理,得到第二随机数种子;
对所述第二随机数种子进行均匀采样,得到第二采样矩阵;
对所述第二采样矩阵添加扰动,得到密钥分量;
根据预设的高低位比特分解位进行比特位拆分,得到自身第二签名密钥对中的第二签名公钥和第二签名私钥。
在本发明的一个实施例中,利用所述第二签名密钥对中的第二签名私钥对所述第一密文进行签名,得到第二会话消息的步骤,包括:
利用哈希函数对所述答复内容进行处理,得到第一数字摘要;
使用Dilithium算法和所述第二签名密钥对中的第二签名私钥,对所述第一数字摘要进行加密,得到签名;
将签名后的密文作为第二会话消息。
在本发明的一个实施例中,所述第二会话消息还包括所述第二签名密钥对中的第二签名公钥;
发送所述第二会话消息至提问端,以使提问端基于所述第二密钥对中的第二私钥以及所述第二会话消息包含的第二签名密钥对中的第二签名公钥分别进行签名验证和解密,得到答复内容的步骤,包括:
发送所述第二会话消息至提问端,以使提问端基于第二签名密钥对中的第二签名私钥解密签名得到待验证的数字摘要,并基于所述第二密钥对中的第二私钥进行解密,得到答复内容后,利用哈希函数对所述答复内容进行处理,生成第一数字摘要,并使提问端根据所述待验证的数字摘要和所述第一数字摘要进行比较,判断签名是否被篡改。
在本发明的一个实施例中,若所述第一数字摘要与所述待验证的数字摘要相同,则说明答复内容未被篡改;反之,则表示答复内容被篡改。
与现有技术相比,本发明的有益效果在于:
本发明提供一种基于后量子密码学的ChatGPT的内容过滤签名和加密方法,能够有效对抗量子计算机的破解,保障数据安全,并且本发明通过在提问端与客户端进行双端签名和加密,实现双向保障,提问和回答过程都可以确保内容的真实性和完整性,避免被第三方篡改。
此外,服务端在收到提问端的会话请求后,先对提问端上一轮会话是否超出预设token长度进行判断,如果在预设token长度内,那么本轮会话中提问端和客户端的密钥对不发生变化,从而减少了公钥传输次数,节省了传输带宽。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是本发明实施例提供的基于后量子密码学的ChatGPT的内容过滤签名和加密方法的一种流程图;
图2是本发明实施例提供的提问端生成第一会话消息及服务端解密第一会话消息的示意图;
图3是本发明实施例提供的服务端生成第二会话消息及提问端解密第二会话消息的示意图;
图4是本发明实施例提供的基于后量子密码学的ChatGPT的内容过滤签名和加密方法的一种示意图;
图5是本发明实施例提供的基于后量子密码学的ChatGPT的内容过滤签名和加密方法的另一种示意图;
图6是本发明实施例提供的基于后量子密码学的ChatGPT的内容过滤签名和加密方法的另一种示意图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
图1是本发明实施例提供的基于后量子密码学的ChatGPT的内容过滤签名和加密方法的一种流程图,图2是本发明实施例提供的提问端生成第一会话消息及服务端解密第一会话消息的示意图,图3是本发明实施例提供的服务端生成第二会话消息及提问端解密第二会话消息的示意图。如图1-3所示,本发明实施例提供一种基于后量子密码学的ChatGPT的内容过滤签名和加密方法,应用于服务端,包括:
S1、生成第一密钥对;
S2、接收提问端发送的第二密钥对中的第二公钥,并将第一密钥对中的第一公钥发送至提问端,以使提问端基于第一公钥加密提问内容,并利用自身第一签名密钥对中的第一签名私钥进行签名,生成第一会话消息;第一会话消息包括第一签名密钥对中的第一签名公钥;
S3、接收提问端发送的第一会话消息后,利用第一签名公钥和第一私钥分别进行签名验证和解密,得到提问内容;
S4、利用ChatGPT获得答复内容,并基于第二公钥加密所述答复内容后,利用自身第二签名密钥对中的第二签名私钥进行签名,生成第二会话消息;
S5、发送所述第二会话消息至提问端,以使提问端基于第二密钥对中的第二私钥以及第二会话消息包含的第二签名密钥对中的第二签名公钥分别进行签名验证和解密,得到答复内容。
本实施例中,生成第一密钥对的步骤之前,还包括:
接收提问端的会话请求,会话请求中包括提问端的信息,信息为用户名和密码,或者IP和密码;
根据信息判断提问端的上一轮会话是否超出预设token长度。
本实施例中,提问端携带自身用户名和密码,或者自身IP和密码向服务端发起会话请求,服务端判断该提问端的上一轮会话是否超出预设token长度的限制。
进一步地,生成第一密钥对的步骤,包括:
若提问端的上一轮会话超出预设token长度,则利用CRYSTALS-KYBER算法生成本轮会话所需的第一密钥对,并更新预设token长度;反之,则保持提问端上一轮会话的第一密钥对及预设token长度。
应当理解,ChatGPT使用基于Transformer的神经网络模型,该模型的输入被划分为一个个token,在ChatGPT中一个token是指每个单词或标点符号、数字、符号等语言中最小的单位,每个token被嵌入到神经网络中,以便可以进行词嵌入和语义理解。预设token长度会影响网络的性能和生成质量,通常的预设token长度的范围约为256~512个,以获得更好的性能和更高的生成质量。
考虑到后量子密码学的公钥长度远长于传统的椭圆曲线非对称加密的公钥,而ChatGPT目前的一轮问答是有预设token长度限制的,因此本实施例为了减少公钥的传输次数,在一个预设token长度内,问答双方用于加密和签名的公钥和私钥不发生变化,以此来减少公钥传输的次数,进而节省传输带宽。
可选地,当提问端的上一轮会话超出预设token长度时,服务端按照如下步骤生成本轮会话所需的第一密钥对:
S101、生成随机数并打包;
S102、利用哈希函数对打包后的随机数进行处理,得到第一随机数种子;
S103、对第一随机数种子进行均匀采样,得到第一采样矩阵;
S104、根据二项分布和伪随机函数生成私钥向量和公钥向量;
S105、对私钥向量进行数论变换后与第一采样矩阵进行轮换乘运算,得到第一私钥;
S106、对第一私钥进行扰动后,得到第一公钥。
具体而言,服务端在生成第一密钥对时,首先生成随机数,并使用哈希函数对其进行处理,采用SHA3-512标准对哈希函数进行实例化后,得到第一随机数种子;接着对第一随机数种子进行随机采样,得到第一采样矩阵,最优实现方式为SHAKE-128;然后,利用伪随机函数生成私钥向量和公钥向量,最优实现方式为SHA3-256,对私钥向量做数论变换并与第一采样矩阵进行轮换乘运算,再对得到的第一私钥进行扰动,得到第一公钥。
需要说明的是,提问端生成第二密钥对的方式与服务端相同,故此处不再赘述。
图4是本发明实施例提供的基于后量子密码学的ChatGPT的内容过滤签名和加密方法的一种示意图。如图4所示,步骤S2中,接收提问端发送的第二密钥对中的第二公钥,并将第一密钥对中的第一公钥发送至提问端,以使提问端基于第一公钥加密提问内容,并利用自身第一签名密钥对中的第一签名私钥进行签名,生成第一会话消息的步骤,包括:
接收提问端发送的第二密钥对中的第二公钥,并将第一密钥对中的第一公钥发送至提问端,以使提问端基于过滤规则库对提问内容中的敏感词句进行匹配过滤,并根据提问内容中敏感词句与过滤规则库的匹配次数判断提问内容的风险程度后,进一步使提问端在该风险程度小于预设值时,基于第一公钥加密提问内容,并利用自身第一签名密钥对中的第一签名私钥进行签名,生成第一会话消息。
本实施例中,服务端与提问端中均安装有过滤规则库,其中,提问端可基于该过滤规则库对提问内容中的敏感词进行过滤、而服务端则可以利用该过滤规则库对答复内容中的敏感词加以过滤。示例性地,提问端基于过滤规则库中的敏感词句对提问内容进行匹配,根据匹配次数统计出体温内容中的关键词,进而分析内容的风险程度。
图5是本发明实施例提供的基于后量子密码学的ChatGPT的内容过滤签名和加密方法的另一种示意图。如图5所示,步骤S3中,接收提问端发送的第一会话消息后,利用第一签名公钥和第一私钥分别进行签名验证和解密,得到提问内容的步骤,包括:
S301:基于第一私钥解出第一公钥;
S302:将第一公钥采用SHAKE-128实例化的异或函数进行异或运算得到采样矩阵;
S303:对第一会话消息依次进行字节代换、行位移、列混合后,与采样矩阵环乘,根据SHAKE-128要求将该系列操作执行10轮得到解密分量;
S304:据解密分量得到明文,即提问端的提问内容。
请继续参见图5,步骤S4中,利用ChatGPT获得答复内容,并基于第二公钥加密答复内容后,利用自身第二签名密钥对中的第二签名私钥进行签名,生成第二会话消息的步骤,包括:
S401、利用ChatGPT获得答复内容;
S402、利用哈希函数对答复内容进行处理,生成明文多项式;
S403、对第二公钥进行异或操作,得到第二采样矩阵;
S404、基于伪随机函数生成符合二项分布的扰动序列;
S405、将第二采样矩阵经数论变换后与明文多项式环乘,并与扰动序列相加得到加密分量;
S406、将各个加密分量组成得到第二密文;
S407、生成自身的第二签名密钥对;
S408、利用第二签名密钥对中的第二签名私钥对第二密文进行签名,得到第二会话消息。
由于提问端对提问内容的加密过程与服务端对答复内容的加密过程类似,本实施例中,因此本实施例以服务端为例,对加密过程进行说明。具体地,针对提问内容得到答复内容后,使用哈希函数对答复内容进行预处理,例如采用SHA-256和SHA-512进行哈希函数实例化,接着采用SHAKE-128实例化的异或函数获得第二采样矩阵。进一步地,采用SHA-256实例化的伪随机函数以二项分布的规则生成扰动序列后,采用SHAKE-256实例化密钥导出函数计算出第一AES密钥,将第一AES密钥和第二采样矩阵经数论变换后与明文多项式环乘,并与扰动序列相加得到加密分量,各个加密分量组成对答复内容加密后的第一密文。
步骤S406~S408中,服务端利用自身第二签名密钥对中的第二签名私钥对第一密文进行签名,可获得第二会话消息。
可选地,步骤S407中,生成自身的第二签名密钥对的步骤,包括:
生成随机数并打包;
利用哈希函数对打包后的随机数进行处理,得到第二随机数种子;
对第二随机数种子进行均匀采样,得到第二采样矩阵;
对第二采样矩阵添加扰动,得到密钥分量;
根据预设的高低位比特分解位进行比特位拆分,得到自身第二签名密钥对中的第二签名公钥和第二签名私钥。
本实施例采用CRYSTALS-Dilithium算法实现提问端和服务端加密内容的数字签名和验证,由于Dilithium算法涉及较大体量的参数集,参数集中不同的参数对本发明安全性和相关效率均有较大影响,因此需要设置合适的参数。可选地,按照ChatGPT文字问答形式的内容加密需求,可采用128量子比特的参数集,当提问端的提问内容机密性较高时,可采用较安全级别的参数,例如:模数q=8380417、高低位比特分解位数d=13、潜在签名向量系数最大值γ
同样地,生成随机数并打包,利用哈希函数对打包后的随机数进行处理,得到第二随机数种子,并通过均匀采样得到第二采样矩阵,对第二采样矩阵添加扰动得到密钥分量,再对密钥分量根据参数d进行高低位比特拆分得到第二签名密钥对中的第二签名公钥和第二签名私钥。
图6是本发明实施例提供的基于后量子密码学的ChatGPT的内容过滤签名和加密方法的另一种示意图。如图6所示,步骤S408中,利用第二签名密钥对中的第二签名私钥对第一密文进行签名,得到第二会话消息的步骤,包括:
利用哈希函数对答复内容进行处理,得到第一数字摘要;
使用Dilithium算法和第二签名密钥对中的第二签名私钥,对第一数字摘要进行加密,得到签名;
将签名后的密文作为第二会话消息。
需要说明的是,第二会话消息还包括第二签名密钥对中的第二签名公钥。
可选地,步骤S5中,发送第二会话消息至提问端,以使提问端基于第二密钥对中的第二私钥以及第二会话消息包含的第二签名密钥对中的第二签名公钥分别进行签名验证和解密,得到答复内容的步骤,包括:
发送第二会话消息至提问端,以使提问端基于第二签名密钥对中的第二签名私钥解密签名得到待验证的数字摘要,并基于第二密钥对中的第二私钥进行解密,得到答复内容后,利用哈希函数对答复内容进行处理,生成第一数字摘要,并使提问端根据待验证的数字摘要和第一数字摘要进行比较,判断签名是否被篡改。
具体而言,服务端将答复内容经过哈希运算得到第一数字摘要,使用第二签名密钥对中的第二签名私钥和Dilithium算法对第一数字摘要进行加密,得到签名,然后将签名发送至提问端;其过程包括根据γ
若第一数字摘要与待验证的数字摘要相同,则说明答复内容未被篡改;反之,则表示答复内容被篡改。
下面,通过仿真实验对本发明提供的基于后量子密码学的ChatGPT的内过滤签名和加密方法做进一步说明,仿真结果如表1所示:
表1
与传统的公钥加密方法相比,本发明采用的加密方式可以有效对抗量子攻击算法,保障通信内容的安全,后量子密码学算法比传统的非对称加密密码学算法更加安全、更加长久、更加高效和更加稳定。
通过上述各实施例可知,本发明的有益效果在于:
本发明提供一种基于后量子密码学的ChatGPT的内容过滤签名和加密方法,能够有效对抗量子计算机的破解,保障数据安全,并且本发明通过在提问端与客户端进行双端签名和加密,实现双向保障,提问和回答过程都可以确保内容的真实性和完整性,避免被第三方篡改。
此外,服务端在收到提问端的会话请求后,先对提问端上一轮会话是否超出预设token长度进行判断,如果在预设token长度内,那么本轮会话中提问端和客户端的密钥对不发生变化,从而减少了公钥传输次数,节省了传输带宽。
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
- 基于量子游走隐形传输的仲裁量子签名方法
- 用于后量子密码学安全的基于哈希的签名和验证的消息索引感知多哈希加速器
- 基于同源曲线的后量子密码学的高速模乘器及其模乘方法