同态加密操作密钥管理系统及管理方法

未命名 08-15 阅读:76 评论:0


1.本发明涉及同态加密技术,更具体地,涉及一种在客户端-服务器模型中生成用于同态加密操作的操作密钥的方法。


背景技术:

2.同态加密(homomorphic encryption,he)是一种可以在加密状态下计算数据的加密方法。使用密文进行运算的结果会变成新的密文,对密文进行解密后得到的明文与对原始数据在加密前的运算结果相同。同态加密可用于将个人信息存储在外部介质中,或者在安全保护个人信息的同时计算个人信息。例如,当使用同态加密时,数据可以在加密状态下外包给商业云服务,并在加密状态下进行处理。
3.在同态加密中,几段数据被加密成一个密文,当对两个不同的密文进行运算时,该运算是在对应位置的数据段之间进行的。当需要在加密状态下对密文中不同位置的数据进行运算时,在某些情况下需要移动该位置才能执行运算。只有同态旋转操作是在加密状态下改变密文中数据位置的操作,同态旋转操作在加密状态下是循环移位操作,并且同态旋转操作对应于使用同态加密中的基本操作。
4.图1是用于执行同态加密操作的传统的客户端-服务器模型的网络环境。参照图1,在用于执行同态加密操作的传统的客户端1-服务器2模型中,根据同态加密生成密文的客户端1可以生成并发送必要的操作密钥,以请求服务器2对密文执行同态加密操作。例如,客户端1可以使用其私钥(secret key)生成用于根据同态加密执行旋转操作的旋转操作密钥,并将生成的旋转操作密钥发送到服务器2,从而在服务器2中对密文执行旋转操作。同态加密所需的操作密钥可以根据客户端1的私钥生成,因此无法在不知道该私钥的另一电子设备(例如服务器2)中生成。


技术实现要素:

5.同态加密中用于执行旋转操作的同态旋转密钥在许多情况下占用几百mb,并且有100多种类型。因此,当所有旋转操作密钥由与服务器相比规格相对较低的客户端电子设备生成并发送到服务器时,会产生相当大的成本。另外,即使当服务器生成同态旋转操作密钥时,如果实际上存在响应于来自客户端的服务请求而执行同态加密操作的多个服务器,则从总体内存负担角度考虑,由多个服务器中的每一个为客户端生成或存储所有旋转操作密钥是不合适的。
6.根据本公开的实施例,新提出了一种使用客户端的公钥生成操作密钥的方法,并且可以将生成对客户端的密文进行同态加密操作所需的操作密钥的权利委派给另一个电子设备。作为一个实施例,可以提供一种同态加密操作密钥管理系统,用于响应于来自服务器的请求而生成并发送客户端密文的同态加密操作密钥,并存储和管理生成的操作密钥。
7.根据本公开的实施例,可以提供一种同态加密操作密钥管理系统,该系统能够即时发送存储在存储器中的操作密钥或仅生成一次操作密钥,并将生成的操作密钥发送到请
求同一客户端的同态加密操作密钥的一个或多个服务器。
8.根据本发明的一个方面,上述目的和其它目的可以通过提供一种同态加密操作密钥管理系统来实现,该系统包括:通信接口,被配置为支持使用安全协议进行通信;存储器;以及至少一个处理器,其可操作地耦接到所述通信接口和所述存储器,其中,所述存储器包括从多个电子设备中的每一个电子设备接收的令牌和一个或多个公钥,所述至少一个处理器响应于所述通信接口从第一服务器接收到令牌和操作密钥请求,对所述令牌的有效性进行验证;响应于所述令牌是有效的,基于对令牌进行解密获得的数据,使用用于所述多个电子设备中的第一电子设备的一个或多个公钥来生成一个或多个同态加密操作密钥;以及通过所述通信接口将所述第一电子设备的同态加密操作密钥发送到所述第一服务器。
9.当所述至少一个处理器基于所述第一电子设备预设的加密方法成功解密所述令牌时,所述至少一个处理器可以确定所述令牌是有效的。
10.所述令牌可以加密并且包括以下中的至少一项:所述第一电子设备的用户身份、允许的操作时间信息、允许生成的操作密钥的类型和范围、或由所述第一电子设备发出的随机数。
11.当对所述操作密钥的请求时间在基于所述允许的操作时间信息的允许范围之外时,所述至少一个处理器可以不生成所述同态加密操作密钥,以及可以通过所述通信接口向所述第一服务器发送用于暂停使用所述同态加密操作密钥的消息。
12.所述至少一个处理器可以根据所述第一服务器的操作密钥请求的类型,通过检查所述随机数来验证所述令牌是否有效。
13.所述一个或多个公钥可以包括对应于k步移位的分级伽罗瓦密钥,所述至少一个处理器可以通过使用所述分级伽罗瓦密钥重复执行旋转操作来生成对应于所述k步移位的一个或多个同态旋转操作密钥。
14.所述至少一个处理器可以将所述同态旋转操作密钥存储在所述存储器中,并根据与所述第一电子设备协商的内容来设置所述同态旋转操作密钥的存储周期。
15.响应于在所述存储器中搜索所述第一电子设备所请求的操作密钥,所述至少一个处理器可以将存储在所述存储器中的所述操作密钥发送到所述第一服务器。
16.根据本发明的另一方面,提供了一种管理同态加密操作密钥的方法,该方法包括:从第一服务器接收令牌和对同态加密操作密钥的请求,对所述令牌的有效性进行验证,当所述令牌是有效的时,基于对所述令牌进行解密获得的数据,使用用于第一电子设备的一个或多个公钥来生成所述同态加密操作密钥,以及将所述同态加密操作密钥发送到所述第一服务器。
17.该方法还可以包括当所述令牌无效时,向所述第一服务器发送指示所述令牌无效的消息。
18.所述一个或多个公钥可以包括使用所述第一电子设备的私钥生成的分级伽罗瓦密钥。
19.所述生成可以包括通过使用所述分级伽罗瓦密钥重复执行旋转操作来生成一个或多个同态旋转操作密钥。
20.所述验证可以包括:当使用所述第一电子设备预设的加密方法解密所述令牌时,确定所述令牌是有效的。
21.所述令牌可以加密并且包括以下中至少一项:所述第一电子设备的用户身份、允许的操作时间信息、允许生成的操作密钥的类型和范围、或由所述第一电子设备发出的随机数。
22.所述生成可以包括当对所述操作密钥的请求时间在基于所述允许的操作时间信息的允许范围之外时,在不生成所述同态加密操作密钥的情况下,向所述第一服务器发送用于暂停使用所述同态加密操作密钥的消息。
23.所述验证可以包括:根据所述第一服务器的操作密钥请求的类型检查所述随机数,以及响应于所述令牌是有效的,生成同态加密操作密钥。
24.该方法还可以包括根据与所述第一电子设备协商的内容设置所述同态加密操作密钥的存储周期,以及将所述同态加密操作密钥存储在存储器中。
25.根据本发明的另一个方面,提供了一种计算机可读非瞬时记录介质,其存储用于控制电子设备的指令,所述电子设备包括:至少一个处理器,存储器和通信接口,其中,当所述指令由所述至少一个处理器执行时,所述指令控制所述电子设备,使得从第一服务器接收对第一电子设备的同态加密操作密钥的请求和第一令牌,基于存储在存储器中的第一电子设备的第一加密方法解密第一令牌,响应于解密成功,在存储器中搜索同态加密操作密钥,响应于搜索到同态加密操作密钥,将同态加密操作密钥发送到第一服务器,并且响应于没有在存储器中搜索到同态加密操作密钥,使用存储在存储器中的第一电子设备的公钥和分级伽罗瓦密钥生成同态旋转操作密钥并发送到第一服务器。
26.生成同态旋转操作密钥可以是通过使用分级伽罗瓦密钥对公钥重复执行旋转操作来生成一个或多个同态旋转操作密钥。
27.生成同态旋转操作密钥可以是基于通过解密令牌获得的数据来生成同态旋转操作密钥,并且解密得到的数据可以包括以下中的至少一项:第一电子设备的用户身份、允许的操作时间信息、允许生成的操作密钥的类型和范围或者由第一电子设备发出的随机数。
附图说明
28.从下面结合附图的具体实施方式中,将更清楚地理解本发明的上述和其他目的、特征和其他优点,在附图中:
29.图1是用于执行同态加密操作的传统客户端-服务器模型的网络环境。
30.图2是根据实施例的包括同态加密操作密钥管理系统的客户端-服务器模型的网络环境。
31.图3是根据实施例的包括同态加密操作密钥管理系统的组件的框图。
32.图4是根据实施例的在客户端-服务器模型中管理同态加密操作密钥的方法的流程图。
33.图5是根据实施例的在同态加密操作密钥管理系统中生成同态旋转操作密钥的方法的示例。
34.图6是根据实施例的多个客户端和多个服务器请求和接收同态加密操作密钥的序列图。
具体实施方式
35.在下文中,将参考附图详细描述实施例。然而,权利要求的范围不受这些实施例的限制。每个图中相似的附图标记表示相似的元件。
36.以下说明书中所使用的术语已经选择了相关技术领域的常规术语和通用术语。然而,根据技术的发展和/或变化、传统技术人员的偏好等,可能存在其他术语。因此,以下说明书中使用的术语不应被解释为限制技术思想,而应被理解为用于描述实施例的示例性术语。
37.图2是根据实施例的包括同态加密操作密钥管理系统100的客户端200-服务器300模型10的网络环境。
38.对于同态加密操作,每个客户端需要几个gb到几百gb的操作密钥(例如旋转操作密钥、密钥切换密钥等)。在相对低规格的客户端中,生成、存储和从客户端到服务器传输所有操作密钥(每个操作密钥都是一种公钥),其中将操作委派给服务器,这会导致成本问题。例如,在移动设备等便携式设备中,即使当密钥大小为1gb时,也难以承担生成和存储密钥的计算成本以及将密钥发送到服务器的通信成本。另外,当一个或多个服务器通过代理执行包括同态加密操作的ai操作时,对于每个服务器来说,接收和存储每个客户端操作所需的密钥在通信成本和总体内存方面是繁重的。根据本公开的各种实施例的同态加密操作密钥管理系统100可以代表客户端200生成操作密钥,存储操作密钥,并在必要时将操作密钥发送到操作服务器。因此,可以减少生成操作密钥的计算负担和将操作密钥递送到客户端200的服务器的通信成本,并且当存在多个操作服务器时,可以减少每个服务器存储操作密钥的存储器负担。
39.根据实施例的同态加密操作密钥管理系统100可以存储从客户端200接收的公钥(操作密钥),基于存储的公钥生成派生密钥(另一操作密钥),并将存储的公钥和派生密钥发送给需要针对客户端200进行同态加密操作的服务器300。当客户端200第一次仅生成一次公钥(例如,分级伽罗瓦密钥)并将该公钥发送到同态加密操作密钥管理系统100时,同态加密操作所需的操作密钥(例如,多个旋转操作密钥)可以由同态加密操作密钥管理系统100生成。例如,同态加密操作密钥管理系统100可以从一个或多个客户端200接收能够生成用于同态加密旋转操作的旋转操作密钥的分级伽罗瓦密钥(公钥)。响应于从服务器300接收到与由同态加密操作密钥管理系统100管理的一个或多个客户端200相关的旋转操作密钥请求,同态加密操作密钥管理系统100可以根据对应客户端200的分级伽罗瓦密钥(公钥)生成多个旋转操作密钥(派生密钥)。可以存在一个或多个公钥,并且同态加密操作密钥管理系统100可以使用例如一个或多个分级伽罗瓦密钥(hierarchical galois keys)来生成每个派生密钥。同态加密操作密钥管理系统100可以将公钥(一个或多个分级伽罗瓦密钥)和派生密钥(多个旋转操作密钥)存储在客户端200的存储器中。在一个实施例中,同态加密操作密钥管理系统100可以一直存储公钥,并且根据用户的选择,仅在特定时间段或设定时间段内存储派生密钥。响应于关于客户端200的操作密钥请求,同态加密操作密钥管理系统100可以将存储在存储器中的派生密钥发送到服务器300,并且重新生成派生密钥,并且当从存储器中删除派生密钥时,将重新生成的派生密钥发送到服务器300。在这种情况下,当重新生成相同的操作密钥时,可以将操作密钥发送到服务器300所需的时间延迟与密钥生成所需的时间一样多,因此客户端200可以请求同态加密操作密钥管理系统100将派生密钥
存储一段必要的时间。为了有效的存储器管理,同态加密操作密钥管理系统100可以按每个客户端200所使用的存储器的量的比例收取费用。
40.请求与客户端200相关的操作密钥的服务器300可以是接收由客户端200发送的密文并对接收到的密文执行同态加密操作的操作服务器。例如,服务器300可以是ai服务器。服务器300可以将关于必要的操作密钥的类型的数据和从客户端200接收的令牌发送到同态加密操作密钥管理系统100,以便对客户端200的密文执行同态加密操作。在验证令牌后,当证明令牌有效时,同态加密操作密钥管理系统100可以将客户端200的操作密钥发送到服务器300。此时,当先前生成由服务器300请求的操作密钥并将其存储在高速缓存中时,同态加密操作密钥管理系统100可以立即将存储的操作密钥发送到服务器300。否则,同态加密操作密钥管理系统100可以使用客户端200的公钥生成所请求的派生密钥,并将派生密钥发送到服务器300。同态加密操作密钥管理系统100可以将生成的派生密钥存储在客户端200的高速缓存中。由于对操作密钥的大量请求而使用大量存储空间的用户可以被视为主动使用同态加密操作密钥管理系统100的用户,并且可以利用用于根据存储空间的使用程度区分收费的收费计算算法。
41.同态加密操作密钥管理系统100可以注册一个新的客户端200,将操作密钥的生成委派给该客户端。同态加密操作密钥管理系统100可以接收并存储该客户端200的用户信息和用于同态操作的公钥。
42.同态加密操作密钥管理系统100可以使用加密信道或认证信道与客户端200和服务器300通信。例如,同态加密操作密钥管理系统100可以从请求新注册的客户端200接收用户信息和公钥,从服务器300接收对操作密钥的请求,或者在发送操作密钥的所有过程中使用诸如传输层安全(transport layer security,tls)或互联网协议安全(internet protocol security,ipsec)的安全协议。同态加密操作密钥管理系统100可以防止外部攻击者在使用安全协议与客户端200和服务器300通信期间由于密钥暴露或密钥污染而造成的拒绝服务攻击或重放攻击。
43.同态加密操作密钥管理系统100可以管理多个客户端200中的每一个的操作密钥,每个客户端200的派生密钥的类型、数量或容量是不同的,并且可以存在与多个客户端200相关联的多个服务器300。例如,同态加密操作密钥管理系统100可以对应于大量aiaas服务器300。客户端200可以使用来自各种操作服务器300的使用同态加密的服务,而不考虑其数据传输能力或存储空间限制。例如,智能手机终端200可以通过加密/令牌发放等方式使用同态加密操作的密钥管理系统100来使用使用同态加密操作的安全aiaas服务器300,而无需存储或传递数gb的密钥。在各种实施例中,当客户端200从服务器300请求服务时,可以通过使用令牌来授权使用同态加密操作密钥管理系统100。
44.在本公开中,令牌可以包括关于在客户端200和服务器300之间使用操作密钥的权利的信息。通过加密来发送和接收令牌,并且只有发行令牌的客户端200和从客户端200委派生成操作密钥的同态加密操作密钥管理系统100可以解密令牌。服务器300可以接收令牌并将令牌发送到同态加密操作密钥管理系统100,并且不能解密加密的内容。同态加密操作密钥管理系统100可以使用先前与客户端200商定的方法来解密令牌。例如,同态加密操作密钥管理系统100可以使用与客户端200商定的私钥/公钥代码解密令牌。
45.令牌可以包括客户端200的用户身份信息。用户身份信息可以包括客户端200识别
信息、用户识别信息和认证信息。令牌可以包括关于允许客户端200进行操作的时间的信息。在对应于根据允许操作的时间信息的限制范围之前或之后的时间的情况下,同态加密操作密钥管理系统100可以确定令牌是重传令牌,暂停对应服务器的密钥使用,并且由于期限到期而向服务器发送密钥使用暂停消息。令牌可以包括授权密钥id和允许范围。例如,旋转操作密钥的范围或数量可以被限制。由于每个客户端的一个或多个密钥可以存储在同态加密操作密钥管理系统100中,因此可以包括分配给密钥的id信息以区分相应的密钥。令牌可以包括客户端200发出的随机数。例如,在操作服务器和同态加密操作密钥管理系统100请求用于客户端200的密文上的同态操作的重要信息的过程中,随机数可以用于附加认证。
46.尽管图2仅示出了一个客户端200和一个服务器300,但是根据本公开的各种实施例的同态加密操作密钥管理系统100可以与多个客户端200和多个服务器300一起操作。在各种实施例中,同态加密操作密钥管理系统100可以接收多个客户端200中的每一个的令牌和公钥,并管理多个客户端200中的每一个的同态加密操作密钥。在各种实施例中,同态加密操作密钥管理系统100可以从多个服务器300接收对多个客户端200中的特定客户端200的操作密钥的请求,并为相应的客户端200提供同态加密操作密钥。作为实施例,在图6中,已经给出了一个示例的描述,在该示例中,一个同态加密操作密钥管理系统100与两个客户端200a和200b以及两个服务器300a和300b一起操作。
47.在一个实施例中,客户端200可以按如下方式生成分级伽罗瓦密钥。
48.客户端200可以定义不同的质数集合c={q0,

,q
l
}和b={p0,

,p
k-1
}。所有这些集合都可以用作剩余数系统(residue number system,rns)的变量(基)。客户端200可以定义另一质数集合作为主特殊质数。当时,为便于描述,名称可按以下顺序重新命名
49.分解数dnum是α=(l+1)/dnum,并且客户端200可以将通过对质数聚集和连乘而获得的值定义为客户端200可以定义并使得满足|p|≥max(qj)。
50.主分解数mdnum是αm=(l+1)/mdnum,并且可以将通过对质数聚集和连乘而获得的值定义为客户端200可以定义并使得满足
51.客户端200可以将对应于密钥多项式s的k的旋转密钥定义为mswkk={mswk
k,i
}
r=0,...,mdnum-1
,其中是从r
pqt
中的均匀分布中提取的,且客户端200可以针对k=1,-1,2,-2,4,-4,

,-2
n-2
,2
n-2
,2
n-1
生成每一个分级伽罗瓦密钥。k的值为示例,并且可以被确定为使得从-2
n-1
到2
n-1
的值是通过允许重复的组合的总和来获得的值。分级伽罗瓦密钥的形式为并且可被定义为使得ae是从r
pq
中均匀提取的元素,且be=-aes+ee。
52.客户端200可以通过使用分级伽罗瓦密钥对公钥重复执行旋转操作来生成多个旋转操作密钥。分级伽罗瓦密钥可以响应于k步移位(k-step shift)而生成,并且可以由客户
端200在服务器300或同态加密操作密钥管理系统100的请求下生成。客户端200可以通过使用对应于k步移位的分级伽罗瓦密钥来生成与k步移位的倍数相对应的多个旋转操作密钥。客户端200可以生成对应于不同步移的一个或多个分级伽罗瓦密钥。所述一个或多个分级伽罗瓦密钥可分别产生对应于不同步移的多个旋转操作密钥。在各种实施例中,当分级伽罗瓦密钥集包括对应于k={1,-1,2,-2,4,-4,8,-8}的伽罗瓦密钥时,客户端200可以通过将k个不同的伽罗瓦密钥进行组合来生成旋转操作密钥。例如,客户端200可以顺序地使用对应于k=8的伽罗瓦密钥和对应于k=2的伽罗瓦密钥来生成10步移位的旋转操作密钥。
53.在一个实施例中,同态加密操作密钥管理系统100可以使用客户端200的分级伽罗瓦密钥生成一个或多个旋转操作密钥,如下所示。
54.当l的旋转密钥可以生成时,同态加密操作密钥管理系统100可以定义l=l0+l1+

+l
u-1
,其中每个li是一个存在分级伽罗瓦密钥的值。同态加密操作密钥管理系统100可以首先使用加密密钥(公钥)中的分级伽罗瓦密钥l0生成l0的旋转操作密钥。同态加密操作密钥管理系统100通过对执行旋转操作以生成并使用该方法对r=0,

,dnum-1执行该操作。因此,生成了且生成了l0的旋转操作密钥。此外,同态加密操作密钥管理系统100可以根据k
(j-1)
=l0+l1+

+l
j-1
的旋转操作密钥生成k
(j)
=l0+l1+

+lj的旋转操作密钥
55.同态加密操作密钥管理系统100可以通过将使用mswk
lj
对lj的旋转操作应用到密文来生成并且可以对所有r=0,

,dnum-1执行该操作。因此,可以生成并成为k
(j)
的旋转操作密钥。同态加密操作密钥管理系统100可以对所有l0,l1,

,l
u-1
都执行上述过程以为l生成旋转操作密钥。
56.图3是根据实施例的包括同态加密操作密钥管理系统100的组件的框图。
57.根据该实施例的同态加密操作密钥管理系统100可以包括处理器110、存储器120、通信接口130和总线140。
58.处理器110是一种中央处理单元,并且可以执行存储在存储器120中的一个或多个指令来控制同态加密操作密钥管理系统100的操作。处理器110可以包括能够处理数据的任何类型的设备。例如,处理器110可以指嵌入在硬件中的数据处理设备,该硬件具有物理结构化电路来执行表示为程序中包括的代码或指令的功能。作为如上所述嵌入在硬件中的数据处理设备的示例,可以包括诸如微处理器、中央处理单元(central processing unit,cpu)、处理器核心、多处理器、专用集成电路(application-specific integrated circuit,asic)或现场可编程门阵列(field programmable gate array,fpga)的处理设备。然而,本发明不限于此。处理器110可以包括一个或多个处理器。处理器110可以包括至少一个核心。
59.处理器110可以响应于从服务器300接收的令牌和操作密钥请求来验证令牌的有效性,并且响应于令牌是有效的,基于对令牌进行解密获得的数据,使用一个或多个公钥来生成一个或多个同态加密操作密钥。处理器110可以基于客户端200预先设置的加密方法对
从服务器300接收的令牌进行解密,并在解密成功时确定令牌是有效的。所述令牌可以加密并且包括以下中的至少一项:所述客户端200的用户身份、允许的操作时间信息、允许生成的操作密钥的类型和范围、或由所述客户端200发出的随机数。当服务器300对操作密钥的请求时间在基于令牌中包括的允许操作时间信息的允许范围之外时,处理器110可以不生成同态加密操作密钥,并且可以向服务器300发送用于暂停使用操作密钥的消息。处理器110可以通过根据来自服务器300的操作密钥请求的类型进一步检查随机数来确定所述令牌是否有效。从客户端200接收的一个或多个公钥可以包括对应于k步移位的分级伽罗瓦密钥,并且处理器110可以通过使用分级伽罗瓦密钥重复执行旋转操作来生成对应于k步移位的一个或多个同态旋转操作密钥。
60.分级伽罗瓦密钥是一种能够为同态密文的旋转操作生成操作密钥(评估密钥)的公钥。分级伽罗瓦密钥可以包括一个或多个伽罗瓦密钥。为了便于描述,包括一个或多个伽罗瓦密钥的分级伽罗瓦密钥可以被称为分级伽罗瓦密钥或分级伽罗瓦密钥集。例如,分级伽罗瓦密钥可以包括对应于k步移位的伽罗瓦密钥。由于该密钥是一种公钥,处理器110可以在不知道客户端200的私钥的情况下,使用接收到的分级伽罗瓦密钥来生成用于旋转操作的操作密钥。
61.在各种实施例中,处理器110可以通过使用对应于k步移位的伽罗瓦密钥来生成能够执行对应于k的倍数的步进移位的多个旋转操作密钥。例如,当分级伽罗瓦密钥是k=1对应的伽罗瓦密钥时,k=1对应的伽罗瓦密钥可以使用13次,以生成用于13步移位的旋转操作密钥。作为另一个示例,当分级伽罗瓦密钥集包括对应于k={1,-1,2,-2,4,-4,8,-8}的伽罗瓦密钥时,可以按顺序使用对应于k=8的伽罗瓦密钥、对应于k=4的伽罗瓦密钥和对应于k=1的伽罗瓦密钥,以生成用于13步移位的旋转操作密钥。
62.在各种实施例中,客户端200可以生成包括一个或多个伽罗瓦密钥的分级伽罗瓦密钥集,并将该分级伽罗瓦密钥发送到同态加密操作密钥管理系统100。可选地,同态加密操作密钥管理系统100可以首先从客户端200请求必要的分级伽罗瓦密钥集。
63.处理器110可以将使用分级伽罗瓦密钥生成的同态旋转操作密钥存储在存储器120中,并且可以根据与客户端200协商的内容在存储器中设置存储周期。响应于来自服务器300的对操作密钥的请求,处理器110可以首先在存储器120中搜索操作密钥,并且可以在操作密钥被存储时立即将操作密钥发送到服务器300。当在存储器120中没有找到操作密钥时,处理器110可以使用客户端200的一个或多个公钥来生成操作密钥。
64.存储器120可以包括内部存储器和/或外部存储器,并且可以包括诸如dram、sram或sdram的易失性存储器、诸如一次性可编程rom(one time programmable rom,otprom)、prom、eprom、eeprom、掩模rom、闪存rom、nand闪存或nor闪存的非易失性存储器、诸如ssd、紧凑型闪存(compact flash,cf)卡、sd卡、微型sd卡、迷你sd卡、xd卡或记忆棒的闪存驱动器、或者诸如hdd的存储设备。存储器120可包括磁存储介质或闪存存储介质。然而,本发明不限于此。
65.在一个实施例中,存储器120可以存储客户端200的信息,并且客户端200的信息可以包括从客户端200接收的令牌、一个或多个公钥以及由处理器110生成的派生密钥(一个或多个操作密钥)。存储器120可以将派生密钥存储预定时间段,并且可以在预定时间段过去时,删除对应的派生密钥。
66.通信接口130可以包括用于提供有线或无线通信的一个或多个通信接口。在各种实施例中,通信接口130可以使用安全协议通过安全信道或认证信道发送和接收密钥和令牌。例如,通信接口130可以使用传输层安全性(transport layer security,tls)或互联网协议安全性(internet protocol security,ipsec)。通信接口130可防止外部攻击者在与客户端200和服务器300通信期间由于密钥暴露或密钥污染而造成的拒绝服务攻击或重放攻击。
67.总线140是连接处理器110、存储器120和通信接口130的逻辑/物理路径。例如,处理器110可以通过总线130执行关于存储器120的读和写。
68.图4是根据实施例的在客户端-服务器模型中管理同态加密操作密钥的方法的流程图。
69.在步骤s401中,同态加密操作密钥管理系统100可以从第一服务器300接收第一令牌和操作密钥请求。操作密钥请求可以包括关于所需操作密钥的类型和数目的信息。可以根据客户端200预先设置的加密方法在加密状态下解密第一令牌。
70.在步骤s402中,同态加密操作密钥管理系统100可以验证接收到的第一令牌的有效性。当同态加密操作密钥管理系统100根据客户端200预先设置的加密方法成功解密第一令牌时,同态加密操作密钥管理系统100可以确定第一令牌是有效的。否则,同态加密操作密钥管理系统100可以确定第一令牌无效,并且在步骤s403中,向第一服务器发送指示第一令牌无效的消息,而无需搜索或生成操作密钥。
71.在步骤s404中,同态加密操作密钥管理系统100可以在存储器120中搜索操作密钥。当找到操作密钥时,同态加密操作密钥管理系统100可以立即将找到的操作密钥发送到第一服务器300(步骤s405)。
72.在步骤s406中,响应于未在存储器120中找到操作密钥,同态加密操作密钥管理系统100可以使用对应于第一令牌的客户端120的一个或多个公钥来生成操作密钥。同态加密操作密钥管理系统100可以将生成的操作密钥发送到第一服务器300(步骤s405)。
73.图5是根据实施例的在同态加密操作密钥管理系统中生成同态旋转操作密钥的方法的示例。
74.在一个实施例中,同态加密操作密钥管理系统100可以使用从客户端200接收的一个或多个公钥生成多个同态旋转操作密钥。所述一个或多个公钥可以包括一个或多个分级伽罗瓦密钥和使用客户端200的私钥生成的公钥。同态加密操作的公钥可以表示为多项式。
75.在步骤s501中,同态加密操作密钥管理系统100可以从客户端200接收一个或多个公钥(例如,pk和mrkey)。
76.公钥pk可以被定义为私钥s、从有限个多项式集中均匀且随机提取的多项式“a”、小误差e和大常数c。
77.分级伽罗瓦密钥(mrkey)是一种公钥,可以响应于k步移位被定义为密钥s、从有限个多项式集中均匀且随机提取的多项式“a”、小误差e和大常数c。
78.在步骤s502中,同态加密操作密钥管理系统100可以对公钥pk进行部分变换以生成pk’,并使用分级伽罗瓦密钥(mrkey)对变换后的公钥pk’进行旋转操作,从而生成对应于k=1的旋转操作密钥rk1。
79.在步骤s503中,同态加密操作密钥管理系统100可以使用分级伽罗瓦密钥(mrkey)
对步骤s502中生成的旋转操作密钥rk1进行旋转操作,从而生成对应于k=2的旋转操作密钥rk2。
80.同态加密操作密钥管理系统100可以通过使用分级伽罗瓦密钥(mrkey)重复执行旋转操作来生成多个旋转操作密钥,并且当分级伽罗瓦密钥(mrkey)对应于k步移位时,所生成的多个旋转操作密钥可以对应于k步移位的倍数。
81.图6是根据实施例的多个客户端和多个服务器请求和接收同态加密操作密钥的序列图。根据实施例的多个客户端200a和200b可以从多个服务器300a和300b请求操作,并将同态加密操作密钥的生成委派给同态加密操作密钥管理系统(key management system,kms,100)。
82.第一客户端200a可以向kms 100发送第一令牌和公钥,以委派同态加密操作密钥的生成(步骤s601)。第一客户端200a可以在向第一服务器300a和第二服务器300b请求服务的同时发送第一令牌和密文(步骤s602和s603)。当在同态加密操作期间出现必要的操作密钥时,第一服务器300a可以向kms100发送第一令牌和必要的密钥信息,以便请求该必要的操作密钥(s604)。例如,kms 100可以根据图4的步骤验证第一令牌的有效性,并且可以在令牌的有效性被证明时将操作密钥发送到第一服务器300a(步骤s605)。当在同态加密操作期间出现必要的操作密钥时,第二服务器300b可以向kms 100发送第一令牌和必要的密钥信息,以便请求该必要的操作密钥(s606)。例如,kms 100可以根据图4的步骤验证第一令牌的有效性,并且可以在令牌被证明有效时将操作密钥发送到第二服务器300b(步骤s607)。当第二服务器300b根据来自第一服务器300a的请求来请求由kms 100生成的相同操作密钥时,kms 100可以立即将存储在存储器中的操作密钥发送到第二服务器300b,而不需要重新生成操作密钥(步骤s607)。
83.第二客户端200b可以向kms 100发送第二令牌和公钥,以委派同态加密操作密钥的生成(步骤s608)。第二客户端200b可以在向第二服务器300b请求服务的同时可以传输第二令牌和密文(步骤s609)。当在同态加密操作期间出现必要的操作密钥时,第二服务器300b可以向kms 100发送第二令牌和必要的密钥信息,以便请求该必要的操作密钥(s610)。例如,kms 100可以根据图4的步骤验证第二令牌的有效性,并且可以在令牌被证明有效时将操作密钥发送到第二服务器300b(步骤s611)。
84.当同态加密操作完成时,第一服务器300a和第二服务器300b可以分别向客户端200a和200b中的每一个发送包括操作结果的服务信息(步骤s612、s613和s614)。
85.第一令牌和第二令牌彼此不同,在加密状态下分别被发送到服务器300a和300b中的每一个,并且只能由由客户端200a和200b授权生成操作密钥的kms 100解密。
86.上述实施例可以由硬件组件、软件组件和/或硬件组件和软件组件的组合来实现。例如,实施例中描述的设备、方法和组件可以使用一个或多个通用或专用计算机来实现,例如处理器、控制器、算术逻辑单元(arithmetic logic unit,alu)、数字信号处理器、微型计算机、现场可编程门阵列(field programmable gate array,fpga)、可编程逻辑单元(programmable logic unit,plu)、微处理器或能够执行和响应指令的任何其他设备。处理设备可以执行操作系统(operating system,os)和在该操作系统上运行的一个或多个软件应用。此外,处理设备可以响应于软件的执行来访问、存储、操纵、处理和生成数据。为了便于理解,即使一个处理设备被描述为在一些情况下使用,本领域的普通技术人员将认识到
处理设备可以包括多个处理元件和/或多种类型的处理元件。例如,处理设备可以包括多个处理器或一个处理器和一个控制器。另外,可以采用诸如并行处理器的另一种处理配置。
87.软件可以包括计算机程序、代码、指令或其中一个或多个的组合,并且可以配置处理设备以按所需或独立或共同指示处理设备进行操作。软件和/或数据可以永久地或临时地体现在一种类型的机器、组件、物理设备、虚拟设备、计算机存储介质或设备或传输的信号波中,以便由处理设备解释或向处理设备提供指令或数据。软件可以通过联网的计算机系统分发,并以分布式方式存储或执行。软件和数据可以存储在一个或多个计算机可读记录介质中。
88.根据该实施例的方法可以以程序指令的形式实现,该程序指令可以通过各种计算机装置执行并记录在计算机可读介质中。计算机可读介质可以单独或组合地包括程序指令、数据文件、数据结构等。记录在介质中的程序指令可以是针对实施例专门设计和配置的,或者可以是计算机软件领域的技术人员已知和使用的。计算机可读记录介质的示例包括诸如硬盘,软盘,和磁带的磁介质,诸如cd-rom和dvd的光学介质、诸如软盘的磁光介质,专门配置为存储和执行程序指令的硬件设备,诸如rom、ram、闪存等。程序指令的例子不仅包括诸如由编译器生成的机器语言代码,还包括可以由计算机使用解释器等执行的高级语言代码。上述硬件设备可以被配置为作为一个或多个软件模块来执行实施例的操作,反之亦然。
89.根据本公开的各种实施例,客户端可以通过将操作密钥的生成委派给同态加密操作密钥管理系统并仅向服务器发送密文,而不需要直接生成同态加密操作所需的操作密钥来降低计算和通信成本。
90.根据各种实施例,同态加密操作密钥管理系统可以通过在合法服务器的请求下生成客户端的同态加密操作密钥,并根据需要将同态加密操作密钥存储在存储器中或从存储器中删除来有效地管理大容量的操作密钥。
91.如上所述,即使已经参考有限的实施例和附图描述了实施例,本领域技术人员也可以根据上述描述进行各种修改和变化。例如,即使所描述的技术以不同于所描述的方法的顺序执行,和/或系统、结构、设备、电路等的所描述的组件以不同于所描述的方法的形式组合或关联,或者被其他组件或等同物替换或替代,也可以实现适当的结果。因此,权利要求的其他实施方式、其他实施例和等同物也在以下权利要求的范围内。

技术特征:
1.一种同态加密操作密钥管理系统,包括:通信接口,被配置为支持使用安全协议进行通信;存储器;以及至少一个处理器,其可操作地耦接到所述通信接口和存储器,其中:所述存储器包括从多个电子设备中的每一个电子设备接收的令牌和一个或多个公钥;响应于所述通信接口从第一服务器接收到令牌和操作密钥请求,所述至少一个处理器对所述令牌的有效性进行验证;响应于所述令牌是有效的,基于对所述令牌进行解密获得的数据,使用用于所述多个电子设备中的第一电子设备的一个或多个公钥来生成一个或多个同态加密操作密钥;以及通过所述通信接口将所述第一电子设备的同态加密操作密钥发送到所述第一服务器。2.根据权利要求1所述的同态加密操作密钥管理系统,其中,当所述至少一个处理器基于所述第一电子设备预设的加密方法成功解密所述令牌时,所述至少一个处理器确定所述令牌是有效的。3.根据权利要求1所述的同态加密操作密钥管理系统,其中,所述令牌加密并且包括以下中的至少一项:所述第一电子设备的用户身份、允许的操作时间信息、允许生成的操作密钥的类型和范围、或由所述第一电子设备发出的随机数。4.根据权利要求3所述的同态加密操作密钥管理系统,其中,当对所述操作密钥的请求时间在基于所述允许的操作时间信息的允许范围之外时,所述至少一个处理器:不生成所述同态加密操作密钥;以及通过所述通信接口向所述第一服务器发送用于暂停使用所述同态加密操作密钥的消息。5.根据权利要求3所述的同态加密操作密钥管理系统,其中,所述至少一个处理器根据所述第一服务器的操作密钥请求的类型,通过检查所述随机数来验证所述令牌是否有效。6.根据权利要求1所述的同态加密操作密钥管理系统,其中:所述一个或多个公钥包括对应于k步移位的分级伽罗瓦密钥;所述至少一个处理器通过使用所述分级伽罗瓦密钥重复执行旋转操作来生成对应于所述k步移位的一个或多个同态旋转操作密钥。7.根据权利要求6所述的同态加密操作密钥管理系统,其中,所述至少一个处理器将所述同态旋转操作密钥存储在所述存储器中,并根据与所述第一电子设备协商的内容来设置所述同态旋转操作密钥的存储周期。8.根据权利要求1所述的同态加密操作密钥管理系统,其中,响应于在所述存储器中搜索所述第一电子设备所请求的操作密钥,所述至少一个处理器将存储在所述存储器中的所述操作密钥发送到所述第一服务器。9.一种管理同态加密操作密钥的方法,所述方法包括:从第一服务器接收令牌和对同态加密操作密钥的请求;对所述令牌的有效性进行验证,并且当所述令牌是有效的时,基于对所述令牌进行解密获得的数据,使用用于第一电子设备的一个或多个公钥来生成所述同态加密操作密钥;以及将所述同态加密操作密钥发送到所述第一服务器。
10.根据权利要求9所述的方法,其中,所述方法还包括当所述令牌无效时,向所述第一服务器发送指示所述令牌无效的消息。11.根据权利要求9所述的方法,其中,所述一个或多个公钥包括使用所述第一电子设备的私钥生成的分级伽罗瓦密钥。12.根据权利要求11所述的方法,其中,所述生成包括通过使用所述分级伽罗瓦密钥重复执行旋转操作来生成一个或多个同态旋转操作密钥。13.根据权利要求9所述的方法,其中,所述验证包括:当使用所述第一电子设备预设的加密方法解密所述令牌时,确定所述令牌是有效的。14.根据权利要求9所述的方法,其中,所述令牌加密并且包括以下中至少一项:所述第一电子设备的用户身份、允许的操作时间信息、允许生成的操作密钥的类型和范围、或由所述第一电子设备发出的随机数。15.根据权利要求14所述的方法,其中,所述生成包括当对所述操作密钥的请求时间在基于所述允许的操作时间信息的允许范围之外时,在不生成所述同态加密操作密钥的情况下,向所述第一服务器发送用于暂停使用所述同态加密操作密钥的消息。16.根据权利要求14所述的方法,其中:所述验证包括:根据所述第一服务器的操作密钥请求的类型检查所述随机数;以及响应于所述令牌是有效的,生成同态加密操作密钥。17.根据权利要求9所述的方法,其中,所述方法还包括根据与所述第一电子设备协商的内容设置所述同态加密操作密钥的存储周期,以及将所述同态加密操作密钥存储在存储器中。

技术总结
本发明涉及同态加密操作密钥管理系统和管理同态加密操作密钥的方法。同态加密操作密钥管理系统从客户端设备接收公钥和分级伽罗瓦密钥,响应于从服务器接收令牌和对客户端设备的同态加密操作密钥的请求来验证令牌的有效性,使用公钥和分级伽罗瓦密钥生成同态加密操作密钥,并且当令牌有效时将同态加密操作密钥发送到服务器。钥发送到服务器。钥发送到服务器。


技术研发人员:卢宗善 李俊雨 金荣植
受保护的技术使用者:朝鲜大学敎产学协力团
技术研发日:2023.02.08
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐