1.一种公钥加密设备(20),包括:
通信接口,其被配置为与私钥解密设备(10)通信;
处理器,其被配置为:
获得与所述私钥解密设备相关联的第一公钥矩阵(b),
获得传输密钥(k)的密钥大小,
根据所述密钥大小来生成传输密钥(k),
确定第二私钥矩阵(s)的矩阵大小以适应对所述密钥大小的所述传输密钥的掩蔽,
根据所述矩阵大小来生成第二私钥矩阵(s),并且根据所述第二私钥矩阵(s)来计算第二公钥矩阵(u),所述第二公钥矩阵(u)具有比所述第一公钥矩阵(b)少的矩阵元素,
根据所述第二私钥矩阵(s)和所述第一公钥矩阵(b)来计算第二原始共享密钥(k*),计算所述第二原始共享密钥包括所述第二私钥矩阵(s)与所述第一公钥矩阵(b)之间的矩阵相乘,
利用所述第二原始共享密钥的至少部分来掩蔽所述传输密钥(k),
将对所述密钥大小和/或所述矩阵大小的指示、所述第二公钥矩阵(u)以及经掩蔽的传输密钥(c)传送到所述私钥解密设备。
2.一种私钥解密设备(10),包括:
通信接口,其被配置为与公钥加密设备(20)通信;
处理器,其被配置为:
生成第一私钥矩阵(r),并且根据所述第一私钥矩阵(r)来计算第一公钥矩阵(b),并且允许将所述第一公钥矩阵(b)传送到所述公钥加密设备,
从所述公钥加密设备接收对密钥大小和/或矩阵大小的指示、第二公钥矩阵(u)和经掩蔽的传输密钥(c),所述第二公钥矩阵(u)具有比所述第一公钥矩阵(b)少的矩阵元素,
根据所述第二公钥矩阵(u)和所述第一私钥矩阵(r)来计算第一原始共享密钥(k'),计算所述第一原始共享密钥包括所述第二公钥矩阵(u)与所述第一私钥矩阵(r)之间的矩阵相乘,
使用所述第一原始共享密钥(k')的至少部分,根据接收到的大小对经掩蔽的传输密钥(c)进行解掩蔽,以获得传输密钥。
3.根据前述权利要求中的任一项所述的公钥加密设备或私钥解密设备,其中,
所述公钥加密设备的处理器被配置为与所述私钥解密设备执行握手,包括:
从所述私钥解密设备接收对所述私钥解密设备的至少两个第一公钥矩阵的至少两个指示,所述两个第一公钥矩阵具有不同的大小,
通过以下操作来选择第一公钥矩阵:确定所述公钥加密设备的密钥高速缓存是否包括所述两个第一公钥矩阵中的较大者,并且如果是这样,则选择较大的第一公钥矩阵,
将对所选择的第一公钥矩阵的指示发送到所述私钥解密设备,如果该第一公钥矩阵在所述密钥高速缓存中不可用,则请求该第一公钥矩阵,所述传输密钥(k)是利用所选择的第一公钥来封装的,或者
所述私钥解密设备的处理器被配置为与所述公钥加密设备执行握手,包括:
将对所述私钥解密设备的至少两个第一公钥矩阵的至少两个指示发送到所述公钥加密设备,所述两个第一公钥矩阵具有不同的大小,
从所述公钥加密设备接收对所选择的第一公钥矩阵的指示,如果接收到对所选择的第一公钥矩阵的请求,则发送所选择的第一公钥矩阵,所述传输密钥(k)是利用所选择的第一公钥来解封装的。
4.根据前述权利要求中的任一项所述的公钥加密设备或私钥解密设备,其中,
所述第二私钥矩阵(s)具有比所述第一公钥矩阵(b)少的矩阵元素,并且/或者
所述第二公钥矩阵(u)具有比所述第一私钥矩阵(r)少的矩阵元素。
5.根据前述权利要求中的任一项所述的公钥加密设备或私钥解密设备,其中,
所述第二公钥矩阵(u)具有第一系统维度(d)和第二维度
6.根据权利要求5所述的公钥加密设备或私钥解密设备,其中,
所述第二公钥矩阵(u)的第二维度
其中,所述第二公钥矩阵(u)的第二维度
7.根据前述权利要求中的任一项所述的公钥加密设备或私钥解密设备,其中,所述第二公钥矩阵(u)的第二维度
8.根据前述权利要求中的任一项所述的公钥加密设备或私钥解密设备,其中,
所述公钥加密设备的处理器被配置为:
获得与所述第一公钥矩阵(b)相关联的公共矩阵(a),并且其中,
计算所述第二公钥矩阵(u)包括所述第二私钥矩阵与所述公共矩阵(a)之间的噪声矩阵相乘,所述公共矩阵在所述公钥加密设备与所述私钥解密设备之间被共享,并且/或者
所述私钥解密设备的处理器被配置为:
生成公共矩阵(a),并且其中,
计算所述第一公钥矩阵(b)包括所述第一私钥矩阵(r)与所述公共矩阵(a)之间的噪声矩阵相乘,所述公共矩阵(a)在所述公钥加密设备与所述私钥解密设备之间被共享,所述第一公钥矩阵(b)与所述公共矩阵(a)相关联。
9.根据权利要求8所述的公钥加密设备或私钥解密设备,其中,所述噪声矩阵相乘包括从q个元素缩放到p个元素,其中,log2p/log2q≤0.85,
其中,所述公钥加密设备被配置为:
针对所述第二原始共享密钥的所述至少部分生成对帐数据(h),所述对帐数据包括允许减少在所述公钥加密设备和所述私钥解密设备处导出的第一原始密钥和第二原始密钥之间的差异的信息,并且将所述对帐数据(h)传送到所述私钥解密设备,
生成用于所述传输密钥的奇偶校验位,所述传输密钥和所述奇偶校验位根据纠错码来形成码字,掩蔽所述传输密钥包括封装所述码字,
并且/或者
其中,所述私钥解密设备被配置为:
针对所述第一原始共享密钥(k')的所述至少部分接收对帐数据(h),所述对帐数据包括允许减少在所述公钥加密设备和所述私钥解密设备处导出的第一原始密钥和第二原始密钥之间的差异的信息,将对帐函数应用于所述第一原始共享密钥和所述对帐数据的至少部分,并且
对经掩蔽的传输密钥(c)进行解掩蔽以获得近码字,并且根据纠错码来应用纠错。
10.根据前述权利要求中的任一项所述的公钥加密设备或私钥解密设备,其中,
所述公钥加密设备的处理器被配置为:至少基于所述传输密钥来导出最终密钥,利用所述最终密钥对消息(m)进行加密,并且将所述经加密的消息传送到所述私钥解密设备,并且/或者
所述私钥解密设备的处理器被配置为:从所述私钥解密设备接收经加密的消息,至少基于所述传输密钥来导出所述最终密钥,并且利用所述最终密钥对经加密的消息进行解密。
11.根据前述权利要求中的任一项所述的公钥加密设备或私钥解密设备,其中,所述传输密钥是随机的和/或短暂的和/或对称的和/或独立于所述第一公钥矩阵(b)。
12.根据前述权利要求中的任一项所述的公钥加密设备或私钥解密设备,其中,
所述公钥加密设备的处理器被配置为:计算帮助者数据以减少在所述私钥解密设备处获得所述传输密钥时的错误率,
所述私钥解密设备的处理器被配置为:从所述公钥加密设备接收帮助者数据,并且应用所述帮助者数据以降低在所述私钥解密设备处获得所述传输密钥时的错误率。
13.根据前述权利要求中的任一项所述的公钥加密设备或私钥解密设备,其中,
所述第二原始密钥是矩阵,掩蔽所述传输密钥(k)包括:将所述传输密钥的位与第二原始密钥矩阵的元素的至少部分的最高有效部分相加,并且丢弃所述第二原始密钥矩阵的元素的至少部分的零或更多个最低有效位,
所述第一原始密钥是矩阵,对经掩蔽的传输密钥进行解掩蔽包括:丢弃第一原始密钥矩阵的元素的至少部分的零或更多个最低有效位;从经封装的数据中减去所述第一原始密钥矩阵的元素的至少部分;并且对减法结果进行舍入。
14.根据前述权利要求中的任一项所述的公钥加密设备或私钥解密设备,其中,
所述公钥加密设备的处理器被配置为:从所述传输密钥导出所述第二私钥矩阵,并且/或者
所述私钥解密设备的处理器被配置为:根据所述传输密钥来重建所述第二私钥矩阵,并且验证对所述第二公钥的计算和/或对经封装的传输密钥的计算。
15.根据前述权利要求中的任一项所述的公钥加密设备或私钥解密设备,其中,
所述公钥加密设备的处理器被配置为:从公钥数据库获得所述第一公钥矩阵,并且/或者
所述私钥解密设备的处理器被配置为:将所述第一公钥矩阵存放在公钥数据库中。
16.根据前述权利要求中的任一项所述的公钥加密设备或私钥解密设备,其中,
所述第一公钥和所述第二公钥、所述第一私钥和所述第二私钥以及所述第一原始密钥和所述第二原始密钥是有限域或环上的矩阵。
17.一种公钥加密方法(400),包括:
与私钥解密设备建立(410)通信;
获得(420)与所述私钥解密设备相关联的第一公钥矩阵(b);
获得所述传输密钥(k)的密钥大小,
根据所述密钥大小来生成(430)传输密钥(k),
确定第二私钥矩阵(s)的矩阵大小以适应对所述密钥大小的所述传输密钥的掩蔽,
根据所述矩阵大小来生成(440)第二私钥矩阵(s),并且根据所述第二私钥矩阵(s)来计算第二公钥矩阵(u),所述第二公钥矩阵(u)具有比所述第一公钥矩阵(b)少的矩阵元素,
根据所述第二私钥矩阵(s)和所述第一公钥矩阵(b)来计算(450)第二原始共享密钥(k*),计算所述第二原始共享密钥包括所述第二私钥矩阵(s)与所述第一公钥矩阵(b)之间的矩阵相乘,
利用所述第二原始共享密钥的至少部分来掩蔽(460)所述传输密钥(k),
将对所述密钥大小和/或所述矩阵大小的指示、所述第二公钥矩阵(u)以及经掩蔽的传输密钥传送(470)到所述私钥解密设备。
18.一种私钥解密方法(500),包括:
与公钥加密设备建立(510)通信,
生成(520)第一私钥矩阵(r),并且根据所述第一私钥矩阵(r)来计算第一公钥矩阵(b),并且允许将所述第一公钥矩阵(b)传送到所述公钥加密设备,
从所述公钥加密设备接收(530)对密钥大小和/或矩阵大小的指示、第二公钥矩阵(u)和经掩蔽的传输密钥(c),所述第二公钥矩阵(u)具有比所述第一公钥矩阵(b)少的矩阵元素,
根据所述第二公钥矩阵(u)和所述第一私钥矩阵(r)来计算(540)第一原始共享密钥(k'),计算所述第一原始共享密钥包括所述第二公钥矩阵(u)与所述第一私钥矩阵(r)之间的矩阵相乘,
使用所述第一原始共享密钥(k')的至少部分,根据接收到的大小对经掩蔽的传输密钥(c)进行解掩蔽(550)以获得传输密钥。
19.一种瞬态或非瞬态计算机可读介质(1000),其包括表示使处理器系统执行根据权利要求17或18所述的方法的指令的数据(1020)。