CN106452722A - 评估密码熵 - Google Patents

评估密码熵 Download PDF

Info

Publication number
CN106452722A
CN106452722A CN201610909542.XA CN201610909542A CN106452722A CN 106452722 A CN106452722 A CN 106452722A CN 201610909542 A CN201610909542 A CN 201610909542A CN 106452722 A CN106452722 A CN 106452722A
Authority
CN
China
Prior art keywords
entropy
probability distribution
typicality
classification
probability
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
CN201610909542.XA
Other languages
English (en)
Other versions
CN106452722B (zh
Inventor
丹尼尔·理查德·L·布朗
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.)
BlackBerry Ltd
Original Assignee
Certicom Corp
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 Certicom Corp filed Critical Certicom Corp
Publication of CN106452722A publication Critical patent/CN106452722A/zh
Application granted granted Critical
Publication of CN106452722B publication Critical patent/CN106452722B/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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

描述了用于在密码系统中评估熵的系统、方法、软件及其组合。在一些方面,由熵源系统产生采样值。可以确定采样值中的每一个的典型性。基于采样值的典型性来确定预先选择的分布的分级。基于分级来选择预先选择的分布的子集。基于多个分布的子集来计算熵源系统的熵。

Description

评估密码熵
本申请是2014年5月30日(国际申请日:2012年9月26日)向中国专利局递交并进入中国国家阶段的题为“评估密码熵”的发明专利申请No.201280059138.8(PCT国际申请No.PCT/CA2012/050672)的分案申请。
技术领域
本申请要求于2011年11月30日提交的欧洲专利申请No.11191302.6的优先权,其全部内容通过引用的方式并入本文。
背景技术
本说明书涉及在密码系统中评估熵。密码系统实现通过公共信道进行安全通信。例如,在公钥密码系统中,消息发送方使用加密算法对明文消息进行加密,并且向接收方发送加密的消息。接收方可以使用秘密密钥值来从加密消息中恢复明文消息。在一些密码系统中,秘密密钥值的熵使得密码系统相对于特定类型的攻击是鲁棒的。
附图说明
图1是示例性密码系统的示意图。
图2是用于在密码系统中评估熵的示例性方法。
具体实施方式
密码系统可以产生和利用密码秘密(例如,秘密密钥值、密码等)。在一些实例中,密码秘密可以包括来自熵源的熵。例如,从对手的角度来看,产生密码秘密的伪随机数发生器可以以随机的值作为种子,从而防止对手的特定类型的攻击。熵可以与这些和其他方式结合使用以减小复杂的对手攻击的有效性或效率。
本公开描述了适合于在密码系统中使用的几种形式的熵。本公开还描述了适合于在密码系统中评估熵的统计推断技术。例如,密码秘密包括用于避免被对手猜出的熵。例如,可以评估针对密钥收集的熵,使得可以可靠地对攻击的风险进行估计。本公开描述了可以用于一些密码系统的示例性熵源。本公开还描述了与表征熵源的概率有关的一些示例性假设。在本公开的一些方面,通过使用统计推断来产生对熵量的保守估计。
可以进行多种类型的熵评估。在一些实例中,例如,为了生成保守评估,可以将评估的最小值作为总评估或实际评估。可以基于从熵源直接获得的采样值来评估熵。在一些实例中,与其他类型的测量(例如,基于密码操作的输出的熵测量)相比,基于从熵源获得的值的熵测量提供了更准确或更有用的评估。诸如散列函数和分组密码等的一些密码操作通常可以被设计为产生看似均匀分布的输出,即使输入是非均匀的也是如此。在一些实例中,不具体考虑密码操作的推断方法可能潜在地获得超过实际熵的评估熵。在此类实例中,熵评估的任务可能潜在地被弱化或者甚至被消弱。在一些实现中,可以使用考虑密码操作的熵评估。
图1是示例性密码系统100的示意图。示例性密码系统100包括熵源系统102、密码秘密产生器模块106、熵评估器模块108、以及密码通信模块110a。在一些实例中,如图1所示的示例中一样,密码系统100包括额外的密码通信模块(例如,密码通信模块110b以及可能更多的密码通信模块)以及对手112。密码系统100可以包括额外或不同的特征和组件,并且可以关于图1所示和所述的或者以不同的方式来配置密码系统100。
在操作的一个示例性方面,熵源系统102向密码秘密产生器模块106提供输出值。由熵源系统102提供的输出值可以用作密码秘密产生器模块106的熵的源。例如,密码秘密产生器模块106可以是以来自熵源系统102的输出值为种子的伪随机数发生器模块。密码秘密产生器模块106产生密码秘密(例如,私钥),并且向密码通信模块110a提供密码秘密。密码通信模块110a基于密码秘密与密码系统100中的其他实体进行通信。例如,密码通信模块110a可以基于由密码秘密产生器模块106提供的密钥来产生加密消息、数字签名、数字凭证、密码密钥(例如,公钥和私钥、短期密钥和长期密钥等)或者这些和其他类型的密码数据的组合。由密码秘密产生器模块106提供的秘密值可以用作或者可以用于产生用于密码通信的密码密钥。
在操作的一些方面,熵评估器模块108评估由熵源系统102产生的输出值的熵。例如,熵评估器模块108可以从熵源系统获得采样输出值,并且从示例性对手112的角度或者从其他人的角度来评估熵源系统102的熵。在一些情况下,熵评估器模块108使用下述技术中的一个或更多个。熵评估器模块108可以例如结合制造熵源系统102、密码秘密产生器模块106或者密码系统100的这些和其他组件的任意组合来评估熵。熵评估器模块108可以例如结合在使用密码系统100期间或者在其他实例中部署或测试密码系统100的方面或组件来评估熵。在一些实现中,当指示熵源系统102向密码秘密产生器模块106提供输出值时,熵评估器模块108评估熵源系统102的熵。
可以以硬件、软件、固件或其组合的任意适当组合来实现图1中所示的示例性密码系统100的组件。在一些实例中,熵源系统102、密码秘密产生器模块106、熵评估器模块108和密码通信模块110a可以实现为由一个或更多个通用处理器执行的软件模块。在一些实例中,熵源系统102、密码秘密产生器模块106、熵评估器模块108或者密码通信模块110a中的一个或更多个可以实现为一个或更多个硬件组件。硬件组件可以包括专用处理器或预编程逻辑、执行软件的通用处理器、或者其他类型的数据处理装置。
密码秘密产生器模块106基于从熵源系统102提供的值来产生输出。例如,密码秘密产生器模块106可以包括伪随机数发生器或者另一种类型的系统或过程。可以用硬件、软件或其任意组合来实现伪随机数发生器。伪随机数发生器可以确定性地操作,并且提供从对手的角度来看随机的输出。因此,伪随机数发生器的输出可以称作随机输出值,但是伪随机数发生器本身确定性地操作。在一些实现中,从伪随机数发生器获得的输出值取决于伪随机数发生器的状态。例如,伪随机数发生器可以定义多种不同的状态,每一个状态与不同的输出值相对应。例如可以通过每当伪随机数发生器提供输出值时前进至下一个状态,来更新状态。可以例如刷新(或者重新播种)状态,以周期性地或者在特定条件时将熵添加至状态。
密码通信模块110a可以包括可操作于执行密码操作的任何适当的硬件、软件、固件或其组合。在一些实例中,密码通信模块110a被配置为执行数据加密。例如,密码通信模块110a可以被配置为基于密码秘密产生器模块106提供的密钥来对消息或其他类型的数据进行加密。在一些实例中,密码通信模块110a被配置为提供数据认证。例如,密码通信模块110a可以被配置为基于密码秘密产生器模块106提供的密钥来生成数字签名或认证标记。在一些实例中,密码通信模块110a被配置为生成数字凭证或其他类型的密码对象。例如,密码通信模块110a可以被配置为凭证管理中心,以基于密码秘密产生器模块106提供的密钥发出数字凭证。密码通信模块110a可以被配置为执行额外或不同类型的操作。
在一些实现中,密码通信模块110a和110b可以通过开放信道彼此通信。例如,密码通信模块110a可以通过对手112可部分或完全观测的通信信道来向密码通信模块110b发送密码数据(例如,加密的消息、签名的消息、密码凭证、公钥、密钥协商数据等)。在一些实例中,密码通信模块110a和110b可以通过一个或更多个数据通信网络、通过无线或有线通信链路、或者通过其他类型的通信信道来进行通信。通信网络可以包括例如蜂窝网络、电信网络、企业网络、专用公共网络、局域网(LAN)、广域网(WAN)、私有网络、公共网络(例如,互联网)、WiFi网络、包括卫星链路的网络、或者另一种类型的数据通信网络。通信链路可以包括有线或接触式的通信链路、短距离无线通信链路(例如,光学、NFC等)或者这些和其他类型的链路的任何适当的组合。
熵源系统102可以包括一个或更多个熵源。例如,如图1中所示,熵源系统102包括两个熵源104a和104b(“熵源104a-b”)。在一些实例中,熵源可以按需要被修改或添加到熵源系统102,以例如实现充分的熵。熵源104a-b可以提供具有熵的信息。例如,熵源104a-b可以包括环形振荡器、噪声二极管、鼠标移动、磁盘读取时间的变化、系统过程使用、或者其他可量化但不可预测的现象或行为。在一些实现中,熵源104a-b生成采样(例如,日志记录的信号、测量历史、保存的变化)集合,通过使用确定过程将这些采样集合累积到熵池中。例如,熵池可以是所有采样值的级联。考虑到存储器限制,可以对级联应用压缩。压缩过程可以是组添加、密码散列函数、随机提取、或者任何其他适当的压缩方法。
密码秘密产生器模块106可以使用熵源104a-b的熵池来生成密码秘密(即,密钥)。例如,可以从熵池中提取种子以用于秘密生成。密码秘密产生器模块106可以作为良好播种且良好设计的确定性伪随机数发生器来操作,以生成随机数作为密钥。初始种子可以向生成的数提供密码熵。在一些实例中,由密码秘密产生器模块106生成的随机数可以表现为与均匀分布的随机数难以区分开。密码秘密产生器模块106可以采用回溯阻力和其他技术。例如,伪随机数发生器可以通过以下方式来生成输出值:避免输出值可行地用于恢复伪随机数发生器的内部状态,并且避免输出值可行地与伪随机数发生器的初始状态一起使用来确定过去的内部状态。在一些实现中,密码秘密产生器模块106的回溯阻力可以提供密钥协商方案的前向保密性。
从熵源104a-b到密码秘密产生器模块106的采样的处理可以是确定性的而无需额外的熵。密码系统中的确定性算法可以不保持足够机密,或者在一些实例中评估算法的熵是不切实际的。例如,如果对手不知道算法,则在一些实例中,由于对手不知道算法,因此测量或量化对手未知的信息可能是不切实际的。熵源104a-b可以根据可以用于评估熵源104a-b的概率分布来操作。该概率分布可能小于精确定义的概率分布,但是可以假设至少属于某已知的概率分布集合。在这种假设下,可以应用统计推断以评估熵源104a-b和/或一般地其他熵源提供的密码熵。
在一些实现中,熵源104a-b包括或访问操作系统(例如,计算设备的操作系统)的过程。在一些实现中,对于具有熵源的软件,一个惯例是检查在安装软件的计算机上运行的过程集合。在多个过程在其中共享处理器时间的一些示例性操作系统中,具有每一个过程已经使用的处理器时间量的过程列表可以具有某一熵。例如,一些过程可能需要写入硬盘。当写入硬盘时,已知磁盘寻道时间根据数据在硬盘上所处的位置以及其他因素而改变。这种熵源的优点在于,熵源不需要特殊硬件或用户动作。
在一些实现中,熵源104a-b包括或访问环境条件。例如,一些系统具有可以用作熵源的输入端,例如,用于监控本地环境中的声音的麦克风。录音可以是不能预测的噪声和环境行为的组合。这种熵源的优点在于,熵源不需要用户动作或特定或额外硬件(例如,这是因为麦克风、摄像机和其他计算机外围硬件是常用的)。可能的缺点是,足够近的任何对手也可能具有对熵源的部分访问。例如,对手112可以在相同的环境中放置麦克风以记录相同的环境行为的声音。
在一些实现中,熵源104a-b包括或访问用户输入。在一些系统中,用户通常提供输入,例如,鼠标移动、键盘敲击、触摸板手势等。这些输入可以用作熵源104a-b。可以通过正常使用偶然地或者通过使用指令请求用户进行输入的过程来收集用于熵的输入以产生随机的事物。除了将用户输入视为可以其中提取熵以导出秘密密码密钥的熵源之外,系统还可以依赖于用户以按用户选择的口令的形式直接提供秘密值。用户选择的口令可以需要熵。因此,可以评估用户选择的口令的熵。在一些实现中,系统生成的口令也可以用作秘密值。系统生成的口令可以对随机数发生器的输出应用确定性函数。确定性函数以更用户友好的格式(例如,字母数字)呈现随机值。结果是可能需要熵的口令,并且熵源可以是某其他熵源。因此,可以评估口令的熵。
在一些实现中,熵源104a-b可以包括或访问掷硬币。在一些示例中,可以按如下方式实现掷硬币熵源。硬币可以被人掷入空中,并且绕着近似通过硬币的直径的轴进行某一旋转。硬币被允许落到某表面上或者被手接住。结果是正面或反面,这是由投掷的硬币的哪一面朝上来确定的。掷硬币通常被建模使得每一个结果独立于所有先前的结果。此外,对于典型的硬币,通常将其建模为正面和反面同概率。可以通过将正面的每一个结果转换为1并且将每一个反面转换为0,来将掷硬币序列转换为比特字符串。在这种简单的模型中,得到比特字符串均匀地分布在给定长度的所有比特字符串中。
在一些实现中,可以按如下方式形成更不可知和/或复杂的掷硬币模型。首先,可以注意到,不诚实的掷硬币者可以潜在地用特定方式来进行欺骗。例如,骗子可以不绕着正确的轴旋转硬币,而是绕着与硬币的平面成45度的轴来旋转硬币。这可能使硬币看起来在旋转,但是使一面保持最接近空间中的特定方向。对于另一示例,具有欺骗技巧的骗子可以以给定的速度和(适当类型的)旋转来投掷硬币,使得硬币在期望的面朝上的情况下被接住或者可能以更高的概率落到期望的面上而落到表面上。如果认为欺骗是可能的,则认为诚实的掷硬币者可能无意地在掷硬币时引入偏差。实际上,在仅依赖于掷硬币来得到熵的密码应用中,用户可能需要将硬币投掷至少128次。然后,当用户厌烦重复的投掷时,用户可能开始变得重复并且可能遭受这种偏差。为了考虑这种情况,可以针对掷硬币者形成更保守的概率模型,然后进行某统计分析从而将保守模型与实际的掷硬币采样进行比较。
在一些实现中,熵源104a-b可以包括或访问一个或更多个骰子。骰子或者在各面上具有数字的立方体可以在投机游戏中使用。如果在滚动时使用足够的过程,则当骰子的运动停止时终止在骰子顶部的数字被认为至少独立于前面的事件。一方面,一旦骰子被释放时,骰子的滚动被视为主要由确定性的机械定律来控制,因此可能看起来滚动骰子的手提供了所有的随机性。另一方面,可能显而易见的是,骰子的滚动者不能控制骰子滚动的结果,具体地,随机性的源是实际的滚动过程。可以通过如下方式来解释该差异。
骰子与地面的每一次碰撞将使其弹跳。因为当骰子弹跳时它会翻转,因此骰子的旋转能量中的一些能量可能转换为骰子的平移能量,反之亦然。该转换在很大程度上取决于当骰子碰撞它在其上滚动的表面时骰子的方位。随着每一次弹跳,得到的平移能量影响下一次弹跳之前的时间量。弹跳之间的时间量影响骰子的旋转量并且因此影响其方位。这可能意味着一次弹跳时方位的细微差别导致下一次弹跳时方位的较大差别。
滚动骰子的行为可能与蝴蝶效应类似,这是因为每一次弹跳放大了方位和旋转的效果,并且骰子的最终方位所确定的骰子滚动的结果取决于骰子的初始方位和运动的细节。这种过程被认为是混沌的。虽然在技术上是确定性的,但是物理混沌过程难以预测,这部分地是因为获得初始条件的必要精度以确定最终条件是不切实际的。因此,滚动骰子可以是为可以用于生成组织级秘密密钥的随机数发生器播种的实际方式。对于一些类型的用户级秘密密钥,滚动骰子可能是不切实际的,例如,滚动骰子不可用于运行时熵源。
在一些实现中,熵源104a-b可以包括或访问环形振荡器,该环形振荡器已经是常见的熵源。环形振荡器可以实现为延迟的非门的奇数循环。而延迟的非门的偶数循环可以用于存储器存储,环形振荡器常常以与振荡器中的门的数量成比例的速率在0与1(低电压和高电压)之间振荡。因为可以根据门的数目和一般环境因素(例如,温度)来计算平均振荡速率,因此振荡的变化可以被视为熵源。在一些通用计算机系统中,环形振荡器不可用,但是它们可以包含在其他类型的硬件(例如,定制系统、现场可编程门阵列(FPGA)等)中。
在一些实现中,熵源104a-b可以包括或访问放射性衰变。一些烟雾检测器使用发射α粒子的放射性元素镅。相同的方法可以用作密码熵源,以例如用于生成组织级秘密密钥。
在一些实现中,熵源104a-b可以包括假设μ介子测量器。μ介质测量器可以提供穿过设备的每一个μ介子的速度的32比特度量。在一些示例中,平均每分钟有一个μ介子穿过检测器。由于μ介子的基本物理特性,因此该熵源可以被视为提供熵速率不受对手影响的鲁棒的熵源。
在一些实现中,熵源104a-b可以包括或访问量子粒子测量。量子力学的理论暗示诸如光子或电子等的量子粒子可以存在于测量引起波函数塌陷(collapse)的状态的叠加中。理论规定波函数塌陷是独立于宇宙中的所有其他事件的完全随机过程。基于该理论,根据这种波函数塌陷导出的熵源将完全不可预测,这对于密码使用是非常有用的。
可以针对可靠风险分析来评估熵源104a-b,使得密码秘密产生器模块106可以产生有效地抵抗对手的密钥。作为示例,用于伪随机数发生器的适当播种的含糊责任可能导致问题。假设密码软件的制造商实现伪随机数发生器但是不提供熵源。如果制造商将种子设置为默认值,并且软件的用户可能在不经意地认为随机数发生器包括熵源的情况下错误地使用默认种子生成“随机”值,则伪随机数发生器的输出可以被认为具有零熵(例如,对于知道默认种子的对手而言)。熵的评估可以帮助避免这种弱点。
在一些实例中,形式上评估熵防止或减小密码系统中的特定类型的故障和弱点的可能性。例如,如果确定性伪随机数发生器的内部状态有时暴露于对手,则除非用新熵刷新伪随机数发生器,否则对手可以确定其所有未来的输出。通过频繁刷新获得的属性有时被称作预测阻力(其中,刷新有时被称作再播)或前向保密性。通常可以在现场部署期间获得前向保密性所需的熵。在很多情况下,现场的熵可以被视为缺乏的。由于该原因,熵评估是适合的。
可以在部署之前、在部署期间、或者在这些和其他时刻的任何适当的组合时由熵评估器模块108来执行对熵源104a-b的评估。例如,来自熵源104a-b的一个或更多个采样值可以用于推断与其分布有关的内容。在一些情况下,丢弃采样值,并且对源的推断可以用于评估其在未来生成熵的能力。该方法提供了在部署之前执行的预期评估。在另一种情况下,采样值可以用于一些密码应用,例如,形成密码秘密产生器模块106的输入中的一些,密码秘密产生器模块106导出秘密密钥。例如,可能存在以下环境或背景,熵被认为是缺乏的,使得丢弃采样值是不可承受的。该方法提供了在部署期间执行的追溯评估。在一些情况下,追溯评估可能向对手泄露信息。因此,可能需要视情况评估偶然熵(contingent entropy)。
在一些情况下,密码秘密产生器模块106可以生成用于多个用途的密钥,使得这种使用的一个观测提供了足以使用无限计算来确定然后可以用于折中密钥的剩余使用的密钥的信息。例如,在很多形式的公钥密码使用中,公钥唯一地确定其相应的私钥。作为另一示例,假设诸如在计数器模式中使用的高级加密标准(AES-CTR)等的典型的流密码(其尝试根据有限密钥生成一次性密码本)对在一部分被对手已知并且一部分未知的消息使用一次。如果消息的已知部分具有足够的长度,则考虑到无限的计算,对手可以确定流密码密钥,然后确定整个消息。相比之下,一些密码协议提供了信息理论安全性。这些协议通过不切实际地要求非常大的密码密钥(在很多情况下,可能近似均匀)来尝试抵抗具有无限的计算能力的对手。
持续的安全性取决于计算假设的密钥可能具有可确认性属性。具有候选密钥的对手可以通过观测密钥的实际使用来确认密钥的正确性。这意味着被认为是密钥的熵的内容需要考虑可以穷举地搜索密钥的对手。诸如公钥等的一些类型的计算安全性密钥使得纯计算攻击确实比密钥的所有可能值的穷举搜索更快。例如,诸如在Diffie-Hellman密钥协商或者El Gamal签名中使用的密钥等的离散对数密钥可以是小于某质数q的正整数。诸如Pollard rho算法等的算法可以用约步来计算私钥。Schnorr给出了以下强有力的证据,如果私钥是从大小为的随机集合中选择的(这允许步的穷举搜索),则诸如Pollardrho等的通用算法没有明显改善,即,不比约步更快。因此,一些离散对数私钥可能需要比特长度的约一半的熵。
诸如对称加密密钥等的其他类型的计算安全性密钥是使得当前已知的计算攻击具有与穷举搜索类似的成本。例如,考虑密钥大小为128比特的分组密码高级加密标准(AES)。对分组密码的使用的攻击穷举地搜索每一个可能的密钥。因此,AES-128通常被认为提供128比特的安全性。但是提供128比特的安全性看起来需要密钥完全均匀,这意味着它具有128或接近128比特的熵。这种考虑提供了用于生成均匀密钥的动机。根据从熵缺乏的环境中的实际源获得的偏置熵创建近似均匀的分布在一些背景中可能太昂贵。但是,假设AES-128与仅具有100比特的熵一起使用。然后,可能将提供仅100比特的安全性。存在这些密钥可能较弱的某可能性。但是,如果例如通过散列的输出伪随机地选择这些密钥,则这看起来不太可能。如果100比特的安全性提供足够的保护,则产生均匀密钥的负担上升,并且可以集中于提供足够的熵。
熵评估器模块108可以由第三方或者其他类型的实体使用。在一些情况下,当第一方向第二方提供密码产品时,第二方评价密码产品的第三方评估。熵的第三方评估可能具有一些困难。例如,适合的熵评估需要直接访问源,这可能通常在密码产品中不可用。第一方具有提供确定性伪随机数发生器的输出作为要求保护的源的动机。对于第三方评估器,其效果将是源看起来符合均匀分布。
熵评估器模块108可以在组织或另一种类型的安全基础设施中使用。在一些情况下,组织可以向其成员提供秘密密钥以用于加密的目的,但是维持秘密密钥的备份复制。组织可以使用确定性伪随机数发生器以生成成员的秘密密钥。组织可能需要确定秘密密钥的安全性,并且将可能投入相当多资源来针对种子使用足够的熵。诸如个人隐私和非否认性等的一些密码应用要求用户的密钥对于用户是完全机密的。在该情况下,可以在用户的本地系统上生成针对用户秘密密钥的某熵。
在一些情况下,用户定义的口令是用户需要回想起并且通常输入到设备以由于诸如为了获得访问特定保密信息的许可等原因来认证用户的值。从能够使穷举搜索不可行的意义上说,这些密码通常太短而不包含足以用作密码秘密密钥的熵。该简短部分地基于用户不能记住高熵口令的想法。由于其低熵,不能使将允许对口令猜测进行离线确认的任何数据值(例如,口令的散列)是公共的。否则,可以应用口令词典。口令认证的密钥协商方案(例如,简单口令指数密钥交换(SPEKE))被设计为避免这种离线攻击。对将用户定义的口令暴露于离线猜测攻击的限制可以应用于用户选择的口令和系统生成的口令。
在操作的一些示例性方面,熵评估器模块108可以评估示例性对手112是否可以猜出密码秘密。熵评估器模块108可以观测来自熵源104a-b的采样输出值。熵评估器模块108可以依赖于熵源104a-b的可能分布的假设的概率模型。可以基于熵源104a-b的理论理解、来自熵源104a-b的采样输出值的观测或者这些和其他信息的任何适当的组合来假设概率模型。熵评估器模块108可以根据熵源104a-b产生的观测到的采样输出值来推断假设的概率模型内的熵源104a-b的分布集合。可以通过考虑采样输出值和分布之间的分级来推断分布集合。分级可以基于似然性、典型性或者这些和其他因素的组合。可以基于对来自观测的采样值的分级进行最大化或设定阈值来推断分布集合。
在操作的此类示例性方面,可以根据采样统计来得到分级。采样统计可以包括假设的概率模型。例如,采样统计可以是与模型无关的或不随模型改变的。概率模型可以是Markov模型。可以根据采样统计来得到分级。在一些示例中,采样统计可以是Markov频率统计,并且可以使用Goulden-Jackson公式来计算得到的概率。可以根据小于或等于正在被分级的采样的概率的采样的概率之和来确定典型性分级。可以根据将每一个采样输出值的概率与正在分级的采样的概率进行比较的奇函数的所有采样值的概率加权和来确定典型性分级。比较采样概率的奇函数可以是线性的。
在操作的一些示例性方面,熵评估器模块108可以量化熵源104a-b的熵或不可猜测性。例如,熵评估器模块108可以通过以下方式来量化熵源104a-b的熵:表征对手112的工作量;确定泄露给对手112的可能辅助信道信息;考虑在对密码密钥求导时将使用采样值的哪一个函数;针对每一个分布,确定分布的条件应用工作熵的值(例如,对对手猜出密码密钥的最大概率取对数);得到推断的分布集合上的熵的最小值;或者这些技术的任何适当的组合。
在操作的一些示例性方面,熵评估器模块108可以采取措施以确保密码秘密产生器模块106使用以导出密码秘密的值的总熵对于规定的安全性级别是足够的。例如,熵评估器模块108可以根据规定的安全性级别来确定针对对手112表征的工作量处的适合熵级别。在一些实例中,如果评估的熵不够,则熵评估器模块108可以从熵源104a-b获得更多采样或者获得更多熵源,并且重新评估熵,直到熵的量对于期望的安全性水平足够为止。这样,熵评估器模块108可以考虑用于做出决策的过程可能向对手112泄露该信息的某部分的可能性。在一些实例中,可以根据从源获得的采样来导出密码密钥。
在操作的此类示例性方面,可以预先执行熵的评估。例如,在要进行任何密钥生成(例如,开发时间)之前,使用来自源的观测采样值来评估源。从部分地使用旨在用于密钥生成的采样值来评估源的意义上说,可以回溯地执行评估。计算的熵可以是考虑了从源获得的采样可能具有较低概率的可能性的最终熵,因此是比源的最可能的输出更多的熵。
在操作的一些示例性方面,关于推断出的分布集合最小化熵并且对分级进行可能的最大化以获得推断出的分布集合可以使用通用优化技术。通用优化技术可以是例如梯度法、牛顿法、共轭方向法、准牛顿法、神经网络、不可微分方法(例如,Nelder-Mead单一或模拟退火法)、惩罚方法、Karush-Kuhn-Tucker条件、凸方法。可以通过假设概率模型特有的算法来获得在熵评估中涉及的优化问题之一(例如,最小化推断出的分布集合上的熵、或者确定推断出的分布集合作为最大分级集合)的解。例如,如果假设概率模型是隐式Markov模型,则Baum-Welch算法可以用于对熵评估中涉及的优化问题进行求解。
图2是示出了用于在密码系统中计算熵的示例性过程200的流程图。示例性过程200可以由例如熵评估器模块108来执行,以评估图1中所示的熵源104a-b的熵。可以单独地评估熵源104a-b中的每一个。可以组合(例如,相加或者以其他方式组合)独立源的熵。可以将熵源系统102作为熵池来评估。在一些实例中,示例性过程200中的一些或全部操作可以由计算设备、服务器、另一种类型的计算系统或者其任何适当的组合来执行。在一些实现中,在安全的环境中(例如,在防火墙后、在安全硬件中或者在另一种类型的环境中)执行过程200。示例性过程200可以包括额外或不同的操作,并且可以以所示的顺序或者以不同的顺序来执行操作。在一些实现中,可以以迭代的方式重复或执行示例性过程200中的一个或更多个操作。
在210,从一个或更多个熵源来获得采样值。熵源可以包括图1中的熵源104a-b中的一个或更多个或者其他类型的熵源。例如,可以根据用户输入、环形振荡器、噪声二极管、磁盘读取时间的变化和/或系统使用来获得采样值。
可以针对每一个熵源获得或导出概率模型。熵源的概率模型可以是或者可以对应于熵源的预定的可能分布集合。熵源的分布针对熵源的每一个可能的输出值指示熵源将产生该输出值的概率。熵源的实际分布可能不是先验已知的(例如,它可以随着时间而改变,或者可能不能或难以完全表征实际分布),因此熵源的概率模型提供了可以潜在地描述熵源的预定的分布集合。因此,可以根据熵源的概率模型或者其他类型的信息来确定熵源的预定分布集合。
按如下方式提供示例性的理论框架。概率空间∏和采样空间x是集合。在密码环境中,x通常是有限的,但是∏通常是不可数无限的。采样空间x可以被假设为有限的。元素p∈∏可以是分布。元素x∈X可以是采样。∏和X的概率函数可以是以下函数:
P:∏×X→[0,1]:(p,x)→Pp(x)
使得针对所有p∈∏,下面的求和成立:
可以用三元组(∏,X,P)表示概率模型,其中,∏是概率空间,X是采样空间,P是概率函数。换言之,在一些实例中,评估在有限集合X(称作采样空间)中产生采样值的源的密码熵可以依赖于源具有属于某集合∏(称作概率空间)的分布的假设。为了进行评估,可以使该假设的概率模型是显式的。标记Pp(x)可以用于表示P(p,x)。
在220,确定从熵源获得的每一个采样值的典型性。可以针对预定的分布集合中的分布中的每一个来确定获得的采样值的典型性。例如,可以针对所选概率模型中的一些或全部分布来确定采样值的典型性。在一些实例中,给定采样值的典型性指示从熵源系统中随机选择的采样值最多与给定采样值同概率的概率。在一些实现中,在220,确定每一个采样值的似然性。可以针对预定的分布集合中的每一个分布来确定获得的采样值中的一些或全部的似然性。
在230,基于典型性来确定预先选择的分布中的每一个的分级。在一些实现中,典型性的值用于分级。在一些实现中,似然性的值用于分级。可以基于典型性、似然性或者根据采样值和分布导出的其他值来确定分级。在240,基于分级来选择或者推断分布的子集。选择过程可以包括选择具有最高分级或者具有高于指定最小阈值的分级的一个或更多个分布。因此,所选的分布子集可以包括单个分布,或者所选的分布子集可以包括多个分布。
可以按如下方式在示例性理论框架中描述操作220、230和240。最大分级技术可以用于选择分布的子集。假设g是与分级值推断函数ig相关联的概率模型(∏,X,P)的一般分级。可以按如下方式将与分级g相关联的最大分级推断描述为集合值推断imax g
函数imax g可以被认为是根据g或根据ig导出的。在一些情况下,g是非连续的,并且这种最大值p可能不存在。在这些情况下,有时可以使用备选方式。考虑x处的分级值的上确界,写为sx=supp∈∏g(x,p)。定义其是根据大小∈来嵌套的。为了方便,在∏的某自然拓扑中,可以是S的闭包。如果将定义为非空的(如果∏具有紧凑拓扑,则这是成立的),则isupg(x)可以用作空集imaxg(x)的适当替换形式,即使g(x,p)的值<sx,其中,p∈isupg(x)。
在密码应用中,熵参数可能比分布本身更受关注。如果参数是连续的,则上面关于isupg(x)的定义将提供参数的期望答案。对于非连续参数,isupg(x)上的参数可能不是期望的。在该情况下,不是认为isupg(x)是集合链的交叉点,而是可以认为isupg(x)是集合链的极限。这使得我们能够考虑S的参数的极限,其可能与交叉点上的参数的值不同。在很多情况下,推断的集合imax g(x)是单个元素(单元素)集合。在这些情况下,推断更像是点值推断函数。然而,x通常具有使几个(可能无穷多个)不同的分布p达到最大值的一些值。如果G是一般分级方法或者IG是分级值推断方法,则可以使用上面的推断函数来导出集合值推断方法ImaxG。从imax g(x)的等式包括∏的意义上说,最大分级推断可以是与模型有关的。该与模型相关性的潜在结果是,模型(∏,X,P)的约束(Θ,X,P)中的最大分级推断可能不具有与模型(∏,X,P)中的最大分级推断的给定关系。
阈值分级技术或置信度可以用于选择分布的子集。假设g是模型(∏,X,P)的一般分级。设t∈[0,1],并且将该值称作阈值水平。阈值分级推断函数ig>t是集合值推断函数,其由下式给出:
ig>t(x)={p:g(x,p)>t}
如果t>u,则因此,获得的集合作为阈值的函数在大小上是缩小的或稳定的。高阈值可能导致较窄(甚至可能空)推断结果,而低阈值可能导致较宽推断结果。
值c=1-t有时被称作推断的置信度。随着置信度的增加,推断结果的广度可能增加(或者保持稳定)。这反映出我们通常可以做出加宽我们的推断集合的牺牲以得到更多可信推断结果的想法。在一些实例中,当针对固定的p和变化的x的分级的分布与[0,1]上的均匀分布存在一定的相似性时,可以最佳地给分级设定阈值,这是因为置信度具有更好的意义。一些分级具有这种属性,而其他分级不具有这种属性。如果分级不是与模型有关的,则阈值分级推断不是与模型有关的。具体地,如果iΘ(x)在模型(∏,X,P)的约束(Θ,X,P)中是阈值分级推断,并且i(x)在模型中是阈值分级推断,则
iΘ(x)=Θ∩iΘ(x)。
当使用这种阈值分级推断并且采用参数的下确界时,模型的约束不能减小推断的参数,并且松弛模型不能增加推断的参数。在一些实例中,可以假定对手可以影响∏中p的选择。如果对手对p具有这种能力,则最大分级推断可以具有更少的值。为了适当的分级,高置信度阈值分级将仍然具有某值。
可以通过任何适当的技术来生成分级。可以将似然性分级gL描述为:
gL(x,p)=Pp(x)。
相关联的推断函数可以被写为Lx=igL(x)。因此,Lx(p)=Pp(x)。
术语似然性可以指示Lx可以具有与概率函数所具有的属性不同的属性。例如,对所有概率分布上的Lx的值进行求和(或者积分)未被保证获得1。似然性是统计推断中的公知且基本的概念。
可以基于典型性来生成分级。对于给定的包含性级别k∈[0,1],典型性分级gk可以被写为:
在一些示例中,值分别产生排他典型性、平衡典型性和包含典型性。可以使用额外或不同的k值。包含典型性g1(x,p)可以表示随机采样y最多与x同概率的概率。排他典型性g0(x,p)可以表示随机采样y至多与x的同概率的概率。平衡典型性是包含典型性和排他典型性的平均值。换言之,平衡典型性是包含和排他之间的中线。
与似然性不同,当典型性用于推断时,典型性尝试获取在相同的概率分布下采样与其他采样的概率比较的概念。对于固定分布p,通过典型性或似然性对采样值x进行排序给出了相同的排序。对于固定x和变化的p,通过典型性得到的排序可能与通过似然性得到的排序不同。当p在X上均匀分布时,典型性针对所有x是恒定的,并且使值k呈现包含性。当p在X上近似均匀分布时,对于最可能的x,其近似取值1-(1-k)/|X|。对于k<1,这将大于均匀分布的典型性。当p在X上不够均匀(subuniform)时,
因此,在准许不够均匀分布的模型中,基于典型性的任何推断可以等同处理这些模型。一些模型可以准许具有比所有不够均匀分布更高典型性的分布,在该情况下,可以进行一些有用的推断。在一些情况下,采样统计可以用作不够均匀分布之间的决胜属性。在上面的构思中,包含典型性至少与似然性一样大:
g1(x,p)≥gL(x,p)
但是平衡典型性和包含典型性可能更小。类似地,1-g0(x,p)≥gL(x,p)。排他典型性和包含典型性之间的间隔可能至少是似然性:
g1(x,p)-g0(x,p)≥gL(x,p)
典型性的概念基于重要性级别、p值(也称作百分位数或分位数,这取决于单位)和累积概率函数的统计中的公知概念。重要性级别的一般概念是指p值的值。P值的一般概念是至少在虚假设的情况下在[0,1]上呈现均匀分布的采样统计。可以针对连续分布通过关于采样空间上的某一函数f得到累积概率函数来形成P值统计。任何选择函数f可以获得p值。因此,x的p值是针对从相同分布中提取的y的f(y)≥f(x)的概率。p值的常见使用是当分布是正态分布并且函数f是恒等的时,p值与高斯误差函数有关。在密码应用中,分布通常是离散的,因此实现在[0,1]中均匀分布的正确p值不能始终严格完成。但是,可以使用这种分布。在密码应用中,所关注的参数、熵等等主要取决于分布而不是x中的特定结构。典型性可以是关于概率函数的累积概率。
典型性可以通过概率来对采样空间进行排序。这种排序通常在流行性(例如,音乐销量榜、选举结果和受欢迎名字列表)的排序方面是隐式的。游戏显示Family Feud涉及这种排序。对于几乎均匀的分布(不具有相同的概率),分布典型性几乎均匀地分布在[0,1]中,这很像p值。随机化的典型性g(x,p)是使用除了变量k是从区间[0,1]中随机均匀地选择的之外与上面的典型性相同的等式定义的随机变量。如果分布p是固定的并且具有由p给出的概率分布,则g(x,p)均匀地分布在[0,1]中。典型性的概念可以使重要性级别的概念适应评估最小熵的任务,其原因在于,它根据采样的概率对采样进行排序。
在250,计算熵。计算出的熵可以表示并且可以用作熵源的熵的评估,其中,从熵源获得采样值。可以基于所选的分布子集、来自熵源的采样值、或者这些和其他信息的任何适当的组合来计算熵。可以基于额外或不同的因素(例如,对手可得到的信息等)来计算熵。计算熵可以包括:识别对手可得到的辅助信道信息和计算资源。熵计算可以包括:针对所选择的分布子集中的每一个分布,确定对手使用对手可得到的辅助信道信息和资源猜出密码秘密的最大概率的对数。然后,可以将对数在所有分布上的最小值识别为熵。可以使用额外或不同的技术。
可以使用任何适当的熵度量。例如,最小熵、Shannon熵、Renyi熵、工作熵、偶然应用的工作熵或者其任何适当的组合或变形可以用于计算熵。可以以比特为单位或者用其他单位来表达熵。分布p的最小熵可以例如表达为:
H(p)=-log2 maxx Pp(x)=minx(-log2Pp(x))。
分布p的阶数t的Renyi熵可以例如表达为:
随着t→1,Renyi熵接近Shannon熵,随着t→∞,Renyi熵接近最小熵。
工作熵可以例如表达为:
其中,对不同值的任意序列xi取最小值。根据惯例,如果x不是X的元素,则设Pp(x)=0,这允许针对所有w明确地定义总和。变量w是工作量,并且可以用比特来度量。最小熵是零比特工作量时的工作熵。
在一些实现中,示例性过程200还可以包括确定熵源系统是否具有足以实现密码系统中的指定安全性级别的熵。如果确定熵源系统提供不足的熵,则示例性过程200可以修改熵源系统。在一些实例中,可以通过增加熵源的数量来修改熵源系统。例如,计算系统可以有权访问多个熵源(例如,鼠标移动、磁盘读取时间的变化、系统过程使用等),并且可以根据需要或视情况评估或使用熵源中的一个或更多个。在一些实例中,可以通过增加熵源系统产生的输出的大小来修改熵源系统。例如,可以根据需要或视情况来增加序时熵源的捕获时间或输出速率(或这二者)。
下面提供过程200在可以用于宽类别熵源(序时源)的特定示例性概率模型的情况下的示例性实现。序时源可以针对每一个实例以按时间排序的方式生成采样矢量的元素。在一些情况下,序时源可以运行不同时间量。这些源的分析示例性模型针对每一个实例是Markov模型,或者更一般地,当考虑源的多个实例时,Markov模型的常见能力。可以基于额外或不同类型的模型来执行评估。熵的总评估可以取值为所有假设模型(包括提供的示例性模型)的最小评估。在示例性模型中,计算根据采样统计得到的分级可能是有利的。在下面详细地描述了两个示例性采样统计:恒等采样统计和Markov频率统计。在后一种情况下,可以使用Goulden-Jackson公式来计算得到的概率。
下面提供了序时熵源的示例性概率模型。序时熵源生成序列(x0,...,xm-1)形式的采样,其中,序列中的每一个条目是某一长度t的比特字符串。序时熵源需要运行以产生长度为m的序列的真实时间量可能改变。在该示例性概率模型中,序时源的熵可以被评估为m的函数。如果实际上可以通过将源运行固定时间量来使用源并且由此获得变量m,则可以形成考虑到这一点的模型。在该固定时间模型中,m的值均具有不同的概率。该模型可以具有益处。在一些示例性模型中,如果需要产生长度为m的采样序列的时间量或能力可能以某形式的辅助信道向对手泄露,则可以通过评估偶然熵来考虑该事实。
因此,在示例性概率模型中,概率空间是X={0,1}tm。示例性模型是Markov模型,其中,采样序列中的每一个元素仅取决于前一个元素。这是长度为m且宽度为2t的Markov模型。用(x0,...,xm-1)的形式表示X的元素,其中,每一个xi∈{0,1}t。认为xi的元素已经由源以按时间排列的顺序产生,但是不认为每一个xi中的单独t个比特具有任何按时间排列的顺序。在示例性模型中,可以任意地处理xi的值。概率空间包括以下对:维度为2t的实矢量v和维度为(2t)×(2t)的实方矩阵。索引v和M可以用长度为t的比特字符串来表示,或者可以等同地表示为范围从0至2t-1的整数(包含端点)。概率函数可以由下式给出:
分布(υ,M)∈∏可以满足υx≥0的条件以及以下条件:
其中,后者对所有有效索引y均成立。
在一些实例中,示例性概率模型可以进一步假设源的实例是等同且独立分布的。这些进一步的假设可能意味着基于一个或更多个实例的观测的推断可应用于源的其他实例。这导致具有较大采样空间的模型,这是因为它是Markov模型的常见能力。考虑k个实例导致采样空间为X={0,1}tmk的模型。概率空间是相同的。较大采样空间的元素可以表示为比特字符串序列的序列。然而,长度为k的外部序列表示实例,并且不是按时间排序的。内部序列表示来自每一个实例的按时间排序的输出。每一个单独的输出包括示例性模型任意地处理的t个比特。较大模型的概率函数可以是:
实际上,可以根据来自源的单个实例的输出的相对短的结果来生成密钥。在预期评估期间,来自源的多个实例的观测是可能的,这可以准许比单个源的观测更强的推断。但是,即使在预期评估期间仅观测单个实例,假设的较大概率模型意味着推断应用于源的其他实例。
具有使得2t>>(km)2的参数的示例性Markov模型中的形式推断非常可能产生零熵的推断,其中,正在被评估的源可以实质上产生完全均匀且独立分布的长度为t的比特字符串作为元素,而(所有k个实例和产生的所有比特的)总熵实际上可能为tmn个比特。推断的熵与实际的熵之间的差异可能是由于相对低的采样大小引起的。在t比特元素如此少的观测的情况下,它们可能完全不同并且形式推断方法将不包括Markov模型分布是确定性分布的可能性。为了适应这种设置,形式推断可以是观测从源得到的t比特值可以具有某结构。序时源具有表示某实量(例如,时间、或者可能某噪声二极管上的阻抗)的连续t比特测量的元素。在一些情况下,连续测量之间的数值差值可能足够小使得重复是可能的,即使差值仍然是t比特量也是如此。因此,这意味着对采样值应用变换,针对k=1,这看起来像:
(x0,...,xm-1)→(x0,x1-x0,...,xm-1-xm-2)
可以计算差值mod 2t。该变换是可逆的,因此它不会损失或增加任何实际的熵。如果差别的大多数绝对值由2t划界并且2t<<(km)2,则在序列之间可能存在重复。在该情况下,使用示例性Markov模型对子序列(x1-x0,...,xm-1-xm-2)进行建模是有意义的。简单的变换具有使得源的基本机制由形式推断方法可见的效果。如果差值充分变化以与任何确定性Markov分布不一致,则形式推断方法可以推断非零熵。变换的效果已经是改变原始采样的模型。
注意,该变换未修改实际的熵,而是已经提高评估的熵。这种提高的可能性确保谨慎。具体地,可以不期望(向模型)应用某一任意变换,这可能人为地且过度地提高熵评估。为了避免该情况,评估可以基于简单变换。具体地,模型的变换可以不基于采样。初始项x0对实际上有贡献,但是从变换的Markov模型中排除,这是因为它不是元素的差别,因此不能预期它在过渡矩阵中具有相同的作用。此外,形式评估x0的非零熵仅对于k2>>2t是可能的。在该情况下,可以使用单独的模型来评估x0
在预期评估中,评估的熵的类型可以是偶然应用的工作熵。偶然应用的工作熵可以基于概率模型(∏,X,P)。可以使用泄露函数g:X→Z。如果源发出采样x,则对手会获知g(x)。可以使用应用函数f:X→Y。(应用函数可以被选择使得它不包括任何密码函数,而是应当包括应用于源采样的任何其他函数。)可以选择测量对手的密码能力的以比特为单位的工作量值w。分布p∈∏的偶然应用的工作熵可以由下式给出:
对于参数的默认选择,泄露函数g可以被设置为恒定函数,这意味着无泄露,并且工作量可以被设置为0。可以视情况使用不同的泄露函数和工作量值。应用函数可以反映采样实际上如何对种子做贡献。在评估追溯熵时,应当可以使用最终熵。
采样统计是从采样空间到统计空间的函数x:X→S。采样统计根据模型(∏,X,P)得到另一个模型(∏,S,Q),使得Qp(y)=∑x∶s(x)=yPp(x)。可以对∏进行推断,好像正在得到的模型中进行推断一样。也即是说,考虑观测x,查看s(x),并且对表征假设得到的模型的分布p的值进行推断。恒等函数可以被视为采样统计。
针对更小的单实例示例性模型(宽度为2t且长度为m的Markov模型)的两个示例性采样统计是恒等函数和Markov频率统计F,可以是F(x)=(e(x),U(x)),其中,是2t维的矢量,除了位置x0处的条目(其值为1)之外,其全部条目为零(矢量条目索引从0至m-1));并且U(x)是具有非负整数条目Uy,z的2t×2t矩阵,其中,Uy,z由整数对(y,z)编索引,使得0≤y,z≤2t,其中,
Uy,z=|{i|1≤i≤N-1,xi-1=y,xi=z}|
针对较大的多实例化Markov模型(具有k个实例)的示例性采样统计F可以是:
其中,xj是长度为m的序列(具有t比特字符串的条目)。总和中的每一个F项是矢量和矩阵对,并且在总和中,将矢量相加并且将矩阵相加。在一些实现中,例如,如果采样统计关于概率模型是与模型无关的,则可以使用给定模型的任何采样统计。在一些实现中,不使用不与模型无关的采样统计。在一些实现中,不使用以取决于观测的采样的方式选择的采样统计。
在一些实现中,分级可以包括概率空间上的实值函数分级的集合可以被称作Γ(∏)。分级值推断函数是函数i:X→Γ(∏),其也可以被认为是函数当从上下文清楚得知时,分级值推断函数可以仅被称作分级。标记ix(p)可以用于指示i(x,p)(其指示i(x)(p))。
集合值推断函数i可以是这样的分级值推断函数i,其中,针对所有(x,p)∈X×P,ix(p)∈{0,1},并且可以使用 识别ix,使得i将X映射到∏的子集。如果用两种方式之一根据另一分级值推断j导出集合值推断i,则集合值推断i是分级推断。如果下式成立,则将分级推断i最大分级:
其可以被标记为如果下式成立,则使用阈值t将分级推断i阈值分级:
i(x)={p:jx(p)≥t}
其可以被标记为i=j≥t。集合值推断可以是分级推断,并且可以根据实分级值推断导出。示例性分级推断被阈值分级。示例性阈值级别是2-40
下面提供了可以根据其导出分级推断的四个分级。似然性分级由Lx(p)=Pp(x)给出。似然性分级可以不是阈值分级的。包含典型性分级可以由下式给出:
平衡典型性分级可以由下式给出:
平衡典型性是示例性实分级。调整的似然性分级可以由下式给出:
在一些情况下,调整的似然性分级不是阈值分级的。因此,允许的集合值分级可以是以及T≥t和B≥t。示例性集合值分级是B2-40
例如,考虑观测x的熵的评估可以基于分布的集合值推断i。可以按下式计算评估的熵:
H(x)=inf{Hf((w))|g(p):p∈i(x)}。
可以使用额外或不同的熵模型。当使用多种方法(例如,通过不同的分级、不同的采样统计、甚至不同的概率模型)进行评估时,评估的熵可以取值为所有评估中的最小值。
在示例性模型中,利用示例性推断函数,可以针对两个默认采样统计进行评估。评估熵最多可以是这两个评估的最小值。熵的评估可以包括该默认评估。
本说明书中描述的操作可以被实现为数据处理装置对一个或更多个计算机可读存储设备上存储的或者从其他源接收的数据执行的操作。术语“数据处理装置”涵盖用于处理数据的所有类型的装置、设备和机器,例如包括可编程处理器、计算机、片上系统或者前述各项中的多项或者组合。装置可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。除了硬件以外,装置还可以包括为考虑中的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或者上述各项中的一项或多项的组合的代码。装置和运行环境可以实现各种不同的计算模型基础设施,例如,web服务、分布式计算和网格计算基础设施。
可以以任何形式的编程语言来写计算机程序(也称作程序、软件、软件应用程序、脚本或代码),所述编程语言包括:编译或解释语言、声明或程序语言,并且可以以任何形式来部署计算机程序,包括部署为单独的程序或者部署为适合于用于计算环境的模块、组件、子例程、对象,或者其他单元。计算机程序可以、但无需与文件系统中的文件相对应。程序可以存储在文件的保存其他程序或数据(例如,存储在标记语言文档中的一个或更多个脚本)的部分中、专用于考虑中的程序的单个文件中、或者多个协同文件(例如,存储一个或更多个模块、子程序或者代码的各个部分的文件)中。计算机程序可以被部署为在一个计算设备上或者在位于一个站点或分布在多个站点并且通过通信网络互连的多个计算机上执行。
本说明书中描述的过程和逻辑流可以由一个或更多个可编程处理器来执行,所述一个或更多个可编程处理器执行一个或更多个计算机程序以通过操作输入数据并且生成输出来执行动作。过程和逻辑流也可以由以下各项来执行并且装置也可以实现为以下各项:专用逻辑电路,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。
适合于执行计算机程序的处理器包括例如通用微处理器和专用微处理器以及任何类型的数字计算设备的任意一个或更多个处理器。通常,处理器将从只读存储器或随机存取存储器或者这二者接收指令和数据。计算设备的必不可少的元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或更多个存储器设备。通常,计算设备还将包括或者被可操作地耦合以从用于存储数据的一个或更多个存储设备接收数据或者向所述一个或更多个存储设备传递数据或者进行这两个操作。然而,计算设备不需要具有这些设备。此外,计算机可以嵌入在另一设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收机或者便携式存储设备(例如,通用串行总线(USB)闪存驱动器),仅举几个例子。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、媒体和存储器设备,例如包括半导体存储器设备,例如,EPROM、EEPROM和闪存存储器设备;磁盘,例如,内部硬盘或可拆卸磁盘;磁光盘;和CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路来补充或者并入到专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题可以实现在计算机上,该计算机具有用于向用户显示信息的显示设备(例如,LCD(液晶显示器)屏幕)和用户可以向计算机提供输入的键盘和定点设备(例如,触摸屏、触控笔、鼠标等)。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何类型的传感反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以通过任何形式接收来自用户的输入,包括:听觉、语音或触觉输入。此外,计算设备可以通过向用户使用的设备发送文档(例如,通过响应于从web浏览器接收的请求向用户的客户端设备上的web浏览器发送网页)并且从该设备接收文档来与用户进行交互。
本说明书中描述的主题中的一些可以实现在计算系统中,该计算系统包括后端组件(例如,数据服务器)、或包括中间件组件(例如,应用服务器)、或者包括前端组件(例如,具有用户通过其可以与本说明书中描述的主题的实现进行交互的图形用户界面或者web浏览器的客户端计算设备)、或者一个或更多个此类后端组件、中间件组件或前端组件的任意组合。可以通过任意形式或方式的数字数据通信(例如,数据网络)来互连系统的组件。
计算系统可以包括客户端和服务器。客户端和服务器通常远离彼此并且通常通过数据网络进行交互。客户端和服务器的关系通过在相应计算机上运行并且相互具有客户端-服务器关系的计算机程序而出现。在一些实现中,服务器向客户端设备发送数据。可以在服务器处从客户端设备接收在客户端设备处生成的数据。
虽然本说明书包含很多具体实现细节,但是这些细节不应当被理解为对要求保护的内容的范围的限制,而是应当被理解为特定实现特有的特征的描述。在本说明书中在单独实现的上下文中描述的特定特征也可以组合地实现在单个实现中。相反,在单个实现的上下文中描述的各个特征也可以单独地实现在多个实现中或者实现在任何适当的子组合中。此外,虽然在上文中可以将特征描述为以特定组合操作并且甚至最初这样要求保护,但是在一些情况下,来自要求保护的组合的一个或更多个特征可以从组合中排除,并且要求保护的组合可以涉及子组合或子组合的变形。
类似地,虽然以特定的顺序在附图中描绘了操作,但是这不应当被理解为需要以所示出的特定顺序或者连续顺序执行这些操作或者所有示出的操作被执行以实现期望的结果。在特定的环境中,多任务处理和并行处理可以是有利的。此外,上述实现中的各个系统组件的分离不应当被理解为需要所有实现中的这种分离,并且应当理解的是,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装在多个软件产品中。
在一般方面,在密码系统中评估熵。例如,结合制造包括或利用熵源的密码系统、结合在使用密码系统期间或者在其他时刻部署或测试密码系统,来评估熵。在一些情况下,通过计算熵的定量度量来评估熵源的熵。此外或备选地,可以例如通过确定由熵源提供的熵是否足以达到密码系统中的指定安全性级别来定量地评估熵。
在一些方面,由熵源系统来产生采样值。针对采样值中的每一个确定典型性。针对预先选择分布基于采样值的典型性来确定分级。基于分级来选择预先选择分布的子集。基于多个分布的子集来计算熵源系统的熵。
这些和其他方面可以包括以下特征中的一个或更多个。确定熵源系统是否具有足以达到密码系统中的指定安全性级别的熵。基于确定熵源系统具有不足的熵来修改熵源系统。给定采样值的典型性指示从熵源系统中随机选择的采样值最多与给定采样值同概率的概率。基于由熵源系统产生的采样值来给伪随机数发生器播种。基于播种的伪随机数发生器的输出来获得密码秘密。
此外或备选地,这些和其他方面可以包括以下特性中的一个或更多个。确定采样值中的每一个的似然性。基于采样值的典型性和采样值的似然性来确定分级。基于分级选择分布的子集包括:选择具有最大分级的一个或更多个分布,选择具有高于指定阈值分级的一个或更多个分布,或者这些步骤的任何适当的组合。计算熵包括:识别对手可得到的辅助信道信息和计算资源。计算熵包括:针对分布的子集中的每一个,确定对手使用对手可得到的辅助信道信息和资源猜出密码秘密的最大概率的对数。计算熵包括:将针对分布的子集所确定的对数的最小值识别为熵。
因此,已经描述了主题的实现。其他实现落入所附的权利要求的范围内。在一些情况下,权利要求中记载的动作可以以不同的顺序来执行并且仍然实现期望的结果。此外,附图中描绘的过程不一定需要所示的特定顺序或者连续顺序来实现期望的结果。在特定实现中,多任务处理和并行处理可以是有利的。

Claims (17)

1.一种用于在密码系统中评估熵的方法,所述方法包括:
由硬件数据处理装置获得由熵源系统产生的多个采样值;
由所述硬件数据处理装置确定预先选择的多个概率分布中的每一个概率分布的典型性分级,所述典型性分级提供所述多个概率分布之间的比较,每一个单独的概率分布的典型性分级是基于从所述单独的概率分布中选择多个采样值的相应概率来确定的,其中每一个单独的概率分布的典型性分级是基于关于所述单独的概率分布的累积概率来确定的;
由所述硬件数据处理装置基于所述典型性分级来选择所述多个概率分布的子集;
由所述硬件数据处理装置基于所述多个概率分布的所述子集来计算所述熵源系统的熵,其中计算出的熵用于确定所述熵源系统的安全性风险;
确定所述熵源系统是否具有足够的熵以达到所述密码系统中指定的安全性级别;以及
基于确定所述熵源系统具有不足的熵来修改所述熵源系统。
2.根据权利要求1所述的方法,其中,确定所述典型性分级包括:确定所述采样值中的每一个采样值的典型性。
3.根据权利要求2所述的方法,其中,给定采样值的典型性指示从所述熵源系统中随机选择的采样值至多与所述给定采样值同概率的概率。
4.根据权利要求1所述的方法,还包括:
基于由所述熵源系统产生的采样值来给伪随机数发生器播种;以及
基于经播种的伪随机数发生器的输出来获得密码秘密。
5.根据权利要求1所述的方法,包括:确定每一个采样值的典型性和似然性,其中,所述典型性分级是基于采样值的典型性和所述采样值的似然性来确定的。
6.根据权利要求1所述的方法,其中,基于所述典型性分级选择所述多个概率分布的子集包括以下中的至少一个:
选择具有最大典型性分级的一个或更多个概率分布;或者
选择具有高于指定的阈值典型性分级的典型性分级的一个或更多个概率分布。
7.根据权利要求1所述的方法,其中,计算所述熵包括:
识别对手可得到的辅助信道信息和计算资源;
针对所述概率分布子集中的每一个概率分布,确定所述对手使用所述对手可得到的所述辅助信道信息和所述资源猜出所述密码秘密的最大概率的对数;以及
将针对所述概率分布子集所确定的对数的最小值识别为所述熵。
8.一种密码装置,包括:
物理熵源组件;
熵评估器组件,操作于:
由硬件数据处理装置获得由所述熵源组件产生的多个采样值;
由所述硬件数据处理装置针对预先选择的多个概率分布中的每一个概率分布确定典型性分级,所述典型性分级提供所述多个概率分布之间的比较,每一个单独的概率分布的典型性分级是基于从所述单独的概率分布中选择多个采样值的相应概率来确定的,其中每一个单独的概率分布的典型性分级是基于关于所述单独的概率分布的累积概率来确定的;
由所述硬件数据处理装置基于所述典型性分级来选择所述多个概率分布的子集;
由所述硬件数据处理装置基于所述多个概率分布的所述子集来计算所述熵源组件的熵,其中计算出的熵用于确定所述熵源组件的安全性风险;
确定所述熵源组件是否被配置为针对所述密码系统中指定的安全性级别产生足够的熵;以及
基于确定所述熵源组件未被配置为产生足够的熵来修改所述熵源组件。
9.根据权利要求8所述的密码装置,还包括:
密码秘密产生器组件,所述密码秘密产生器组件是基于由所述熵源组件产生的值被播种的;以及
密码通信组件,操作于从所述密码秘密产生器组件获得密码秘密。
10.根据权利要求8所述的密码装置,所述熵评估器组件操作于确定每一个采样值的典型性和似然性,其中,所述典型性分级是基于采样值的典型性和采样值的似然性来确定的。
11.根据权利要求8所述的密码装置,其中,计算所述熵包括:
识别对手可得到的辅助信道信息和计算资源;
针对所述概率分布子集中的每一个概率分布,确定所述对手使用所述对手可得到的所述辅助信道信息和所述资源猜出所述密码秘密的最大概率的对数;以及
将针对所述概率分布子集所确定的对数的最小值识别为所述熵。
12.一种非瞬时性计算机可读介质,包括:用于在密码系统中评估熵的指令,当由数据处理装置执行时,所述指令操作于执行包括以下各项的操作:
由硬件数据处理装置获得由熵源系统产生的多个采样值;
由所述硬件数据处理装置确定预先选择的多个概率分布中的每一个概率分布的典型性分级,所述典型性分级提供所述多个概率分布之间的比较,每一个单独的概率分布的典型性分级是基于从所述单独的概率分布中选择多个采样值的相应概率来确定的,其中每一个单独的概率分布的典型性分级是基于关于所述单独的概率分布的累积概率来确定的;
由所述硬件数据处理装置基于所述典型性分级来选择所述多个概率分布的子集;
由所述硬件数据处理装置基于所述多个概率分布的所述子集来计算所述熵源系统的熵,其中计算出的熵用于确定所述熵源系统的安全性风险;
确定所述熵源系统是否具有足够的熵以达到所述密码系统中指定的安全性级别;以及
基于确定所述熵源系统具有不足的熵来修改所述熵源系统。
13.根据权利要求12所述的计算机可读介质,其中,确定所述典型性分级包括:确定所述采样值中的每一个采样值的典型性,并且给定采样值的典型性指示从所述熵源系统中随机选择的采样值至多与所述给定采样值同概率的概率。
14.根据权利要求12所述的计算机可读介质,所述操作还包括:
基于由所述熵源系统产生的采样值来给伪随机数发生器播种;以及
基于经播种的伪随机数发生器的输出来获得密码秘密。
15.根据权利要求12所述的计算机可读介质,所述操作包括:确定每一个采样值的典型性和似然性,其中,所述典型性分级是基于采样值的典型性和所述采样值的似然性来确定的。
16.根据权利要求12所述的计算机可读介质,其中,基于所述分级选择所述多个概率分布的子集包括以下中的至少一个:
选择具有最大分级的一个或更多个概率分布;或者
选择具有高于指定的阈值分级的分级的一个或更多个概率分布。
17.根据权利要求12所述的计算机可读介质,其中,计算所述熵包括:
识别对手可得到的辅助信道信息和计算资源;
针对所述概率分布子集中的每一个概率分布,确定所述对手使用所述对手可得到的所述辅助信道信息和所述资源猜出所述密码秘密的最大概率的对数;以及
将针对所述概率分布子集所确定的对数的最小值识别为所述熵。
CN201610909542.XA 2011-11-30 2012-09-26 评估密码熵 Active CN106452722B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11191302.6 2011-11-30
EP11191302.6A EP2600561B8 (en) 2011-11-30 2011-11-30 Assessing Cryptographic Entropy
CN201280059138.8A CN103975373B (zh) 2011-11-30 2012-09-26 评估密码熵

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201280059138.8A Division CN103975373B (zh) 2011-11-30 2012-09-26 评估密码熵

Publications (2)

Publication Number Publication Date
CN106452722A true CN106452722A (zh) 2017-02-22
CN106452722B CN106452722B (zh) 2020-03-10

Family

ID=45507346

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610909542.XA Active CN106452722B (zh) 2011-11-30 2012-09-26 评估密码熵
CN201280059138.8A Active CN103975373B (zh) 2011-11-30 2012-09-26 评估密码熵

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201280059138.8A Active CN103975373B (zh) 2011-11-30 2012-09-26 评估密码熵

Country Status (5)

Country Link
EP (2) EP2600561B8 (zh)
KR (1) KR101696054B1 (zh)
CN (2) CN106452722B (zh)
CA (1) CA2856114C (zh)
WO (1) WO2013078556A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9571284B2 (en) * 2014-03-13 2017-02-14 GM Global Technology Operations LLC Controlling access to personal information stored in a vehicle using a cryptographic key
KR101646689B1 (ko) 2015-01-29 2016-08-08 국민대학교산학협력단 상대적 독립성을 이용한 누적 엔트로피 평가 장치 및 방법
EP3182638B1 (en) * 2015-12-18 2019-12-25 ID Quantique S.A. Apparatus and method for adding an entropy source to quantum key distribution systems
CN107301033B (zh) * 2017-06-13 2021-09-17 复旦大学 一种真随机数发生器最大熵速率的测试方法
IT201700086031A1 (it) 2017-07-27 2019-01-27 Istituto Naz Fisica Nucleare Apparato, sistema e metodo di generazione di numeri casuali
US11646867B2 (en) * 2017-12-22 2023-05-09 The Boeing Company Systems and methods implementing countermeasures to phase tracking attacks on ring oscillator based entropy sources
US11301215B2 (en) 2020-01-27 2022-04-12 International Business Machines Corporation Real time configuration of multiple true random number generator sources for optimized entropy generation
CN111934864B (zh) * 2020-08-14 2021-07-06 电子科技大学 基于密钥熔合变换的秘密通信方法
CN112632794B (zh) * 2020-12-30 2023-08-11 苏州电力设计研究院有限公司 基于交叉熵参数子集模拟优化的电网可靠性评估方法
CN113037487A (zh) * 2021-03-10 2021-06-25 中国工商银行股份有限公司 文件加密数据处理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050031120A1 (en) * 1999-02-01 2005-02-10 Gideon Samid Denial featured cryptography
US20060067527A1 (en) * 2004-09-27 2006-03-30 Urivskiy Alexey V Method for making seed value used in pseudo random number generator and device thereof
CN101292464A (zh) * 2005-08-24 2008-10-22 高通股份有限公司 密码学上安全的伪随机数字发生器
CN101645884A (zh) * 2009-08-26 2010-02-10 西安理工大学 基于相对熵理论的多测度网络异常检测方法
US20100106757A1 (en) * 2007-09-18 2010-04-29 Seagate Technology Llc Active Test and Alteration of Sample Times For a Ring Based Random Number Generator

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778069A (en) * 1996-04-10 1998-07-07 Microsoft Corporation Non-biased pseudo random number generator
US6628786B1 (en) * 1997-09-30 2003-09-30 Sun Microsystems, Inc. Distributed state random number generator and method for utilizing same
US8189778B2 (en) * 2008-07-07 2012-05-29 General Instrument Corporation Adaptive generation of a pseudo random number generator seed
US9026571B2 (en) * 2008-10-27 2015-05-05 Microsoft Technology Licensing, Llc Random number generation failure detection and entropy estimation
US8891756B2 (en) * 2008-10-30 2014-11-18 Certicom Corp. Collision-resistant elliptic curve hash functions

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050031120A1 (en) * 1999-02-01 2005-02-10 Gideon Samid Denial featured cryptography
US20060067527A1 (en) * 2004-09-27 2006-03-30 Urivskiy Alexey V Method for making seed value used in pseudo random number generator and device thereof
CN101292464A (zh) * 2005-08-24 2008-10-22 高通股份有限公司 密码学上安全的伪随机数字发生器
US20100106757A1 (en) * 2007-09-18 2010-04-29 Seagate Technology Llc Active Test and Alteration of Sample Times For a Ring Based Random Number Generator
CN101645884A (zh) * 2009-08-26 2010-02-10 西安理工大学 基于相对熵理论的多测度网络异常检测方法

Also Published As

Publication number Publication date
EP2600561A1 (en) 2013-06-05
CN103975373B (zh) 2016-11-02
EP3605940B1 (en) 2021-06-02
EP3605940A1 (en) 2020-02-05
WO2013078556A1 (en) 2013-06-06
CA2856114A1 (en) 2013-06-06
KR20140089407A (ko) 2014-07-14
CN106452722B (zh) 2020-03-10
KR101696054B1 (ko) 2017-01-13
EP2600561B1 (en) 2019-10-23
CN103975373A (zh) 2014-08-06
CA2856114C (en) 2020-01-21
EP2600561B8 (en) 2019-12-04

Similar Documents

Publication Publication Date Title
CN106452722A (zh) 评估密码熵
US10079673B2 (en) Assessing cryptographic entropy
US11444769B2 (en) Systems, devices, and methods for signal localization and verification of sensor data
US11824882B2 (en) Systems, devices, and methods for determining a confidence level associated with a device using heuristics of trust
US11695783B2 (en) Systems, devices, and methods for determining a confidence level associated with a device using heuristics of trust
US20230060864A1 (en) Data collection and analysis system and device
US10594480B2 (en) Efficient proof of knowledge of arbitrarily large data which remains unexposed
CN108604981A (zh) 用于估计秘密值的方法和设备
CN109417466A (zh) 机密密钥估算方法与装置
Simion Entropy and randomness: From analogic to quantum world
Hao et al. Asymmetric cryptographic functions based on generative adversarial neural networks for Internet of Things
Valiant et al. Information theoretically secure databases
Albayram et al. Evaluating the effectiveness of using hints for autobiographical authentication: A field study
Halak et al. Security attacks on physically unclonable functions and possible countermeasures
Brown Formally assessing cryptographic entropy
Tsou et al. SPARR: Spintronics-based private aggregatable randomized response for crowdsourced data collection and analysis
Ghosh et al. Experimental realization of BB84 protocol with different phase gates and SARG04 protocol
Bendary et al. Estimating the Unpredictability of Multi-Bit Strong PUF Classes
Wang et al. On the security and usability of segment-based visual cryptographic authentication protocols
Alamer Lightweight Synchronous Stream Ciphers: From Mathematical and Statistical Analysis to Proposed Secure Protocols for Mobile Cloud Computing and RFID Applications
Arslan Privacy protection for spatial trajectories against brute-force attacks
Sævarsson Combinatorics in Pattern-Based Graphical Passwords
AZOGU et al. Risk quantification of security authentication: a predictability modeling approach
Šeděnka of Thesis: Protocols and Tools for Protecting Biometric
Sedenka Bibliographie record

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1234908

Country of ref document: HK

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20191025

Address after: Voight, Ontario, Canada

Applicant after: Blackberry Ltd.

Address before: Rika Univ.

Applicant before: Seldikam Company

GR01 Patent grant
GR01 Patent grant