CN110603782A - 共享用于密码协议中的矩阵的设备和方法 - Google Patents

共享用于密码协议中的矩阵的设备和方法 Download PDF

Info

Publication number
CN110603782A
CN110603782A CN201880029798.9A CN201880029798A CN110603782A CN 110603782 A CN110603782 A CN 110603782A CN 201880029798 A CN201880029798 A CN 201880029798A CN 110603782 A CN110603782 A CN 110603782A
Authority
CN
China
Prior art keywords
network node
values
matrix
sequence
selection data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201880029798.9A
Other languages
English (en)
Other versions
CN110603782B (zh
Inventor
O·加西亚莫尔琼
L·M·G·M·托尔胡伊泽恩
R·里特曼
S·巴塔查里亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips NV filed Critical Koninklijke Philips NV
Publication of CN110603782A publication Critical patent/CN110603782A/zh
Application granted granted Critical
Publication of CN110603782B publication Critical patent/CN110603782B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/047Key management, e.g. using generic bootstrapping architecture [GBA] without using a trusted network node as an anchor
    • H04W12/0471Key exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

提供了一种网络节点(110),其被配置用于基于共享矩阵的密码协议。网络节点被布置为根据选择数据和共享值序列来构建共享矩阵(A)。所述共享矩阵的多个条目被分配给如由所述选择数据分配的数据的序列的多个值。所述共享矩阵被应用在所述密码协议中。

Description

共享用于密码协议中的矩阵的设备和方法
技术领域
本发明涉及电子网络节点、用于被配置用于基于共享矩阵的密码协议的电子网络节点的电子方法、计算机可读介质。
背景技术
存在基于执行协议的两个节点之间共享的矩阵的多个密码协议。尽管共享矩阵通常是公共的,但是这两方在共享矩阵上操作,所述共享矩阵具有对于执行计算(例如,使用秘密信息)的一方私有的数据。攻击这样的密码协议导致基于格的问题,例如,攻击者被要求解决格问题,诸如最短向量格问题,以攻击协议。格问题被预期是量子安全的,并且因此这是搜索的活动区域。
这些协议中的几个将在本文中简要地被讨论为激励范例。然而,总之,节点通常将共享矩阵与其自己的私有信息组合。例如,网络节点可以计算共享矩阵与网络节点的私有向量或者矩阵的矩阵积作为密码协议的一部分。例如,噪声可以添加到计算的结果,例如以添加到乘法结果的噪声向量或矩阵的形式或者以结果的舍入或缩放的形式。在添加噪声之后,结果仍然包含关于私有密钥的足够信息以便执行用于另一节点的有用操作,例如,签名、加密、密钥协商等,而非足够信息以恢复另一节点的私有数据。密钥协调可以被用于校正加性噪声。
这样的基于格的密码学的起始点在于,这双方(例如,网络节点110和111)具有对共享矩阵的访问。该矩阵通常随机选择并且是相当大的。共享矩阵具有多个条目,并且每个条目具有值。例如,共享矩阵可以具有比如500乘500或甚至更大的维度。在例示计算中,我们将使用具有维度512=29的方形共享矩阵。共享矩阵中的条目通常以模数q为模,其可以是比如210。因此,共享矩阵可以表示大约29·29·210=228信息位。
尽管共享矩阵常常是公共的,并且可以被传送为纯数据,清楚地,这样的大量的信息是有问题的,特别是给定以下事实:密码协议的重要应用被预期是物联网,其中,资源限制节点在要被密码保护的数据上操作。例如,节点可以形成传感器网络。
减少由对在两个节点之间共享大矩阵的要求引起的开销的第一方式是许多次重新使用相同矩阵。遗憾的是,这导致密码问题。如果已知矩阵将使用在未来密码交换中,则攻击者可以在共享矩阵上执行广泛预计算。这样的预计算攻击的范例是例如对有限域Diffie-Hellman的logjam攻击。另一方面,如果新鲜共享矩阵被用于密码协议的每次执行,那么攻击者将被呈现有用于每次执行的新鲜格问题;因此,不重新使用相同矩阵是优选的。
减少由大共享矩阵引起的开销的第二方式是发送随机种子而不是共享矩阵。然后,随机种子被用于播种确定性随机数生成器,其继而生成共享矩阵。许多确定性随机数生成器是已知的。遗憾的是,以这种方式,传输开销交换计算开销。资源限制设备将需要计算长时间以生成共享矩阵。问题能够仅有害于同时处理许多同时计算的大型服务器。此外,如果攻击者能够使这样的服务器执行许多随机数生成,则其将导致拒绝服务攻击。攻击者可以开始与服务器的许多连接并且在服务器被投入根据随机种子生成共享矩阵之后将其放弃。
发明内容
提供了一种解决这些和其他问题的被配置用于基于共享矩阵的密码协议的电子网络节点。共享矩阵具有多个条目并且每个条目具有值。为了便于参考,网络节点将被识别为第一网络节点,将其和与其通信的第二网络节点区分。形容词“第一”和“第二”不具有另外的意义。
第一网络节点包括:
-通信接口,其被布置用于与第二网络节点数字通信,
-处理器电路,其被配置为:
-获得用于所述共享矩阵的条目的值序列,所述值序列是与第二网络节点共享的,
-从所述第二网络节点接收选择数据,或者确定选择数据并且将所述选择数据发送到所述第二网络节点,所述选择数据指示所述值序列中的多个位置并且向所述共享矩阵的多个条目分配由所述选择数据指示的值序列的值,
-根据所述选择数据构建所述共享矩阵,将所述共享矩阵的所述多个条目设置为由所述选择数据分配的多个值,
-将所述共享矩阵应用在所述密码协议中。
选择数据可以利用比所述值序列可以利用的更少得多的位描述。例如,在实施例中,所述选择数据的位大小小于由所述选择数据指示并且分配给所述共享矩阵的条目的值序列的值(优选地小于一半、优选地小于1/10)。例如,在一些实施例中,将数据分配给所述共享矩阵中的条目组所需的选择数据量小于描述所述数据自身需要的数据量的1/100。如果选择数据由随机数生成器生成,那么较少数据需要生成而不是生成共享矩阵自身中的值的,而不管这是否在发送选择数据的节点处或者在接收选择数据的节点处发生。特别地对于节点(例如,服务器)而言,利用第二节点的许多连接,这实现操作所述网络节点中的实质性差异。与用于发送所述数据自身的所需带宽相比较,也获得实质性减少。
在实施例中,节点对所述值序列进行高速缓冲并且将其用于多个连接。例如,在实施例中,节点可以发送或者接收序列标识符以识别要使用的所述值序列。所述标识符可以例如是所述值序列上的散列,但是在有利的实施例中,所述序列标识符包括可以从其生成所述值序列的随机种子。以这种方式,序列标识符的接收器可以要么从高速缓冲存储器检索所述序列标识符要么可以生成所述值序列。
即使下层值序列相同,攻击者将针对以这种方式共享的不同矩阵获得的格是不同的。特别地如果不同格的数目是较大的,则攻击者的优点显著减少。
所述网络节点是电子设备。所述网络节点可以是移动电子设备,诸如移动电话。所述网络节点可以是机顶盒、智能卡、计算机等。
共享本文所描述的矩阵的方法可以应用在各种各样的实际应用中。这样的实际应用包括金融应用,例如,以共享信用卡信息、隐私增强应用,例如,消息传递应用、中间应用等。
根据本发明的方法可以在计算机上或者在专用硬件或者在两者的组合中被实现为计算机实现的方法。根据本发明的方法的可执行代码可以被存储在计算机程序产品上。计算机程序产品的范例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,所述计算机程序产品包括被存储在计算机可读介质上的非瞬态程序代码以用于当所述程序产品在计算机上执行时执行根据本发明的方法。
在优选的实施例中,计算机程序包括适于当所述计算机程序在计算机上运行时执行根据本发明的方法的所有步骤的计算机程序代码。优选地,计算机程序被实现在计算机可读介质上。
根据本发明的另一方面提供一种使所述计算机程序可用于下载的方法。该方面当所述计算机程序被上传到例如Apple的App Store、Google的Play Store或者Microsoft的Windows Stores中时并且当所述计算机程序可用于从这样的商店下载时被使用。
附图说明
将仅通过范例参考附图描述本发明的其他细节、方面和实施例。附图中的元素为了简单和清晰而图示并且不一定按比例绘制。在附图中,对应于已经描述的元素的元素可以具有相同附图标记。在附图中,
图1示意性地示出了密码系统的实施例的范例;
图2a、2b、2c示意性地示出了选择数据的实施例的范例;
图3a示意性地示出了密码系统的实施例的范例;
图3b示意性地示出了密码协议的细节的实施例的范例;
图4示意性地示出了用于共享矩阵的方法的实施例的范例;
图5a示意性地示出了根据实施例的具有包括计算机程序的可写部分的计算机可读介质;并且
图5b示意性地示出了根据实施例的处理器系统的表示。
图1-3b中的附图标记列表:
100 密码系统
110 第一电子网络节点
111 第二电子网络节点
120 通信接口
130 基本数据管理器
140 矩阵生成单元
150 密码单元
152 矩阵乘法单元
160 伪随机数生成器
170 基本数据存储器
210 值序列
221、222 值
230 共享矩阵
231、232 共享矩阵中的条目
233 选择数据
241、242 第一组
251、252 第二组
260 基矩阵
261-263 行
300 密码系统
310 服务器
320 客户端
320.1-320.3
331-333 传输
具体实施方式
尽管本发明容许许多不同的形式的实施例,但是在附图中示出并且在本文中将详细描述一个或多个特定实施例,应理解本公开要被认为是本发明的示范性原理而不旨在将本发明限于所示和所描述的特定实施例。
在以下中,为了理解,在操作中描述了实施例的元素。然而,将显而易见,相应元素被布置为执行被描述为由其执行的功能。此外,本发明不限于实施例,并且本发明位于每个和每一个新颖特征或者上文所描述或者在相互不同的从属权利要求中记载的特征的组合中。
图1示意性地示出了密码系统100的实施例的范例。密码系统100包括多个网络节点。在图1中示出了第一网络节点110和第二网络节点111。对于大部分而言,节点110和111具有相同设计,除了在其具有发送器-接收器关系之外的情况下。系统100中的网络节点被配置为基于共享矩阵执行密码协议;特别地,第一网络节点110和第二网络节点111被配置用于这样的密码协议。优选地,新鲜共享矩阵被用于密码协议的每次执行。
网络节点110包括密码单元150。密码单元150被布置为使用共享矩阵执行密码协议。如在背景中指出的,许多这样的密码协议存在,并且全部要求双方之间共享的大矩阵。常常在共享矩阵与网络节点的私有向量或者矩阵之间计算矩阵积作为密码协议的一部分。例如,密码单元150可以包括被布置为计算所述矩阵乘法的矩阵乘法单元152。
使用共享矩阵的密码协议的第一范例是密钥交换协议。例如,第一节点可以被配置为:
-生成私有密钥矩阵(SI),
-生成公共密钥矩阵(PI),所述生成包括至少:
-计算共享矩阵(A)与私有密钥矩阵(SI)之间的矩阵积,从而获得矩阵积,
-将第一网络节点的公共密钥矩阵发送到第二网络节点,
-接收第二网络节点的公共密钥矩阵(PR),
-计算原始密钥作为第二节点的接收到的公共密钥与第一网络节点的私有密钥矩阵之间的矩阵积,其中,第一网络节点还被配置为根据至少原始密钥计算共享密钥。
通过在所述公共密钥矩阵(PI)的生成期间引入噪声,应当避免攻击者可以根据公共密钥和共享密钥的知识重建私有密钥。该密钥协商协议基于以下事实:除了加性噪声之外,对于第一网络节点和第二网络节点两者相同。计算共享矩阵(A)与私有密钥矩阵(SI)之间的矩阵积以模数为模完成。节点之一可以计算密钥协调数据并且将其发送到另一节点,以确保根据矩阵积计算相同共享密钥。在J.Bos,C.Costello,L.Ducas,I.Mironov,M.Naehrig,V.Nikolaenko,A.Raghunathan,D.Stebila.“Frodo:Take off the ring!Practical,Quantum-Secure Key Exchange from LWE.”的文章中给定基于格的密钥协商协议的更详细描述(通过引用包括在本文中并且被称为“Frodo”)。
基于格的密码协议的第二范例是公共密钥加密/解密算法。例如,网络节点可以被配置为:
-获得第二网络节点的公共密钥,所述公共密钥包括选择数据,以及另外的公共密钥矩阵(B),另外的公共密钥矩阵先前已经从共享矩阵和私有密钥矩阵(S)获得,
-选择随机向量r,并且计算随机向量(r)与共享矩阵之间以及随机向量(r)与另外的公共密钥矩阵之间的两个矩阵积(例如,a′=ATr,b′=BTr),
-通过添加根据两个矩阵积中的第一个计算的盲向量根据明文消息计算加密消息,加密消息还包括根据两个矩阵积中的第二个计算的解密信息。
而且在该范例中,可以添加噪声(例如,以缩放的形式)。可以在J.H.Cheon,D.Kim,J.Lee,Y.Song:“Lizard:Cut off the Tail!Practical Post-Quantum Public-KeyEncryption from LWE and LWR”的文章中找到基于格的公共密钥加密协议的详细范例(通过引用包括在本文中)。
返回图1。因此,存在如何获得两个节点之间的共享的矩阵的问题。共享矩阵具有多个条目,每个条目具有值。我们将参考矩阵的行和列。在范例中,行数和列数中的至少一个大于50、100、500等。为了方便起见,共享矩阵可以是方形,但是这不是必要性。矩阵可以是向量(例如,当维度之一是1时),然而获得大多数优点,因为这两个维度是大的(例如,当行数和列数两者大于50、100、500等)。
第一网络节点和第二网络节点各自包括通信接口120。第一网络节点110的通信接口120被布置用于与第二网络节点111数字通信。通常,通信接口120被布置为与系统100中的其他节点中的许多节点通信。
通信接口可以被布置用于与密钥协商系统中的其他节点数字通信。尽管可以一直到达系统中的所有节点,但是这是不必要的。通信接口120被布置用于数字通信。例如,通信接口可以被布置为通过计算机网络通信。例如,通信接口可以被布置用于无线通信(例如,Wi-Fi、ZigBee、蓝牙等)和/或有线通信(例如,以太网、USB等)。节点110与111之间的通信也可以是有线和无线连接的组合。例如,系统100中的节点(包括节点110和111)可以包括包含通信标识符的电子存储设备,所述通信标识符唯一识别系统100内的节点。例如,通信标识符可以包括在节点110与111之间交换的数字消息中,例如以寻址消息。例如,通信标识符可以是IP地址、MAC地址等。
电子网络节点被配置用于密码协议,诸如上文给出的密钥交换或者公共密钥加密协议范例。协议包含通过通信接口120和220在节点110与210之间交换消息,并且在例如从另一节点接收到的数据上执行计算。协议的执行被实现在处理器电路中,下面示出了其范例。图1示出了可以是处理器电路的功能单元的功能单元。例如,图1可以被用作处理器电路的可能功能组织的蓝图。处理器电路未示出与图1中的单元分离。例如,图1中所示的功能单元也可以全部或者部分实现在存储在网络节点处并且可由网络节点的微处理器执行的计算机指令中。在混合实施例中,功能单元部分地被实现在硬件中(例如,作为协处理器(例如,密码协处理器)),并且部分地在被存储并且被运行在设备100上的软件中。
网络节点110包括被布置为获得用于共享矩阵的条目的值序列的基本数据管理器130,值序列与第二网络节点共享。网络节点110还包括被布置用于存储共享值序列(例如,在其已经获得之后)的基本数据存储器170。
类似共享矩阵A中的条目,值序列中的值可以被选择为以模数为模。值序列还被称为基本数据或者基本值等。值序列将被用于填充共享矩阵。发明人的洞察在于,从值序列到共享矩阵的条目的映射可以在更少得多的位中传送,或者可以从比值序列自身更短的伪随机输出来计算。通过改变共享矩阵根据值序列构建的方式,可以从相同基本数据获得大量的不同共享矩阵。因此,每次使用不同共享矩阵的密码优点与重新使用相同值序列的低开销组合。
存在基本数据管理器130可以获得与第二网络节点共享的基本数据的许多方式。
在第一范例中,基本数据存储器170预存储值序列。例如,系统100中的多个网络节点可以在某一点(例如,在第一次使用时、在制造期间、在受信任位置处等)被提供有序列。共享值序列可以是固定序列,例如,固定在标准中等。在这种情况下,基本管理器130比提供对值序列的基本数据存储器170的访问权要做得更少。存储共享值序列的该类型基本数据存储器170或其一部分的实施例可以是ROM存储器。
在第二范例中,从受信任第三方获得值序列。例如,周期性地,基本数据管理器130联系受信任第三方(例如,通过计算机网络)以获得新的值序列。例如,基本数据管理器可以被配置为周期性地(例如,每30天一次(例如,在每个新月份开始时等))获得这样的新序列。
为了降低传输开销,基本数据管理器130可以获得共享值序列作为随机种子。例如,第一网络节点110可以包括确定性伪随机数生成器160。伪随机数生成器可以利用随机种子播种并且被用于计算值序列。种子可以从各种源获得(例如,预编程(例如,在制造期间),例如,从第二网络节点接收,例如,从受信任第三方接收等)。选择数据还可以在第一网络节点处生成并且发送到第二网络节点。
值序列被用于密码协议的多次执行,例如,值序列被使用至少两次以构建与第二网络节点共享的至少两个不同共享矩阵。在实施例中,值序列与多个网络节点(例如,系统100的多个网络节点中的每一个)共享。后者是不必要的,但是例如特定值序列可以仅由第一网络节点和第二网络节点使用;例如,首先第一网络节点和第二网络节点交互,其可以交换随机种子以生成此后在其之间使用的值序列。下面描述了使用序列的高速缓冲的另外的实施例。
伪随机数生成器160可以是快速线性反馈生成器(诸如Mersenne绞扭器)。然而,密码安全随机数生成器是优选的。例如,伪随机数生成器160可以满足所谓的下一位(next-bit)测试。即,给定随机序列的前k位,不存在可以在不可忽略地好于50%的成功概率的情况下预测第(k+1)位的多项式时间算法。存在已知的许多密码安全随机数生成器(例如,在计数器模式中运行的分组密码,例如,计数器模式中的高级加密标准)。安全随机数生成器还可以通过在计数器模式中运行散列函数(例如,SHA-256等)获得。还可以保证Mersenne绞扭器(例如,通过使密码流密码对基于来自Mersenne绞扭器的输出)。其他范例包括Blum-blum-shub生成器、Blum-Micali生成器等。
网络节点110包括矩阵生成单元140。矩阵生成单元140被布置为根据选择数据构建共享矩阵(A),将共享矩阵的所述多个条目设置为由选择数据分配的多个值。因此,选择数据描述了共享值序列与共享矩阵中的条目之间的映射。可以从第二网络节点获得选择数据(例如,通过通信接口120)。值序列通过选择数据被变换为实际共享矩阵A。
生成单元140还可以确定选择数据自身并且向第二网络节点发送选择数据。例如,如果选择数据包括如在各种实施例中所图示的元组、置换、旋转参数等,那么生成单元140可以随机选择这些作为所生成的选择数据。所生成的选择数据可以发送到第二网络节点。如果选择数据从确定性随机数生成器导出,那么生成器的种子可以代替地发送到第二网络节点。
因此,选择数据指示值序列中的多个值并且向共享矩阵的多个条目分配由选择数据指示的值序列的值。在实施例中,共享矩阵的所有条目从值序列接收其值,然而,不需要每个条目从由选择数据指示的值序列中的位置接收该值;共享矩阵中的一些条目可以从值序列中的固定位置接收其值。参考图2a、2b和2c解释了多个范例。
图2a示意性地示出了选择数据的实施例的范例。选择数据识别值序列210中的位置,示出了要分配给共享矩阵230中的位置的值221和222,示出了条目231和232。
例如,选择数据可以包括元组的序列,每个元组包括值序列中的索引和共享矩阵中的索引。例如,值序列可以线性索引(例如,顺序计数),例如,使用自然数。例如,共享矩阵还可以利用单个数索引(例如,顺序地编号),但是还可以通过x和y坐标(例如,分别地指示列和行)索引。选择数据可以例如包括{(4,(2,5)),(7,(3,3)),.…}以指示值序列中的索引x处的值要定位在共享矩阵的位置(2,5)处等。选择数据不包括共享矩阵中的条目的实际值,代替地共享矩阵的实际值选自值序列。在实施例中,选择数据可以利用修正数据补充。例如,修正数据可以包括指示共享矩阵中的值要如何改变(例如,通过包括增量或者减量,或者包括新值)的数据。这样的修正数据也可以由生成单元140应用。修正数据被认为是较不有利的:发送新值要求许多位,并且修正数据中的每个条目仅影响共享矩阵的单个元素,而选择数据可以利用仅几个位指定,但是可能影响共享矩阵的大量的条目。小增量/减量可以利用较少位指定,但是其可以对所得格产生比较小的影响,并且实际上可能消失在与共享矩阵的矩阵乘法之后添加的噪声中。
可能发生的是,共享矩阵的某个位置(i,j)未出现在选择数据中。这可以通过向位置给定默认值(例如,预定值)解决。这还可以通过向位置给定来自值序列中的默认位置的值解决。
例如,选择数据可以包括置换。分配可以然后通过以下来工作:根据置换将值序列置换并且根据默认分配将置换的值序列分配给共享矩阵的条目。例如,如果置换被指代为从值序列中的位置1至mn映射到m×n矩阵A中的条目的双射函数σ,对于编号共享矩阵A中的条目的某种默认方式,例如逐行或者逐列等。选择数据可以包括置换σ的表示,并且分配可以通过根据索引A的默认方式向索引i分配位置σ(i)处的序列210的值工作。置换还可以以相反方式使用,例如,序列中的索引i处的值可以分配给矩阵中的条目σ(i)。
矩阵A的一部分可以对应序列的固定元素,使得不需要要么以元组要么以置换完全指定序列210与矩阵230之间的映射。其满足存在可以使用选择数据获得的足够数目的不同矩阵。
图2b示意性地示出了选择数据的实施例的第一范例。存在减少指定序列210与矩阵230之间的映射需要的位数的各种方式,其中之一关于图2b图示。在值序列210中,定义一个或多个第一组,示出了第一组241和242。在矩阵230中,定义一个或多个第二组,示出了第二组251和252。此处矩阵230中的第二组对应于序列210中的每个第一组。序列210的条目与矩阵230的条目之间的映射可以限于将第一组的元素映射到对应的第二组的元素的映射。可以随机选择第一组和第二组。在图2b中,第一组顺序选择,但是第二组随机选择。其他选择是可能的。例如,第二组也可以是顺序的,例如,行或列等。
可以由选择数据指示的映射可以通过限制允许映射的数目进一步限制。例如,在范例中,映射是循环置换。
图2c示意性地示出了选择数据的实施例的第一范例。在该范例中,基本数据形成基矩阵260,例如,值序列的元素数目与共享矩阵中的条目数目相同,并且可以类似地索引。在这种情况下,选择数据可以通过定义基矩阵上的置换指示共享矩阵。例如,选择数据可以通过指示所述行和/或列旋转的条目的数目指示基矩阵的行和/或列的循环置换。例如,选择数据可以包括数目的序列,序列的每个数目指示对应于数目的基矩阵的行的太多地方的旋转。
在实施例中,选择数据是允许接收方找到改变矩阵的信息;例如,数目的序列,其中第i个数目指示A的第i行矩阵在多少位置上旋转;或者(行索引、旋转顺序)对的序列。使用较少数目是可能的。
注意,指定来自序列中的基本数据的共享矩阵(例如,在基本矩阵中)的数据量可以比共享矩阵自身中的数据量小得多。例如,考虑图2c,对于维度512和模2048的方形矩阵。仅需要9位来指定行上的循环置换,而需要512*12位来指定行自身中的数据。因此,在该范例中,指示基矩阵的行中的哪些值转到共享矩阵中的哪个位置的选择数据的一部分是9位,其是9/(512*12)<1/100行中的数据的大小。
以上方法中的每一个能够根据单个值序列生成大量的不同共享矩阵。例如,使用系统旋转基矩阵的行仅需要用于8行的旋转参数,以针对值210的随机序列产生(29)8个不同共享矩阵。所述数目(29)8大于264,264可以作为安全参数。对于该范例,其足以发送八对(行索引,循环置换顺序),从而实现仅8*(9+9)位。如果要被旋转的行是预定的,则所需的数据量另外减少到8*9位。然而,分别使用用于15和29行或列的15和29个旋转参数,较大数目的不同矩阵A使用选择数据中的更多参数(例如,大于2128、大于2256等)是容易可能的。在实施例中,旋转参数的一部分旋转行,而旋转参数的一部分旋转列。这具有以下优点:旋转同样地与用于这两个节点的矩阵乘法不相容(例如,在其中节点中的一个使用左乘并且另一个使用右乘的情况下)。在又一实施例中,利用方形矩阵,旋转关于矩阵的(循环)对角线发生。
共享矩阵中的一些值可以具有序列的默认值。例如,一些行可以总是等于序列的一些预定值。
选择数据可以以至少两种不同方式通信。在第一选项中,选择数据直接表示序列中的哪个条目映射到共享矩阵的哪个条目。这可以是构建矩阵A的非常高效的方式。例如,为了根据选择数据中的参数计算,值序列中的至少一个条目和共享矩阵中的至少一个条目可以在参数中是线性的。即,在从值序列到共享矩阵的映射中发生的p的指数是至多1。使用图2b和2c的表示,计算新位置对用于基矩阵的行中的条目的数目的行取模或者计算随机第一或第二组中的索引是单个计算。
例如,让值序列中的第一组是编号x…x+m-1的条目,我们将假定共享矩阵的行具有m个元素。让p是指示该组中的条目的数目旋转的选择数据中的参数。让第二组是矩阵的第k’行。A中的条目从零开始逐行编号。行也从零开始计数。在这种情况下,序列中的条目x+i可以映射到条目km+((i+p)mod m)。以上计算在p方面是线性的。我们可以概括该映射使得具有mj元素的第一组j中的第i个元素被映射到Tj((i+pj)mod mj),其中,Tj是表,例如,查找表。此处,j关于组数运行。在实施例中,人们可以针对所有j采取mj=m。组数可以等于行数,但是这不是必要的。例如,人们可以默认值,例如针对某个参数pj的0。表Tj可以是行,例如,仅添加如上文的行的第一索引,但是其还可以将第一组映射到更复杂的集合。在实施例中,Tj映射到不规则结构。范例将是矩阵的车(rook)图的独立集合(仅针对方形矩阵)。实际上,Tj可以甚至形成拉丁(Latin)方设计。
表示选择数据的备选方式是作为随机种子。例如,确定性伪随机数生成器160可以利用随机种子播种,并且从确定性伪随机数生成器的输出获得值序列中的多个值和/或共享矩阵的多个条目的指示。表示选择数据的以上方式中的任一种可以连同种子表示一起使用,因为个人可以根据随机数生成器的输出生成选择数据。例如,在实施例中,选择数据可以旋转比如基矩阵的行1、5、13、27和37选择数据中指定的量。在这种情况下,选择数据可以直接地包含行或列索引和旋转量,或者选择数据可以包括随机种子。在后者情况下,可以从随机数生成器160的输出取得旋转量。
注意,在所有这些范例中,可以从第二节点111接收选择数据,在这种情况下,节点110根据选择数据从值序列构建共享矩阵。备选地,节点110可以生成选择数据(例如,随机地,例如,从种子)并且接下来将选择数据要么作为直接数据要么作为随机种子发送到第二节点。
图3a示意性地示出了密码系统300的实施例的范例。服务器300包括服务器310和多个客户端。示出的是客户端320.1、320.2和320.3。可以存在许多客户端。例如,服务器310可以是通过数字网络将数字服务递送给客户端的计算机。例如,服务器310可以是网店。客户端可以使用网络浏览器浏览由服务器310操作的网站和来自网站的订单。服务器与客户端之间的通信可以加密和/或认证。例如,服务器和客户端可以执行密钥交换协议。系统300被组织以降低与计算用于服务器310的许多不同共享矩阵相关联的开销。
服务器310可以被组织为图1中所示的第一网络110,除了基本数据存储器170被布置为高速缓冲存储器,其被布置为将值(A1,A2)的序列连同识别所述高速缓冲的值序列的对应的序列标识符一起高速缓冲。高速缓冲存储器170可以将多个值序列与相关联的序列标识符一起存储。例如,可以存在两个或两个以上基矩阵A1、A2等,但是这不是必要的。
基本数据管理器130被布置为通过从第二网络节点接收序列标识符获得序列并且验证对应于接收到的序列标识符的值序列是否高速缓冲在高速缓冲存储器中以及这样的值序列是否未高速缓冲在高速缓冲矩阵中,从第二网络节点获得值序列。获得序列可以以上文所描绘的方式中的任一种实现。在该实施例中,第二网络节点(例如,客户端)可以然后被布置为将序列标识符发送到对应于高速缓冲在高速缓冲存储器中的值序列的服务器。在实施例中,如果消息从没有具有该标识符的基矩阵由第二网络节点高速缓冲的第二网络节点接收,则网络节点可以被布置为与第二网络节点共享基矩阵(A)(例如,通过发送矩阵、或产生矩阵的种子)。
该布置稍微减少服务器310上的负载,例如,如果通信利用相同节点执行两次,或者如果许多节点使用相同值序列。然而,在实施例中,角色反转并且基本数据管理器130被布置为选择对应于高速缓冲在高速缓冲存储器170中的值序列的第二网络节点的序列标识符。以这种方式,与例如根据随机种子生成基矩阵相关联的开销极大地在服务器310处避免。
在服务器310与客户端320之间随后交换的选择数据可以然后使用由序列标识符识别的值序列来构建共享矩阵。
在实施例中,序列标识符包括另外的随机种子。确定性伪随机数生成器利用另外的随机种子播种。从播种的确定性伪随机数生成器的输出获得值序列。通过将另外的随机种子包括在序列标识符中,不使序列高速缓冲的一方可以当需要时计算。
在图3b中图示了这些选项中的一些,图3b示意性地示出了服务器310与客户端320(例如,图3a中所示的客户端之一)之间执行的密码协议的细节的实施例的范例。
从客户端320发送到服务器310的第一消息331包括消息请求。其可以包括额外的信息,诸如用于客户端320的标识符。作为响应,服务器310向客户端320发送第二消息332。第二消息332包括序列标识符,例如,包括另外的随机种子。服务器310已经高速缓冲对应的值序列,例如,在已经根据另外的随机种子将其计算一次之后。值序列可以为基矩阵的形式。消息332还可以包括由服务器310生成的选择数据。消息332中的选择数据可以或可以不为随机种子的形式。消息332还可以包含由服务器310生成的协议信息,其是可能的,因为这时候服务器310具有对共享矩阵的访问权。例如,在如上文所描述的密钥交换协议中,消息332可以包括针对该密钥交换执行生成的公共密钥。在接收消息332之后,客户端320可以从其高速缓冲存储器检索值序列,或者,如果值序列不存在于高速缓冲存储器中,则根据序列标识符中的另外的随机种子生成值序列。此外,客户端320可以根据值序列和选择数据构建共享矩阵。使用构建的共享矩阵,客户端320可以生成协议中的另外的值,并且利用消息333将其返回。例如,如果这是密钥交换协议,那么消息333可以包含根据共享矩阵由客户端320生成的公共密钥和客户端320的私有密钥。消息320还可以包含利用从其自己的私有密钥导出的密钥和包含在消息332中的公共密钥加密的加密信息。例如,加密数据可以包含比如客户端320的用户的信用卡号。服务器310当其接收消息333时可以使用公共密钥和其自己的私有密钥矩阵获得加密密钥并且解密加密数据,例如,以获得信用卡号。
许多变型在以上协议上是可能的,例如,在第一变型中,选择数据未被选择或者不仅由服务器310选择并且在消息320中发送,但是被选择或者也由客户端320选择并且在消息333中发送到服务器310。在后者情况下,有利的是,消息3333中的选择数据直接地确定由序列标识符识别的值序列与共享矩阵之间的映射,而不使用随机种子生成它。例如,每个节点可以指定基矩阵的置换。特定一个,比如协议的发起节点,可以首先应用他的置换,跟随有响应节点的置换。
在各种实施例中,通信接口可以选自各种备选方案。例如,通信接口可以是局域网或者广域网(例如,因特网)的网络接口、内部或者外部数据存储设备的存储接口等。
基本数据存储器170可以被实现为电子存储器(比如闪存)或者磁性存储器(比如硬盘)等。基本数据存储器170可以包括一起组成基本数据存储器170的多个分立存储器。基本数据存储器170还可以是临时存储器(比如RAM)。在临时基本数据存储器170的情况下,基本数据存储器170包含在使用之前获得参数的一些装置,比如通过在任选网络连接(未示出)上获得其。
通常地,设备110和111各自包括微处理器(未单独示出),其执行被存储在设备110和111处的适当的软件;例如,该软件可能已经被下载和/或被存储在对应的存储器(例如,易失性存储器(诸如RAM)或者非易失性存储器(诸如闪存)(未单独示出))中。设备310和320.1-3还可以装备有微处理器和存储器(未单独示出)。备选地,设备110和111可以全部或者部分地以可编程逻辑实现,例如,作为现场可编程门阵列(FPGA)。设备110和111可以全部或者部分地被实现为所谓的专用集成电路(ASIC),即,针对其特定用途定制的集成电路(IC)。例如,电路可以以CMOS实现,例如,使用硬件描述语言,诸如Verilog、VHDL等。
在实施例中,第一网络节点110包括通信接口电路、基本数据管理器电路、矩阵生成单元电路、密码单元电路、矩阵乘法单元电路、伪随机数生成器电路等。设备100可以包括额外的电路,例如,高速缓冲电路等。电路实现本文所描述的对应单元。电路可以是处理器电路和存储电路,处理器电路执行电子地表示在存储电路中的指令。
处理器电路可以以分布式方式实现,例如,作为多个子处理器电路。存储设备可以被分布在多个分布式子存储设备上。存储器的部分或者全部可以是电子存储器、磁性存储器等。例如,存储设备可以具有易失性和非易失性部分。存储设备的部分可以是只读的。电路还可以是FPGA、ASIC等。
下面描述了减少依赖于大矩阵的密钥交换方案中的带宽和计算要求等的多个额外的实施例。这对于必须处理许多连接的服务器是特别有帮助的,因为如果该服务器将必须处理许多连接,则其可以被用于减少服务器侧的计算努力。在实施例中,建议:
-具有长度L≥mn的值P的公共静态序列。
-交换发起者与服务器之间的种子以获得{1,...,L}的置换r。r然后被用于获得使用在密钥交换中的公共m×n矩阵A。A的顶行等于其第二行等于并且其底行等于
性能是更好的,因为r中的元素小于A中的元素并且因此可以更快并且更高效地计算。可以以多种方式获得值序列。例如:
-实施例0:其可以是静态参数。
-实施例1:发起者针对所有通信每天发布种子值。
-实施例2:发起者针对所有通信每天发布矩阵A。
-实施例3:发起者可以针对长时间段发布种子_长,其中较短时间段的种子可以计算,诸如种子=PRF(种子_长|时间)。
在一些设置中,更有意义的是,应答者发布种子,因为能够常常发生的是,应答者是处理许多连接的服务器。该种子还可以根据以上实施例中的任一个独立于服务器和客户端由受信任第三方计算。发起者和应答者可以被当作第一网络节点和第二网络节点或者反之亦然。例如,发起者可以是发起密码协议的网络节点。然而,可以使用其他准则,例如,发起者可以被定义为使用密钥协调数据的网络节点,而应答者生成密钥协调数据(密钥协调数据是被用于确保双方到达相同共享密钥的数据)。
实施例4描述了提供存储器与CPU之间的好的折中的另外的实施例。
-发起者或应答者或第三方发布被用于计算m×n矩阵A0的第一种子。发起者计算第二种子'并且应用伪随机函数(PRF)以获得数目[0,…,mn-1]的随机置换r。
-发起者向应答者发送种子'。
-应答者获得r并且根据置换重新排列A0的条目以获得A。
-一旦发起者和应答者已经获得A,协议的剩余部分跟随上文。
实施例4的进一步的扩展:
-构建公共序列P,例如,长度L≥mn的值序列或基矩阵。交换发起者与服务器之间的种子以获得{1,..,L}的置换r,r然后被用于获得使用在密钥交换中的公共m×n矩阵A。A的顶行等于其第二行等于并且其底行等于
-不严格要求r是置换。足够的是,对于1≤i≤mn,认为1≤ri≤L。
-在实施例中,PRF被用于生成位的序列,其然后被转换为置换。
例如,我们可以生成A位,其中,2A≥L!。我们可以将A位解释为整数并且使用Lehmer码确定对应置换。Lehmer代码是编码置换的数学算法。
对于大L而言,这可能是麻烦的并且置换的较小集合可以从实现方式视角是优选的。例如,采取L=mn。位序列被分为各自具有长度B的m个块,并且块i被认为是用于P的条目(i-1)n+1,(i-1)n+2,…in的置换的标签。例如,如果2B≥n,则对应于块的置换在特定i∈\{0,1,…,n-1}的i个位置上循环移位。如果2B≥n!,n个位置上的任何置换可以利用B位标签标记。标签与置换之间的对应性可以要么明确地存储(对于足够小n),要么可以使用Lehmer码计算。
-在实施例中,置换使得其使许多位置处于其位置。这降低要求的重新布置的数量,并且允许来自PRF的相对小的位数需要生成。作为特定范例,采取L=mn。数目的集合{1,2,…,mn}以大小n的m个子集划分,例如形式的集合{(i-1)n,(i-1)n+1,…,in}。PRF的前位被用于指示置换将发生的s个子集。下一位被用于选择在多少位置上s个选定的子集中的每个中的条目将移位。
-在实施例中,置换是s个转换的序列(亦称转置)。位序列被认为是位长度log2(nm)的整数的序列(x0,x1,…,x2s-1,),并且置换包括位置x0,x1中的P的条目的转换(转置)的序列,跟随有转换位置x2,x3,…中的P的条目,跟随有转换位置x2s-2,x2s-1中的P的条目。
存在可以获得公共序列P的各种方式。例如,在一个实施例中,公共序列可以以工业标准指定。在另一实施例中,其由服务器S生成。希望与S通信的客户端C接收P或者参数(例如,种子),以及根据S计算P的方法。以这种方式,服务器将P用于多个会话和客户端,并且不需要对其进行重新计算。在又一实施例中,P被生成并且由受信任第三方(TTP)分布。服务器可以存储P并且将其用于与多个客户端通信。序列P可以仅在由TTP指示的时间段期间有效。在又一实施例中,存在多个TTP,每个生成其自身的公共序列Pi。服务器S存储所有这样的矩阵。客户端C从其实际上信任的TTP选择序列,以特定预指定的方式将其组合,并且在该组合上应用置换。其向S发送所选定的TTP的索引和种子,使得S可以检索所述置换。通过组合矩阵并且置换条目,S可以找到由C实际上使用的矩阵。
伪随机函数(PRF)可以被定义为例如:
-PRF1:递归散列函数,其输出被分成位的组。然后,每个组将被用于拾取不同元素。
-PRF2:PRF1将具有冲突,因为将是相对小数目。备选方案是保持跟踪使用的数目并且丢弃已经出现的数目。
-PRF3:另一备选方案包括gk(mod p),其中,其中,p是素数并且g是生成器。k将是种子并且该PRF通过增加k(mod n)迭代。
将以上实施例(特别地实施例4)应用到其他方案可以如下。例如,对于由ErdemAlkim等人在“Post-quantum key exchange–a new hope”中描述的基于密码格的协议。人们可以如下修改其方案。给定向量a和秘密s和e,然后b被计算为b=(as+e)modulo(xn+1)。在这种情况下的生成是更便宜的,因为其仅包含n个元素,但是其可能仍然对于服务器是昂贵的,如果其必须从初始种子当中计算许多向量的话。备选方案是具有静态p(元素集)并且计算随机置换向量r。以这种方式,计算将是:b=(a[r]s+e)mod(xn+1),其中,a[r]表示根据r的a的置换版本。由于r具有比a更小的元素,因而其可以比a更便宜地计算。
在基于格的公共密钥加密方案中,公共密钥(例如,LWE)公共密钥由对(b,A)给出。矩阵A可以采取用于存储的相当大的空间或者备选地,其可能需要动态生成。备选方案是具有公共值集P。并且具有作为公共密钥,(b,种子')使得种子'被用于获得确定P中的元素如何被映射到被用于获得b作为b=As+e的矩阵A的置换向量r。优点在于,存储设备需要在服务器处将低得多,并且计算也需要低得多。
图4示意性地示出了用于共享矩阵400的方法的实施例的范例。方法400是用于被配置用于基于共享矩阵的密码协议的第一电子网络节点的电子方法,例如诸如网络节点110。共享矩阵具有多个条目,每个条目具有值。
方法400包括:
-建立(410)第一网络节点与第二网络节点(111)之间的数字通信,
-获得(420)用于共享矩阵的条目的值序列,值序列是与第二网络节点共享的,
-从第二网络节点接收(430)选择数据,或者确定选择数据并且将选择数据发送到第二网络节点,选择数据指示值序列中的多个位置并且向共享矩阵的多个条目分配由选择数据指示的值序列的值,
-根据选择数据构建(440)共享矩阵(A),将共享矩阵的多个条目设置为由选择数据分配的多个值,并且
-将共享矩阵应用(450)在密码协议中。
执行方法的许多不同方式是可能的,如对于本领域技术人员将显而易见的。例如,可以改变步骤的顺序或者可以并行执行一些步骤。此外,在步骤之间可以插入其他方法步骤。插入的步骤可以表示诸如本文描述的方法的细化,或者可以与该方法无关。此外,在下一步骤开始之前,给定步骤可能尚未完全完成。
根据本发明的方法可以使用软件执行,其包括用于使得处理器系统执行方法400的指令。软件可以仅包括由系统的特定子实体采取的那些步骤。软件可以存储在合适的存储介质中,例如硬盘、软盘、存储器、光盘等。软件可以作为信号沿着线、无线或使用数据网络(例如,因特网)发送。该软件可以可用于下载和/或在服务器上远程使用。可以使用位流来执行根据本发明的方法,该位流被布置为配置可编程逻辑,例如,现场可编程门阵列(FPGA),以执行该方法。
将意识到,本发明还扩展到计算机程序,特别是适于将本发明付诸实践的载体上或载体中的计算机程序。程序可以采取源代码、目标代码、代码中间源和诸如部分编译形式的目标代码的形式,或者适用于实现根据本发明的方法的任何其他形式。涉及计算机程序产品的实施例包括与阐述的方法中的至少一个的处理步骤中的每个相对应的计算机可执行指令。这些指令可以细分为子例程和/或存储在可以静态或动态链接的一个或多个文件中。涉及计算机程序产品的另一实施例包括与阐述的系统和/或产品中的至少一个的模块中的每个相对应的计算机可执行指令。
图5a示出了具有包括计算机程序1020的可写部件1010的计算机可读介质1000,计算机程序1020包括用于使得处理器系统执行根据实施例的共享矩阵的方法的指令。计算机程序1020可以根据物理标记或者借助于计算机可读介质1000的磁化被实现在计算机可读介质1000上。然而,任何其他适合的实施例也是可以想象的。此外,将意识到,尽管计算机可读介质1000此处被示出为光盘,但是计算机可读介质1000可以是任何适合的计算机可读介质(诸如硬盘、固态存储器、闪存等),并且可以是非可记录或可记录的。计算机程序1020包括用于使处理器系统执行所述共享矩阵的方法的指令。
图5b示意性地示出了根据实施例的处理器系统1140的表示。处理器系统包括一个或多个集成电路1110。在图5b中示意性地示出了一个或多个集成电路1110的架构。电路1110包括处理单元1120(例如,CPU),其用于运行计算机程序部件以执行根据实施例的方法和/或实施其模块或者单元。电路1110包括用于存储编程代码、数据等的存储器1122。存储器1122的部分可以是只读的。电路1110可以包括通信元件1126,例如,天线、连接器或者两者等。电路1110可以包括用于执行方法中定义的处理的部分或全部的专用集成电路1124。处理器1120、存储器1122、专用IC 1124和通信元件1126可以经由相互连接1130(比如说总线)彼此连接。处理器系统1110可以被布置用于分别地使用天线和/或连接器的接触和/或无接触通信。
例如,在实施例中,第一网络节点可以包括处理器电路和存储器电路,处理器被布置为运行存储在存储器电路中的软件。例如,处理器电路可以是Intel Core i7处理器、ARMCortex-R8等。在实施例中,处理器电路可以是ARM Cortex M0。存储器电路可以是ROM电路、或者非易失性存储器,例如,闪存。存储器单元可以是易失性存储器(例如,SRAM存储器)。在后者情况下,设备可以包括非易失性软件接口(例如,硬盘驱动器、网络接口等),其被布置用于提供软件。
应当注意,上文所提到实施例图示而不是限制本发明,并且本领域的技术人员将能够设计许多备选实施例。
在权利要求中,括号内的任何附图标记不应被解释为对权利要求的限制。动词“包括”及其变形词的使用不排除权利要求中记载的元件或步骤之外的元件或步骤的存在。元件前面的词语“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括若干不同元件的硬件和借助于适当编程的计算机来实施。在列举了若干模块的设备权利要求中,这些模块中的若干个可以由同一个硬件项来实现。在互不相同的从属权利要求中记载了特定措施的仅有事实并不指示不能有利地使用这些措施的组合。
在权利要求中,括号中的参考涉及示范性实施例的附图中的附图标记或实施例的公式,从而增加了权利要求的可理解性。这些参考不应解释为对权利要求的限制。

Claims (19)

1.一种被配置用于基于共享矩阵的密码协议的第一电子网络节点(110),所述共享矩阵具有多个条目,每个条目具有值,所述第一网络节点包括:
-通信接口(120),其被配置用于与第二网络节点(111)进行数字通信,
-处理器电路,其被配置为:
-获得针对所述共享矩阵的值被选择的值序列,所述值序列是与所述第二网络节点共享的,
-从所述第二网络节点接收选择数据,或者确定选择数据并且将所述选择数据发送到所述第二网络节点,所述选择数据指示所述值序列中的多个位置并且向所述共享矩阵的多个条目分配由所述选择数据指示的所述值序列的值,
-根据所述选择数据和所述值序列来构建所述共享矩阵(A),将所述共享矩阵的所述多个条目设置为由所述选择数据分配的多个值,
-将所述共享矩阵应用在所述密码协议中。
2.根据权利要求1所述的第一网络节点(110),其中,所述处理器电路被配置为选择针对所述共享矩阵的条目的对应的预定第二组的所述值序列中的值的预定第一组,所述选择数据指示针对所述第二组中的所述条目的所述第一组中的多个位置,使得所述第二组中的每个条目被分配来自所述第一组的值,所述第二组比所述共享矩阵具有更少的条目。
3.根据权利要求2所述的第一网络节点(110),其中,所述选择数据中指示针对所述第二组中的所述条目的所述第一组中的所述多个值的部分具有小于所述第二组中的值的总位大小的1/100的位大小。
4.根据前述权利要求中的任一项所述的第一网络节点(110),其中,所述选择数据包括多个参数,所述处理器电路被布置为根据所述选择数据中的参数来计算所述值序列中的至少一个条目和所述共享矩阵中的至少一个条目,所述计算在所述参数中是线性的,并且将所述值序列中的所计算的条目的所述值分配给所述共享矩阵中的所述条目。
5.根据权利要求2、3或4所述的第一网络节点(110),其中,所述值序列形成基矩阵,所述选择数据通过指示所述基矩阵的至少一个行和/或列被旋转的条目数目来指示所述行和/或所述列的循环置换。
6.根据前述权利要求中的任一项所述的第一网络节点(110),其中,所述选择数据包括随机种子,所述处理器电路被配置为:
-利用所述随机种子来对确定性伪随机数生成器进行播种,并且根据所述确定性伪随机数生成器的输出获得对所述值序列中的所述多个值和/或所述共享矩阵的所述多个条目的指示。
7.根据前述权利要求中的任一项所述的第一网络节点(110),其中,所述选择数据包括置换,所述处理器电路被布置为根据所述置换对所述值序列进行置换并且根据默认分配将置换的值序列分配给所述共享矩阵的条目。
8.根据前述权利要求中的任一项所述的第一网络节点(110),其中,所述处理器电路被配置为计算所述共享矩阵(A)与所述第一网络节点的私有向量或矩阵(r;SI)之间的矩阵积作为所述密码协议的部分。
9.根据权利要求8所述的第一网络节点(110),其中,所述第一网络节点和所述第二网络节点被配置用于密钥交换协议,并且所述处理器电路被配置为:
-生成私有密钥矩阵(SI),
-生成公共密钥矩阵(PI),所述生成至少包括:
-计算所述共享矩阵(A)与所述私有密钥矩阵(SI)之间的矩阵积,从而获得矩阵积,
-将所述第一网络节点的所述公共密钥矩阵发送到所述第二网络节点,
-接收所述第二网络节点的公共密钥矩阵(PR),
-将原始密钥计算为所述第二节点的接收到的公共密钥与所述第一网络节点的所述私有密钥矩阵之间的矩阵积,其中,所述第一网络节点还被配置为根据至少所述原始密钥来计算共享密钥。
10.根据权利要求8所述的第一网络节点(110),其中,所述第一网络节点和所述第二网络节点被配置用于公共密钥加密协议,所述处理器电路被配置为:
-获得第二网络节点的公共密钥,所述公共密钥包括选择数据,以及另外的公共密钥矩阵(B),所述另外的公共密钥矩阵是先前已经根据所述共享矩阵和私有密钥矩阵(S)获得的,
-选择随机向量r,并且计算所述随机向量(r)与所述共享矩阵之间以及所述随机向量(r)与所述另外的公共密钥矩阵之间的两个矩阵积(例如,a'=AT r,b'=BT r),
-通过添加根据所述两个矩阵积中的第一个矩阵积计算的盲向量根据明文消息来计算加密消息,所述加密消息还包括根据所述两个矩阵积中的第二个矩阵积计算的解密信息。
11.根据前述权利要求中的任一项所述的第一网络节点(110),包括高速缓冲存储器,所述高速缓冲存储器被布置为高速缓冲所述值序列(A1、A2),其中,所述共享矩阵的所述多个条目被分配如在所述高速缓冲存储器中高速缓冲的所述值序列的值。
12.根据前述权利要求中的任一项所述的第一网络节点(110),包括:
-高速缓冲存储器,其被布置为将值序列(A1、A2)与识别所述高速缓冲的值序列的对应的序列标识符一起进行高速缓冲,其中,
-所述处理器电路被配置为:
-从所述第二网络节点接收序列标识符并且验证对应于接收到的序列标识符的值序列是否在所述高速缓冲存储器中被高速缓冲以及这样的值序列是否未在所述高速缓冲矩阵中被高速缓冲,从所述第二网络节点获得所述值序列,和/或将序列标识符发送到对应于在所述高速缓冲存储器中高速缓冲的值序列的所述第二网络节点,
-使用由所述序列标识符识别的所述值序列以构建所述共享矩阵。
13.根据权利要求11或12所述的第一网络节点(110),其中,所述序列标识符包括另外的随机种子,获得或者共享所述值序列包括利用所述另外的随机种子来对确定性伪随机数生成器进行播种,并且根据经播种的确定性伪随机数生成器的输出来导出所述值序列。
14.根据前述权利要求中的任一项所述的第一网络节点,其中,所述值序列是从受信任第三方获得的。
15.根据前述权利要求中的任一项所述的第一网络节点,其中,能够使用不同选择数据从单个值序列获得的不同共享矩阵的数目是至少264
16.根据前述权利要求中的任一项所述的第一网络节点,被布置为接受来自多个第二网络节点的加密网络连接,所述第一网络节点被布置为通过发送响应消息来接受来自第二节点的连接请求,所述响应消息包括随机种子,所述随机种子指示被存储在所述第一网络节点的高速缓冲存储器中的值序列,所述第二网络节点将选择数据发送到所述第一网络节点。
17.一种电子网络系统,包括根据前述权利要求中的任一项所述的第一网络节点(110)以及第二网络节点,其中,所述第二网络节点被配置用于基于所述共享矩阵的所述密码协议,所述第二网络节点包括:
-通信接口(120),其被配置用于与所述第一网络节点进行数字通信,
-处理器电路,其被配置为:
-获得与所述第一节点相同的值序列,针对所述共享矩阵的值选自所述序列,
-确定选择数据并且将所述选择数据发送到所述第一网络节点,或者从所述第一网络节点接收选择数据,所述选择数据指示所述值序列中的多个位置并且向所述共享矩阵的多个条目分配由所述选择数据指示的所述值序列的值,
-根据所述选择数据和所述值序列来构建与所述第一网络节点相同的共享矩阵(A),将所述共享矩阵的所述多个条目设置为由所述选择数据分配的多个值,
-将所述共享矩阵应用在所述密码协议中。
18.一种电子方法(400),用于被配置用于基于共享矩阵的密码协议的第一电子网络节点(110),所述共享矩阵具有多个条目,每个条目具有值,所述方法包括:
-建立(410)所述第一网络节点与第二网络节点(111)之间的数字通信,
-获得(420)针对所述共享矩阵的值被选择的值序列,所述值序列是与所述第二网络节点共享的,
-从所述第二网络节点接收(430)选择数据,或者确定选择数据并且将所述选择数据发送到所述第二网络节点,所述选择数据指示所述值序列中的多个位置并且向所述共享矩阵的多个条目分配由所述选择数据指示的所述值序列的值,
-根据所述选择数据来构建(440)所述共享矩阵(A),将所述共享矩阵的所述多个条目设置为由所述选择数据分配的多个值,并且
-将所述共享矩阵应用(450)在所述密码协议中。
19.一种包括瞬态或非瞬态数据(1020)的计算机可读介质(1000),所述瞬态或非瞬态数据表示使处理器系统执行根据权利要求18所述的方法的指令。
CN201880029798.9A 2017-03-06 2018-02-27 共享用于密码协议中的矩阵的设备和方法 Active CN110603782B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17159296.7A EP3373505A1 (en) 2017-03-06 2017-03-06 Device and method for sharing a matrix for use in a cryptographic protocol
EP17159296.7 2017-03-06
PCT/EP2018/054731 WO2018162272A1 (en) 2017-03-06 2018-02-27 Device and method sharing a matrix for use in a cryptographic protocol

Publications (2)

Publication Number Publication Date
CN110603782A true CN110603782A (zh) 2019-12-20
CN110603782B CN110603782B (zh) 2022-12-27

Family

ID=58231495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880029798.9A Active CN110603782B (zh) 2017-03-06 2018-02-27 共享用于密码协议中的矩阵的设备和方法

Country Status (6)

Country Link
US (1) US11212098B2 (zh)
EP (2) EP3373505A1 (zh)
JP (1) JP7159183B2 (zh)
CN (1) CN110603782B (zh)
RU (1) RU2765238C2 (zh)
WO (1) WO2018162272A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021143040A1 (zh) * 2020-01-13 2021-07-22 华中科技大学 一种后量子密钥交换协议的实现方法及其应用
CN114981862A (zh) * 2020-01-20 2022-08-30 日本电信电话株式会社 秘密指数函数计算系统、秘密指数函数计算方法、秘密计算装置以及程序

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11337651B2 (en) 2017-02-03 2022-05-24 Bruin Biometrics, Llc Measurement of edema
EP3698515B1 (en) 2017-10-17 2021-02-17 Koninklijke Philips N.V. Configurable device for lattice-based cryptography
EP3474484A1 (en) 2017-10-17 2019-04-24 Koninklijke Philips N.V. Cryptographic device with updatable shared matrix
CN109889321B (zh) * 2019-02-26 2020-09-18 清华大学 一种用于格公钥密码的错误采样方法
EP3742663B1 (en) * 2019-05-20 2024-02-07 Nokia Technologies Oy Shared secret generation
US11477016B1 (en) 2019-09-10 2022-10-18 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11343270B1 (en) 2019-09-10 2022-05-24 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11240014B1 (en) 2019-09-10 2022-02-01 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11626983B1 (en) 2019-09-10 2023-04-11 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11943348B1 (en) * 2019-12-11 2024-03-26 Q-Net Security, Inc. Method and system for secure cryptographic exchanges using a five-pass protocol
AU2020202883B1 (en) * 2020-01-10 2021-01-07 Mesinja Pty Ltd Systems and computer-implemented methods for generating pseudo random numbers
US11449799B1 (en) 2020-01-30 2022-09-20 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11322050B1 (en) 2020-01-30 2022-05-03 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11533175B1 (en) 2020-01-30 2022-12-20 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography on a smartcard
US11838410B1 (en) 2020-01-30 2023-12-05 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
DE102020112102B3 (de) 2020-05-05 2021-05-20 Infineon Technologies Ag Verfahren und Vorrichtungen zur Erzeugung eines symmetrischen Sitzungsschlüssels für die verschlüsselte Kommunikation
WO2021258109A1 (en) * 2020-06-17 2021-12-23 The Regents Of The University Of California Extra-compact key with reusable common key for encryption
US11294929B1 (en) 2021-06-09 2022-04-05 Aeec Smart water data analytics
CN114095170B (zh) * 2022-01-20 2022-05-27 北京信安世纪科技股份有限公司 数据处理方法、装置、系统及计算机可读存储介质
US12101401B2 (en) * 2022-07-28 2024-09-24 Brax Kinsey Digital forge systems and methods
CN115134475B (zh) * 2022-08-31 2022-11-08 智联信通科技股份有限公司 一种衡器鉴重智能管理系统
CN118400102A (zh) * 2024-04-16 2024-07-26 中国人民解放军国防科技大学 动态无人机群身份认证密钥协商方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010186129A (ja) * 2009-02-13 2010-08-26 Mitsubishi Electric Corp 符号化通信方法および符号化通信装置
CN102164367A (zh) * 2011-04-14 2011-08-24 北京理工大学 一种用于无线传感器网络的密钥管理方法
US20120166809A1 (en) * 2010-12-28 2012-06-28 Authernative, Inc. System and method for cryptographic key exchange using matrices

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001211153A (ja) * 2000-01-25 2001-08-03 Murata Mach Ltd 秘密鍵生成方法
JP2002217884A (ja) 2001-01-19 2002-08-02 Murata Mach Ltd 暗号通信方法と暗号化装置、復号装置及び記録媒体
US7184551B2 (en) * 2002-09-30 2007-02-27 Micron Technology, Inc. Public key cryptography using matrices
US20040258240A1 (en) * 2003-05-02 2004-12-23 Singh Mukesh K. Cryptosystems
US7073067B2 (en) * 2003-05-07 2006-07-04 Authernative, Inc. Authentication system and method based upon random partial digitized path recognition
WO2006092960A1 (ja) * 2005-02-28 2006-09-08 National University Of Corporation Hiroshima University 認証装置
US8098815B2 (en) * 2006-10-11 2012-01-17 Frank Rubin Device, system and method for cryptographic key exchange
US8090097B2 (en) * 2006-10-11 2012-01-03 Frank Rubin Device, system and method for cryptographic key exchange
US8837724B2 (en) * 2007-03-27 2014-09-16 Qualcomm Incorporated Synchronization test for device authentication
KR100966071B1 (ko) * 2007-12-18 2010-06-28 한국전자통신연구원 겹선형 사상을 이용한 다자간 키 공유 방법 및 그 시스템
KR101595994B1 (ko) 2008-09-17 2016-02-22 코닌클리케 필립스 엔.브이. 네트워크에서 통신하기 위한 방법, 통신 디바이스 및 그를 위한 시스템
SE534384C2 (sv) * 2009-07-03 2011-08-02 Kelisec Ab Förfarande för att alstra en krypterings-/dekrypteringsnyckel
EP2348725A1 (en) 2010-01-26 2011-07-27 Irdeto Access B.V. Computational efficiently obtaining a control word in a receiver using transformations
US9230103B2 (en) * 2011-10-03 2016-01-05 Zoosk, Inc. System and method for registering users for communicating information on a web site
CN102412971B (zh) * 2011-11-30 2015-04-29 西安西电捷通无线网络通信股份有限公司 基于sm2密钥交换协议的密钥协商方法及装置
TWI502947B (zh) * 2012-04-12 2015-10-01 Jintai Ding New cryptographic system and method based on mismatching
US9215072B1 (en) * 2012-10-23 2015-12-15 Authernative, Inc. Back-end matching method supporting front-end knowledge-based probabilistic authentication systems for enhanced credential security
JP6169028B2 (ja) 2014-03-18 2017-07-26 株式会社東芝 通信装置、通信システムおよび通信方法
US9948460B2 (en) * 2015-08-28 2018-04-17 City University Of Hong Kong Multivariate cryptography based on clipped hopfield neural network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010186129A (ja) * 2009-02-13 2010-08-26 Mitsubishi Electric Corp 符号化通信方法および符号化通信装置
US20120166809A1 (en) * 2010-12-28 2012-06-28 Authernative, Inc. System and method for cryptographic key exchange using matrices
CN102164367A (zh) * 2011-04-14 2011-08-24 北京理工大学 一种用于无线传感器网络的密钥管理方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JOPPE BOS等: "Frodo: Take off the Ring!Practical, Quantum-Secure Key Exchange from LWE", 《CCS"16:PROCEEDINGS OF THE 2016 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY》 *
NICOLAS SENDRIER: "Code-based One Way Functions", 《HTTP://ECRYPT-SS07.RHUL.AC.UK/SLIDES/THURSDAY/SENDRIER-SAMOS07.PDF》 *
OLIVIER BILLET等: "Efficient Traitor Tracing from Collusion Secure Codes", 《INTERNATIONAL CONFERENCE ON INFORMATION THEORETIC SECURITY》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021143040A1 (zh) * 2020-01-13 2021-07-22 华中科技大学 一种后量子密钥交换协议的实现方法及其应用
CN114981862A (zh) * 2020-01-20 2022-08-30 日本电信电话株式会社 秘密指数函数计算系统、秘密指数函数计算方法、秘密计算装置以及程序

Also Published As

Publication number Publication date
RU2019131369A3 (zh) 2021-08-06
RU2765238C2 (ru) 2022-01-27
RU2019131369A (ru) 2021-04-07
US20190386828A1 (en) 2019-12-19
EP3373505A1 (en) 2018-09-12
JP2020511832A (ja) 2020-04-16
CN110603782B (zh) 2022-12-27
EP3593485A1 (en) 2020-01-15
JP7159183B2 (ja) 2022-10-24
US11212098B2 (en) 2021-12-28
EP3593485B1 (en) 2021-04-07
WO2018162272A1 (en) 2018-09-13

Similar Documents

Publication Publication Date Title
CN110603782B (zh) 共享用于密码协议中的矩阵的设备和方法
JP6849860B2 (ja) 格子暗号法のために構成可能な装置
JP7208987B2 (ja) 更新可能な共有マトリクスを備える暗号装置
US11728988B2 (en) Elliptic curve isogeny based key agreement protocol
JP2020511832A5 (zh)
CN110519039B (zh) 一种数据的同态处理方法、设备和介质
US11909877B2 (en) Public/private key system with decreased public key size
NL2013944B1 (en) Public-key encryption system.
US20160156470A1 (en) System for sharing a cryptographic key
CN110493201B (zh) 一种数据的处理方法、装置和系统
CN114175572A (zh) 利用拟群运算对加密数据实行相等和小于运算的系统和方法
WO2020016268A1 (en) Key encapsulation protocols
CN113098680A (zh) 非暂时性计算机可读介质、解密设备及通信系统
JP7229778B2 (ja) 鍵管理システム及び方法
CN114172651B (zh) 一种sm9公钥加密算法、解密算法的gpu加速实现方法
CN113922960B (zh) 一种基于sm2的psi获取方法、装置及系统
CN117134906A (zh) 多方隐私求交方法及相关装置
JPWO2015008769A1 (ja) 鍵クラウドシステムおよび復号方法
JPWO2015008623A1 (ja) 鍵保管装置、鍵保管方法、及びそのプログラム
US11228589B2 (en) System and method for efficient and secure communications between devices
CN116961908B (zh) 加密方法、电子装置、电子设备及计算机存储介质
RU2787692C2 (ru) Протоколы инкапсуляции ключей
CN116527249A (zh) 基于区块链和国密算法的虚拟电厂邀约方法、装置和设备
Nguyen et al. Client-Efficient Online-Offline Private Information Retrieval
CN118656859A (zh) 数据处理方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant