CN108292992A - 利用密钥和推导参数进行密码生成 - Google Patents
利用密钥和推导参数进行密码生成 Download PDFInfo
- Publication number
- CN108292992A CN108292992A CN201580083591.6A CN201580083591A CN108292992A CN 108292992 A CN108292992 A CN 108292992A CN 201580083591 A CN201580083591 A CN 201580083591A CN 108292992 A CN108292992 A CN 108292992A
- Authority
- CN
- China
- Prior art keywords
- key
- engine
- applied cryptography
- parameter
- indifference
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
- G06F21/46—Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Power Engineering (AREA)
- Input From Keyboards Or The Like (AREA)
- Storage Device Security (AREA)
Abstract
在一些示例中,一种方法包括接收用户输入串并且从用户输入串生成用于特定应用的应用密码。生成应用密码可以包括生成用于特定应用的密钥并且通过应用无差别选择过程以从多个字符集中选择字符集来指定应用密码的推导参数以生成应用密码。生成应用密码还可以包括:将密钥的散列值的一部分和用户输入串映射到通过无差别选择过程选择的字符集中的字符,以获取应用密码。
Description
背景技术
在科技迅速进步的情况下,当今社会中电子设备越来越流行。膝上型计算机、台式计算机、移动式电话和平板机设备是电子设备的一些示例,允许用户访问数字数据,在巨大的互联网络(诸如因特网)上进行通信并且执行本地或者基于web的应用。提高电子设备的效率以及安全性将进一步改善用户体验。
附图说明
在下面的详细描述中参考附图描述了特定示例。
图1示出了支持利用密钥和推导参数的应用密码生成的设备的示例。
图2示出了由设备通过输入引擎、密钥引擎、推导参数引擎和生成引擎进行的应用密码生成的示例。
图3示出了通过密钥引擎和推导参数引擎进行的远程存储的示例。
图4示出了支持利用密钥和推导参数的应用密码生成的设备的示例。
图5示出了由设备通过输入引擎、访问引擎和生成引擎进行的应用密码生成的示例。
图6示出了设备可以实施的用于生成应用密码的逻辑的示例。
图7示出了设备可以实施的用于生成应用密码的逻辑的另一个示例。
图8示出了支持利用密钥和推导参数的应用密码生成的设备的示例。
具体实施方式
密码偷窃是数字时代不断增长的问题。随着今天数字数据在社会中变得越来越流行,在网络攻击者寻求从为警觉的用户破解或者窃取应用密码面前,增加应用密码的安全性和强度是技术挑战。安全的密码生成可能要求增加的密码复杂度或者技术方案来增加攻击者能够获取用户的应用密码的难度。
本文的讨论可以提供增加密码安全性的方法、设备、系统、电路和逻辑。具体地,本文描述的特征可以提供通过包括用户输入串、生成密钥和推导参数的多个不同的元素进行的密码生成。可以通过无差别选择过程(例如,随机地)来确定推导参数,示例推导参数包括所选择的散列函数、散列迭代值和具有对应的字符编码的字符集。增加通过不加区别地选择的多个推导参数生成应用密码时的信息熵可以防止蛮力密码攻击,同时也将应用密码分离成多个不同的元素。密钥和推导参数可以被存储在不同的远程贮存器中,这可以通过要求攻击者获得对多个不同的贮存器的访问来调取元素以生成应用密码来进一步增加密码安全性。
在本文描述的特征还可以改善用户密码体验。例如,在本文描述的密码生成特征可以提供增加的安全性、强度、信息熵,或者随机性的密码,而允许用户提供用于生成密码的更简单的输入串。通过一个或小集合的用户输入串(其可以被用户容易地记得),在本文描述的特征可以生成用于不同的应用的不同的安全密码,其提供密码安全性,同时改善用户体验。而且,在本文描述的特征可以缓解风险,这是因为用户输入串的破坏可能不损害应用密码,因为可以远程地存储和保护也被使用以用于生成应用密码的密钥和推导参数。作为又一个好处,在本文描述的特征可以提供“在运行中”的应用密码的动态生成,其可以减少密码字是被静态地存储或者在通信网络上传送的应用密码的风险。
图1示出了支持利用密钥和推导参数的应用密码生成的设备100的示例。设备100可以采取访问应用的任何计算设备或者电子设备的形式。应用可以是由设备100执行的本地应用、通过web浏览器访问的基于web的应用,或者要求密码来进行访问的任何其他类型的应用。在图1中示出的示例中,设备100采取移动式电话的形式。设备100可以采用的其他示例形式包括台式机或者膝上型计算机、平板机设备、便携式电子邮件设备、个人数字助理(PDA)、便携式音乐设备、任何可穿戴的电子设备(诸如智能手表或者光头安装的电子设备),等。
如以下更详细地描述的,设备100可以支持通过普通的用户输入(例如,由用户容易地记得的单个密码)来生成多个不同的应用密码。在从用户输入生成应用密码时,设备100可以使用于生成密码的各个参数随机化,诸如应用通过无差别选择过程选择的散列函数、散列迭代值,或者字符集。通过这样做,设备100可以在生成应用密码时增加信息熵,这可以引起增加的密码强度。
作为一个示例,图1中示出的设备100包括输入引擎111、密钥引擎112、推导参数引擎113和生成引擎114。设备100可以将引擎111-114实施为硬件和程序的任何组合以实施在本文描述的引擎的功能。例如,用于引擎的程序可以采取存储在非暂时性机器可读贮存介质上的处理器可执行的指令的形式,并且用于引擎的硬件可以包括处理资源来执行那些指令。处理资源可以例如包括一个或者多个处理器。
在操作中,输入引擎111可以接收用户输入串以生成用于特定应用的应用密码。密钥引擎112可以生成用于特定应用的密钥,并且推导参数引擎113可以指定用于应用密码的推导参数,诸如通过应用无差别选择过程选择的散列函数、散列迭代值和字符集的任何组合。生成引擎114可以从用户输入串、密钥和推导参数生成应用密码。接下来更详细地描述这些和其他密码生成特征。
图2示出了由设备100通过输入引擎111、密钥引擎112、推导参数引擎113和生成引擎114进行的密码生成的示例。具体地,图2中示出的示例可以图示出了用于特定应用的初始密码生成,诸如在寄存用于特定应用的用户账号时。初始密码生成可以包括接收用户输入串201并且从用户输入串201生成指定至特定应用的应用密码202。在下面参考图4和5更详细地描述关于重新生成应用密码以用于随后访问或者登录到特定应用的示例特征。
转到图2中示出的密码生成示例,输入引擎111可以接收用户输入串201。用户输入串201可以包括由用户提供的任何字符串或者数据,诸如由用户使用的密码或者密码短语。输入引擎111可以通过设备100的用户接口来接收用户输入串102。例如,输入引擎111可以通过小键盘或者键盘、语音接口和语音至文本逻辑,或者根据设备100接收数据的任何其他方式来接收用户输入串201。
在一些示例中,输入引擎111还获取为其生成应用密码的特定应用的指示。例如,输入引擎111可以检测web浏览器中的特定web地址并且将特定web地址关联到特定应用。作为另一个示例,输入引擎111可以通过确定特定应用当前针对设备100激活——诸如通过查询活动管理器或者调取关于设备100中的当前活动窗口的应用名称,来获取特定应用的指示。输入引擎111可以向生成引擎114传送用户输入串201、特定应用的指示,或者传送这两者。
密钥引擎112可以生成用于生成应用密码202的密钥210。密钥引擎112可以应用任何随机或者伪随机密钥生成过程来生成密钥210。这样做时,密钥引擎112可以将密钥210生成为预先确定的长度,诸如128比特或者256比特作为示例。密钥引擎112生成密钥210的密钥长度、随机数生成算法或者任何其他参数可以是可配置的。一旦生成,密钥引擎112可以向生成引擎114提供密钥210,以用于生成应用密码202。
推导参数引擎113可以指定用于生成应用密码的一个或多个推导参数220。推导参数220可以指的是在生成应用密码202时使用的配置、约束或者任何其他参数。在图2中将推导参数220的三个示例示出为所选择的散列函数221、散列迭代值222和所选择的字符集223,将依次描述其每一个。
推导参数引擎113可以在散列函数的集合中选择散列函数以用于生成应用密码202。推导参数引擎113例如可以维持由生成引擎114支持的用于生成应用密码的多个不同的散列函数的列表。在图2中示出的示例中,推导参数引擎113包括示出为散列函数231的集合的散列函数清单,推导参数引擎113可以从该清单确定被选择的散列函数221。散列函数231的集合可以包括各种散列函数实施方式,诸如消息摘要算法(例如,MD5)、诸如SHA-0、SHA-1、SHA-2、SHA3之类的安全散列算法(SHA)、各种密码散列函数,等等。散列函数231的集合可以是可配置的,并且推导参数引擎113可以将散列函数231的集合限制为包括密码保护算法,而不是具有已知弱点的散列函数。在图2中,例如,散列函数231的集合包括标记为“SHA256”、“SHA1”和“SHAKE128”的散列函数,以及推导参数引擎113可以从其确定被选择的散列函数221的其他散列函数。
推导参数引擎113可以以各种方式从散列函数231的集合中确定被选择的散列函数221。在一些示例中,推导参数引擎113通过无差别选择过程在散列函数231的集合当中选择特定散列函数。由推导参数引擎113执行的无差别选择过程可以指的是通过其推导参数引擎113以故意任意的方式选择或者确定特定推导参数的过程。在这方面,无差别选择过程例如可以例如根据任何数量的随机选择进程、技术或者算法来采取随机选择过程的形式。在该示例中,推导参数引擎113可以从散列函数231的集合中随机地选择散列函数以确定被选择的散列函数221。作为另一个示例,无差别选择过程可以采取伪随机选择的形式,诸如伪随机数值采样或者模仿随机数生成的其他密码地保护过程。
在其他的示例中,推导参数引擎113可以根据特定选择方案来确定被选择的散列函数221。也就是说,推导参数引擎113可以通过特定选择机制(例如,循环法或者加权循环法)或者根据预先确定的或者可配置的排序来确定或者指定诸如被选择的散列函数221之类的特定推导参数。由推导参数引擎113应用的用于指定特定推导参数的选择机制可以是可配置的或者基于特定参数被设置。以这些方式或者更多的方式,推导参数引擎113可以确定所选择的散列函数221以用于生成应用密码202。
作为推导参数220的另一个示例,推导参数引擎113可以设置用于生成应用密码202的散列迭代值222。散列迭代值222可以是例如通过为了生成从其获取应用密码202的散列值而指定被选择的散列函数221被迭代的次数,而在生成应用密码202时被应用于被选择的散列函数221的参数。推导参数引擎113可以通过无差别选择过程——例如通过随机地确定散列迭代值222来确定散列迭代值222。在一些示例中,推导参数引擎113生成散列迭代值222作为随机数,因此在生成应用密码202时增大信息熵。推导参数引擎113可以利用任何数量的确定准则——诸如在特定数值范围(例如,500-1000)内、大于下限阈值(例如,大于100)、小于上限阈值(例如,小于100,000),或者根据确定准则的任何其他组合来确定散列迭代值222。
继续讨论推导参数示例,推导参数引擎113可以选择用于生成应用密码202使用的字符集。字符集可以指的是用于表示字符的编码方案。因此,示例字符集包括统一码和美国信息交换标准代码(ASCII)字符集。如以下更详细地描述的,由推导参数引擎113确定的选择的字符集223可以用于通过将散列值(或者其部分)映射到所选择的字符集223的字符编码值来生成应用密码202。
推导参数引擎113可以从多个字符集当中——例如,从由生成引擎114支持的不同的字符集232的列表中选择用于生成应用密码202的特定字符集。字符集232可以包括任何数量的不同的字符集,诸如在图2中被识别为“字母数字”、“统一码”和“可打印的ASCII”的字符集。生成引擎114可以支持任何数量的字符集,允许推导参数引擎113从字符集的范围中(例如,随机地)确定所选择的字符223。为了确定所选择的字符集223,推导参数引擎113可以应用无差别选择过程。例如,推导参数引擎113可以从字符集232的列表中随机地选择字符集以获取选择的字符集223。
在一些示例中,推导参数引擎113通过从选择过程中排除特定字符集来过滤字符集232的列表。当为其生成应用密码202的特定应用包括用于应用密码202的字符约束(例如,不能被包括在应用密码202中的特定字符或者字符类型)时,推导参数引擎113可以进行此操作。相应地,推导参数引擎113可以从字符集232的列表中过滤包括对于特定应用的应用密码202禁止的字符(或者多个字符)的特定字符集。作为一个说明性示例,特定应用可以拒绝包括诸如斜线(例如,“/”或者“\”字符)的专用字符的密码。在该示例中,推导参数引擎113可以从不包括斜字符的字符集232的滤波清单(例如,不包括用于被禁止的字符的字符编码值)当中确定所选择的字符集223。
如上所述,推导参数引擎113可以通过确定选择的散列函数221、散列迭代值222、选择的字符集223或者其组合来指定用于生成应用密码202的推导参数220。尽管已经描述了推导参数220的一些示例,但推导参数引擎113也可以指定用于生成所述应用密码202的更多、较少或者其他推导参数。推导参数引擎113可以指定用于不同的应用的不同的推导参数220。通过这样做,即使当提供同一用户输入串201时,推导参数引擎113也可以支持生成用于不同的应用的不同的应用密码202。
推导参数引擎113可以应用无差别选择过程(例如,通过随机选择)来确定推导参数220。通过使一个或多个推导参数220的确定或者选择随机化,推导参数引擎113可以在生成应用密码202时增大信息熵。进行此操作可以增加密码强度和攻击者能够恢复或者破解应用密码202的困难。因此,推导参数引擎113可以在指定推导参数220时提供增加的密码安全性。一旦确定,推导参数引擎113可以向生成引擎114传送推导参数220。
生成引擎114可以从用户输入串201、密钥210和推导参数220生成应用密码202。具体地,生成引擎114可以向用户输入串201和密钥210应用所选择的散列函数221以获取散列值。例如,生成引擎114可以将用户输入串201和密钥210连接(concatenate)或以另外方式组合以获取组合的数据串并且向组合数据串应用所选择的散列函数221。在一些示例中,生成引擎114可以屏蔽用户输入串201、密钥210,或两者的所选择的部分,以控制组合的数据串的长度。因此,生成引擎114可以从用户输入串201和密钥210获取散列值。
生成引擎114可以从散列值生成用于特定应用的应用密码202。例如,生成引擎114可以将散列值的一部分映射到所选择的字符集223的字符。在该示例中,所选择的字符集223可以指定用于所选择的字符集223的各种字符的特定编码值。为了映射散列值,生成引擎114可以识别散列值的第一部分(例如,前8比特)来作为字符码,并且将该第一部分映射为所选择的字符集223中的特定字符。生成引擎114可以继续将散列值的各个部分映射为所选择的字符集223的字符编码值,以获取应用密码202。
生成引擎114可以将应用密码202生成为特定字符长度。在这方面,生成引擎114可以将散列值(或者其部分)映射到等于由用户输入的密码长度值或者满足特定应用的密码长度约束(例如,满足最小长度需求)的字符集的多个字符。因此,生成引擎114可以映射散列值的充足部分以满足应用密码202的字符长度约束。
作为另一个特征,生成引擎114可以生成应用密码202以满足特定应用的密码要求,包括特定应用的字符特定的密码约束。字符特定的密码约束可以要求应用密码202将特定字符类型包括在应用密码202内,诸如要求包括预先确定的数量的专用字符、数字字符、大写字母或者小写字母,等等。为了满足特定应用的字符特定的密码约束,生成引擎114可以检查生成的应用密码202,以确定字符特定的密码约束是否被满足。如果没有,则生成引擎114可以例如通过从散列值中丢弃前“X”个比特(例如,2、4、11、33或者任何其他可配置的数量)来映射散列值的不同的部分。然后,生成引擎114可以将具有丢弃的比特的散列值映射到所选择的字符集223的字符编码值,以获取另一个应用密码202。生成引擎114可以继续进行此操作,直到获取满足字符特定的密码约束的应用密码202。
作为另一个示例,在确定应用密码202不满足字符特定的密码约束(或者任何其他密码要求)之后,生成引擎114可以指示密钥引擎112和推导参数引擎113提供不同的密钥210、不同的推导参数220,或者提供这两者。然后,生成引擎114可以从不同的密钥210、不同的推导参数220,或者从这两者生成不同的应用密码202。生成引擎114可以利用不同的密钥210和/或不同的推导参数220重复地生成应用密码,直到所生成的应用密码202满足字符特定的密码约束或者其他密码要求。
作为又一个示例,密钥引擎112和推导参数引擎113可以向生成引擎114提供多个密钥210和多个集合的推导参数220,通过其生成引擎114可以生成用于特定应用的多个不同的应用密码202。然后,生成引擎114可以通过用户接口呈现多个不同的应用密码以供用户选择。一旦有用户对于多个不同的应用密码中的特定应用密码的选择的指示,生成引擎114可以跟踪用于生成特定应用密码的特定密钥210和特定推导参数220,并且丢弃未使用应用密码和它们的相关联的密钥210和推导参数220。因此,生成引擎114可以以在以上描述的任何方式生成用于特定应用的应用密码202。
图3示出了通过密钥引擎112和推导参数引擎113进行远程存储的示例。在生成应用密码202之后,设备100可以存储密钥210和推导参数220以支持应用密码202的随后的生成(例如,重新生成或者调取)。在一些示例中,设备100传送密钥210和推导参数220以远离设备100进行存储。例如,密钥引擎112可以向密钥贮存器301发送用于生成应用密码202的密钥210,并且推导参数引擎113可以向设备参数贮存器302发送推导参数220。
密钥引擎112可以通过发送密钥210本身的值进行远程存储来发送密钥210进行远程存储。在图3中示出的示例中,密钥引擎112向密钥贮存器301发送具有值“11aaad50175abfff”的密钥210。推导参数引擎113可以通过发送推导参数220的值或者推导参数220的确定的值的指示来发送推导参数220进行远程存储。为了通过在图3中示出的示例进行说明,推导参数引擎113通过发送散列迭代值222的“1211”值和所选择的散列函数221和所选择的字符集223的指示(分别通过指示“SHA256”和“可打印的ASCII”)来发送推导参数220进行远程存储。
密钥贮存器301和设备参数贮存器302可以与设备100物理地或者逻辑上分离并且彼此分离。在这方面,密钥210和推导参数210在不同的贮存器的远程存储可以使用于生成应用密码202的元素的存储分离。密钥210和推导参数220的分离的存储可以通过要求攻击者破坏多个不同的存储位置来访问用于生成应用密码202的元素而增加密码安全性。通过密钥引擎112和推导参数引擎113进行的密钥210和推导参数220的远程存储还可以通过支持从设备100之外的其他设备中进行应用密码202的调取和生成来增加用户灵活性,允许从不同的设备进行应用登录或访问,同时还提供增加的密码安全性。
图4示出了支持利用密钥210和推导参数220的应用密码生成的设备100的示例。设备100可以生成用于访问特定应用的应用密码。具体地,设备100重新生成或者调取先前生成的应用密码。在图4中示出的设备100包括输入引擎111、访问引擎410和生成引擎114。如同引擎111-114,设备100可以将访问引擎410实施为数字逻辑、硬件、电子电路的任何组合,以及存储在机器可读介质上的可执行指令。
在操作中,输入引擎111可以接收用户输入串201输入,如上所述。输入引擎111还可以接收(例如,获取)特定应用的指示以重新生成应用密码202。访问引擎410可以从远离设备100的第一贮存器访问针对特定应用生成的密钥210。访问引擎410还可以从第二远程贮存器访问用于特定应用的应用密码202的推导参数220,该推导参数220包括通过无差别选择过程针对应用密码202的生成所选择的散列函数的指示。生成引擎114可以向用户输入串201和密钥210应用散列函数以获取散列值并且从散列值生成用于特定应用的应用密码202。
图5示出了由设备100通过输入引擎111、访问引擎410和生成引擎114进行的应用密码生成的示例。具体地,设备100可以重新生成特定应用的先前生成的应用密码202。设备100可以进行此操作是因为设备100可以确定不在生成之后本地地或者远程地存储应用密码202。通过这样做,设备100可以增加密码破坏的难度,这是因为实际的应用密码202没有被存储在任何特定位置,而是为了访问特定应用在要求时被生成。
在图5中示出的示例中,输入引擎111接收用于生成应用密码202的用户输入串201。访问引擎410调取用于生成应用密码202的其他元素,包括密钥210和推导参数220。访问引擎410可以从密钥贮存器301中调取密钥210并且从设备参数贮存器302中调取推导参数220。这样做时,访问引擎410可以将特定应用、用户标识或两者的指示作为用于调取合适的密钥210和推导参数220的至贮存器的索引来提供。图5包括在图3中使用的示例密钥和推导参数值,并且访问引擎410调取具有值“11aaad50175abfff”的密钥和推导参数220,该推导参数包括用于散列迭代值222的值“1211”,以及分别用于所选择的散列函数221和所选择的字符集223的指示“SHA256”和“可打印的ASCII”。生成引擎114接收用户输入串201、密钥210和推导参数220,并且生成应用密码202。因此,设备100可以支持重新生成先前生成的应用密码202。
尽管在以上的分开的图中被示出,但设备100可以支持用于特定应用的初始访问(或者账号注册)以及用于对特定应用的随后的访问的应用密码的生成两者。换句话说,设备100可以通过生成密钥210并且指定推导参数220来支持应用密码的初始生成,以及通过从远程贮存器访问密钥210和推导参数220来支持应用密码的随后的重新生成。相应地,设备100可以包括输入引擎111、密钥引擎112、推导参数引擎113、访问引擎410和生成引擎114来支持这些特征。
图6示出了设备100可以实施的逻辑600的示例。设备100可以实施逻辑600以生成用于特定应用的应用密码,并且将其实施为硬件、存储在机器可读介质上的可执行指令,或者实施为其组合。作为一个示例,设备100可以通过输入引擎111、密钥引擎112、推导参数引擎113和生成引擎114来实施逻辑600。设备100可以将逻辑600执行或者实行为方法或处理以通过远程地存储的随机密钥和推导参数来生成应用密码。
设备100可以通过输入引擎111接收用户输入串(602)并且从用户输入串生成用于特定应用的应用密码(604)。为了生成应用密码202,密钥引擎112可以生成用于特定应用的密钥210(606)。推导参数引擎113可以通过应用无差别选择过程从多个字符集中选择字符集来指定应用密码202的推导参数220(608)以用于生成应用密码202。应用无差别选择过程可以包括推导参数引擎113从多个字符集中随机地选择字符集。推导参数引擎113也可以指定其他推导参数220,诸如通过无差别选择过程确定的所选择的散列函数221和散列迭代值222。生成引擎114可以将密钥210的散列值的一部分和用户输入串201映射到通过无差别选择过程选择的字符集中的字符,以获取应用密码202(610)。
在一些示例中,逻辑600可以进一步包括向第一远程贮存设备发送推导参数。推导参数引擎113可以通过向第一远程设备发送通过无差别选择过程所选择的字符集的指示来进行此操作。逻辑600还可以包括例如通过密钥引擎112向第二远程设备发送用于特定应用的密钥210以进行存储。第二远程设备可以不同于第一远程设备。在一些示例中,逻辑600可以进一步包括通过输入引擎111获取密码长度值,并且生成引擎114可以将散列值的一部分映射到字符集中的等于密码长度值的多个字符。
图7示出了设备100可以实施的用于生成应用密码的逻辑700的另一个示例。设备100可以实施逻辑700以重新生成特定应用的应用密码,并且将其实施为硬件的形式、存储在机器可读介质上的可执行指令,或者实施为其组合。作为一个示例,设备100可以通过输入引擎111、访问引擎410和生成引擎114来实施逻辑700。设备100可以将逻辑700执行或者实行为方法或处理以通过远程地存储的随机密钥和推导参数来生成应用密码。
设备100可以通过输入引擎111接收用户输入串111(702),并且从用户输入串生成用于特定应用的应用密码202(704)。这样做时,访问引擎410可以从远程贮存器访问用于特定应用的密钥210(706),并且从远程贮存器访问应用密码202的推导参数220(708)。然后,生成引擎114可以以在以上描述的任何方式使用用户输入串201、密钥210和推导参数220来获取应用密码202。
图8示出了支持利用密钥和推导参数的密码生成的设备800的示例。设备800可以包括一个或多个处理器810,并且处理器810可以包括中央处理单元(CPU)、微处理器,或者适于执行存储在机器可读介质上的指令的任何硬件设备。设备800可以包括机器可读介质820。机器可读介质820可以是存储可执行诸如在图8中示出的指令822、824、826、828和830之类的指令的任何非暂时性电子、磁性、光学,或者其他物理贮存设备。照此,机器可读介质820例如可以是随机存取存储器(RAM)、电可擦除可编程序只读存储器(EEPROM)、贮存器驱动器、光盘,等等。
设备800可以通过处理器810执行存储在机器可读介质820上的指令。执行指令可以使设备800执行在本文描述的密码生成特征的任何组合,包括依照在以上描述的任何密码生成特征。例如,执行指令822和824可以使处理器810接收用于生成特定应用的应用密码202的用户输入串201,并且生成用于特定应用的密钥210。执行指令826可以使处理器810指定用于应用密码202的推导参数220,并且可以包括通过无差别选择过程从散列函数的集合中选择散列函数、通过无差别选择过程确定散列迭代值,并且通过无差别选择过程选择字符集的指令。执行指令828可以使处理器810使用密钥210和推导参数220生成应用密码202,并且执行指令830可以使处理器810发送密钥210和推导参数220以进行远程存储。
在一些示例中,执行指令828可以使处理器810生成应用密码202是通过向密钥210和用户输入串201应用散列函数以根据散列迭代值获取散列值并且将散列值的一部分映射为通过无差别选择过程选择的字符码的字符集以获取应用密码202,来使用密钥210和推导参数220生成应用密码202。在一些示例中,机器可读介质820可以另外包括用于以下的指令:确定应用密码202不满足特定应用的密码要求,并且作为响应,生成不同的密钥、不同的推导参数,或者生成这两者;并且使用不同的密钥、不同的推导参数,或这使用这两者来生成另一个应用密码。作为又一个示例,执行指令830可以使处理器810通过向第一远程设备发送密钥210并且向不同于第一远程设备的第二远程设备发送推导参数220来发送密钥210和推导参数220以进行远程存储。
可以在硬件、逻辑、电路以及存储在机器可读介质上的可执行指令的许多不同的组合中以许多不同的方式实施包括输入引擎111、密钥引擎112、推导参数引擎113、生成引擎114和访问引擎410的在以上描述的系统、方法、设备、电路和逻辑。例如,输入引擎111、密钥引擎112、推导参数引擎113、生成引擎114,以及访问引擎410的任何组合可以将电路包括在控制器、微处理器,或专用集成电路(ASIC)中,或者可以利用离散的逻辑或组件,或者其他类型的模拟或者数字电路的组合来实施、在单个集成电路上被组合或者分布在多个集成电路之中。诸如计算机程序产品之类的产品可以包括贮存介质和存储在介质上的机器可读指令,当其在端点、计算机系统,或者其他设备中被执行时,使设备根据上述描述中的任何来执行操作,包括输入引擎111、密钥引擎112、推导参数引擎113、生成引擎114,以及访问引擎410的任何特征。
包括输入引擎111、密钥引擎112、推导参数引擎113、生成引擎114,以及访问引擎410的在本文描述的系统、设备,以及电路的处理能力可以分布在多个系统组件(可选地包括多个分布式处理系统)之中,诸如在多个处理器和存储器之中。参数、数据库和其他数据结构可以被单独地存储和管理,可以被合并到单个存储器或者数据库中,可以以许多不同的方式被逻辑地和物理地组织,并且可以以许多方式(包括诸如链接表、散列表,或者隐含的存储机制之类的数据结构)被实施。程序可以是单个程序的数个部分(例如,子程序)、分开的程序、分布在若干存储器和处理器上,或者以许多不同的方式(此类以诸如共享程序库之类的库)被实施。
尽管在以上已经描述了各种示例,但更多的实施方式是可能的。
Claims (15)
1.一种设备,包括:
输入引擎,用于接收用户输入串和特定应用的指示;
访问引擎,用于:
从远离所述设备的第一贮存器访问针对所述特定应用生成的密钥;
从第二远程贮存器访问用于所述特定应用的应用密码的推导参数,所述推导参数包括通过无差别选择过程针对所述应用密码的生成所选择的散列函数的指示;以及
生成引擎,用于:
向所述用户输入串和所述密钥应用所述散列函数以获取散列值;并且
从所述散列值生成用于所述特定应用的所述应用密码。
2.根据权利要求1所述的设备,其中,所述推导参数还包括也通过所述无差别选择过程针对所述应用密码的生成所确定的散列迭代值;并且
其中,所述生成引擎用于根据所述散列迭代值来应用所述散列函数。
3.根据权利要求1所述的设备,其中,所述推导参数还包括字符集的指示;并且
其中,所述生成引擎用于通过将所述散列值的一部分映射到所述字符集中的字符来从所述散列值中获取所述应用密码。
4.一种包括可执行指令的非暂时性机器可读介质,所述可执行指令用于:
接收用户输入串以生成用于特定应用的应用密码;
生成用于所述特定应用的密钥;
指定用于所述应用密码的推导参数,包括用于以下操作的指令:
通过无差别选择过程从散列函数的集合中选择散列函数;
通过所述无差别选择过程确定散列迭代值;以及
通过所述无差别选择过程选择字符集;
使用所述密钥和所述推导参数来生成所述应用密码;并且
发送所述密钥和所述推导参数以进行远程存储。
5.根据权利要求4所述的非暂时性机器可读介质,其中,所述可执行指令用于通过以下操作使用所述密钥和所述推导参数来生成所述应用密码:
向所述密钥以及所述用户输入串应用所述散列函数,以根据所述散列迭代值获取散列值;以及
将所述散列值的一部分映射为通过所述无差别选择过程选择的所述字符集中的字符码,以获取所述应用密码。
6.根据权利要求5所述的非暂时性机器可读介质,其中,所述可执行指令进一步确定所述应用密码不满足所述特定应用的密码要求,并且作为响应:
生成不同的密钥、不同的推导参数,或者生成所述不同的密钥和所述不同的推导参数两者;并且
使用所述不同的密钥、所述不同的推导参数,或者使用所述不同的密钥和所述不同的推导参数两者,来生成另一个应用密码。
7.根据权利要求4所述的非暂时性机器可读介质,其中,所述可执行指令用于通过以下操作来发送所述密钥和所述推导参数以进行远程存储:
向第一远程设备发送所述密钥;并且
向不同于所述第一远程设备的第二远程设备发送所述推导参数。
8.一种方法,包括:
接收用户输入串;并且
通过以下操作从所述用户输入串生成用于特定应用的应用密码:
生成用于所述特定应用的密钥;
通过应用无差别选择过程从多个字符集中选择字符集来指定所述应用密码的推导参数,以生成所述应用密码;并且
将所述密钥的散列值的一部分和所述用户输入串映射到通过所述无差别选择过程选择的所述字符集中的字符,以获取所述应用密码。
9.根据权利要求8所述的方法,进一步包括向第一远程设备发送所述推导参数以进行存储。
10.根据权利要求9所述的方法,其中,发送所述推导参数包括:向所述第一远程设备发送通过所述无差别选择过程选择的所述字符集的指示。
11.根据权利要求9所述的方法,进一步包括:向第二远程设备发送用于所述特定应用的所述密钥以进行存储,所述第二远程设备不同于所述第一远程设备。
12.根据权利要求8所述的方法,其中,应用所述无差别选择过程包括从所述多个字符集中随机地选择所述字符集。
13.根据权利要求8所述的方法,进一步包括:
通过应用所述无差别选择过程以从散列函数的集合中选择散列函数来指定另一个推导参数;并且
向所述用户输入串和所述密钥应用所述散列函数,以获取所述散列值。
14.根据权利要求8所述的方法,进一步包括:
通过应用所述无差别选择过程以确定散列迭代值来指定另一个推导参数;并且
根据通过所述无差别选择过程确定的所述散列迭代值来确定所述散列值。
15.根据权利要求8所述的方法,进一步包括获取密码长度值;并且
其中,映射所述散列值的所述一部分包括映射所述字符集中的等于所述密码长度值的多个字符。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2015/088930 WO2017035823A1 (en) | 2015-09-04 | 2015-09-04 | Password generation with key and derivation parameter |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108292992A true CN108292992A (zh) | 2018-07-17 |
Family
ID=58186551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580083591.6A Pending CN108292992A (zh) | 2015-09-04 | 2015-09-04 | 利用密钥和推导参数进行密码生成 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10715320B2 (zh) |
EP (1) | EP3345336A4 (zh) |
CN (1) | CN108292992A (zh) |
WO (1) | WO2017035823A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110519060A (zh) * | 2019-08-23 | 2019-11-29 | 湖南财政经济学院 | 一种密码生成及验证方法 |
CN111989673A (zh) * | 2018-07-31 | 2020-11-24 | 惠普发展公司,有限责任合伙企业 | 密码更新 |
CN112199730A (zh) * | 2020-11-17 | 2021-01-08 | 上海优扬新媒信息技术有限公司 | 一种终端上应用数据的处理方法、装置及电子设备 |
CN112784316A (zh) * | 2020-09-07 | 2021-05-11 | 青岛经济技术开发区海尔热水器有限公司 | 电器设备和电器设备管理方法、设备、存储介质 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11171324B2 (en) | 2016-03-15 | 2021-11-09 | Honda Motor Co., Ltd. | System and method of producing a composite product |
US10587406B1 (en) * | 2016-12-15 | 2020-03-10 | Amazon Technologies, Inc. | File system encryption with key rotation |
JP6635323B2 (ja) * | 2016-12-15 | 2020-01-22 | 日本電気株式会社 | アクセストークンシステム、情報処理装置、情報処理方法および情報処理プログラム |
CN109560918B (zh) * | 2017-09-27 | 2021-10-26 | 华为终端有限公司 | 一种ntru密钥生成的方法和终端设备 |
WO2019108100A1 (en) * | 2017-11-29 | 2019-06-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Session key establishment |
US10469259B1 (en) * | 2018-11-07 | 2019-11-05 | Capital One Services, Llc | Rolling biometric key exchange |
GB201821114D0 (en) * | 2018-12-21 | 2019-02-06 | Forghetti Ltd | Device and method to control access to protected functionality of applications |
US10872610B2 (en) * | 2019-01-31 | 2020-12-22 | Rsa Security Llc | Generating random pass-phrases using word-level recurrent neural networks |
US11657142B2 (en) * | 2021-05-12 | 2023-05-23 | Micro Focus Llc | Stateless password manager |
US11818260B1 (en) * | 2022-12-15 | 2023-11-14 | Intuit Inc. | Systems and methods for blocking decryption capabilities in symmetric key encryption |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087890A1 (en) * | 2000-12-29 | 2002-07-04 | Chan Keen W. | Method for securely using a single password for multiple purposes |
US8254571B1 (en) * | 2007-12-21 | 2012-08-28 | Voltage Security, Inc. | Cryptographic system with halting key derivation function capabilities |
CN103139136A (zh) * | 2011-11-22 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 一种密码的管理方法和设备 |
CN104348609A (zh) * | 2014-09-18 | 2015-02-11 | 成都西山居互动娱乐科技有限公司 | 一种非存储的密码管理算法 |
CN104837131A (zh) * | 2015-04-03 | 2015-08-12 | 北京航空航天大学 | 一种基于批处理指数运算乘积的批Cramer-Shoup密码体制 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6834112B1 (en) * | 2000-04-21 | 2004-12-21 | Intel Corporation | Secure distribution of private keys to multiple clients |
US7171679B2 (en) | 2002-01-07 | 2007-01-30 | International Business Machines Corporation | Generating and maintaining encrypted passwords |
US7136490B2 (en) | 2002-02-21 | 2006-11-14 | International Business Machines Corporation | Electronic password wallet |
JP3956106B2 (ja) | 2002-03-28 | 2007-08-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ装置及びプログラム |
US20090228714A1 (en) | 2004-11-18 | 2009-09-10 | Biogy, Inc. | Secure mobile device with online vault |
CN101159556B (zh) | 2007-11-09 | 2011-01-26 | 清华大学 | 基于组密钥服务器的共享加密文件系统中的密钥管理方法 |
US8370925B2 (en) * | 2008-07-29 | 2013-02-05 | International Business Machines Corporation | User policy manageable strength-based password aging |
KR101630755B1 (ko) * | 2010-01-15 | 2016-06-15 | 삼성전자주식회사 | 모바일 디바이스 간 보안 통신 방법 및 장치 |
US8462955B2 (en) * | 2010-06-03 | 2013-06-11 | Microsoft Corporation | Key protectors based on online keys |
CN104170312B (zh) * | 2011-12-15 | 2018-05-22 | 英特尔公司 | 用于使用硬件安全引擎通过网络进行安全通信的方法和设备 |
US20140149742A1 (en) | 2012-11-28 | 2014-05-29 | Arnold Yau | Method and system of providing authentication of user access to a computer resource via a mobile device using multiple separate security factors |
US9363291B2 (en) * | 2013-08-01 | 2016-06-07 | Connectwise, Inc. | Systems and methods for managing lost devices of multiple types with multiple policies using melded profiles associated with groups |
US9569610B2 (en) * | 2014-03-28 | 2017-02-14 | International Business Machines Corporation | Managing a password |
WO2017106669A1 (en) * | 2015-12-17 | 2017-06-22 | Massachusetts Institute Of Technology | Systems and methods evaluating password complexity and strength |
-
2015
- 2015-09-04 US US15/757,450 patent/US10715320B2/en active Active
- 2015-09-04 CN CN201580083591.6A patent/CN108292992A/zh active Pending
- 2015-09-04 WO PCT/CN2015/088930 patent/WO2017035823A1/en active Application Filing
- 2015-09-04 EP EP15902630.1A patent/EP3345336A4/en not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087890A1 (en) * | 2000-12-29 | 2002-07-04 | Chan Keen W. | Method for securely using a single password for multiple purposes |
US8254571B1 (en) * | 2007-12-21 | 2012-08-28 | Voltage Security, Inc. | Cryptographic system with halting key derivation function capabilities |
CN103139136A (zh) * | 2011-11-22 | 2013-06-05 | 阿里巴巴集团控股有限公司 | 一种密码的管理方法和设备 |
CN104348609A (zh) * | 2014-09-18 | 2015-02-11 | 成都西山居互动娱乐科技有限公司 | 一种非存储的密码管理算法 |
CN104837131A (zh) * | 2015-04-03 | 2015-08-12 | 北京航空航天大学 | 一种基于批处理指数运算乘积的批Cramer-Shoup密码体制 |
Non-Patent Citations (1)
Title |
---|
ANONYMOUS: "Salt (cryptography)一Wikipedia", 《URL:HTTPS://EN.WIKIPEDIA.ORG/W/INDEX.PHP?TITLE=SALT_(CRYPTOGRAPHY)&OLDID=605916302》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111989673A (zh) * | 2018-07-31 | 2020-11-24 | 惠普发展公司,有限责任合伙企业 | 密码更新 |
CN110519060A (zh) * | 2019-08-23 | 2019-11-29 | 湖南财政经济学院 | 一种密码生成及验证方法 |
CN110519060B (zh) * | 2019-08-23 | 2022-03-29 | 湖南财政经济学院 | 一种密码生成及验证方法 |
CN112784316A (zh) * | 2020-09-07 | 2021-05-11 | 青岛经济技术开发区海尔热水器有限公司 | 电器设备和电器设备管理方法、设备、存储介质 |
CN112199730A (zh) * | 2020-11-17 | 2021-01-08 | 上海优扬新媒信息技术有限公司 | 一种终端上应用数据的处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20180248689A1 (en) | 2018-08-30 |
EP3345336A4 (en) | 2019-04-10 |
EP3345336A1 (en) | 2018-07-11 |
WO2017035823A1 (en) | 2017-03-09 |
US10715320B2 (en) | 2020-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108292992A (zh) | 利用密钥和推导参数进行密码生成 | |
US7694147B2 (en) | Hashing method and system | |
CN110110163A (zh) | 安全子字符串搜索以过滤加密数据 | |
JP6285536B2 (ja) | データを暗号化するシステムおよび方法 | |
KR102182894B1 (ko) | 패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법 | |
JP4891402B2 (ja) | 仮想ユーザ認証システム及び仮想ユーザ認証方法 | |
US20070039042A1 (en) | Information-security systems and methods | |
KR20150142640A (ko) | 패스워드 인증을 위한 장치들 및 방법들 | |
US9122852B2 (en) | Password input system and method for inputting password | |
KR20140011534A (ko) | 특정 포맷을 가지는 대체 데이터의 생성 및 검증 | |
EP2919422B1 (en) | Method and device for detecting spoofed messages | |
Kharod et al. | An improved hashing based password security scheme using salting and differential masking | |
US11055399B2 (en) | Data recovery through reversal of hash values using probabilistic data structures | |
Gupta et al. | Shamir's secret sharing for authentication without reconstructing password | |
Guo et al. | PUFPass: A password management mechanism based on software/hardware codesign | |
CN109190358B (zh) | 站点密码生成方法、系统及密码管理器 | |
TWI444834B (zh) | 使用於鍵盤及應用程式間之共享秘密技術 | |
Vershinin et al. | Associative steganography of text messages | |
US9203607B2 (en) | Keyless challenge and response system | |
KR102208082B1 (ko) | 서버 장치, 정보관리 시스템, 정보관리 방법 및 컴퓨터 프로그램을 저장한 기록매체 | |
Sreelaja et al. | An image edge based approach for image password encryption | |
Krotkiewicz | An In-Depth Look into Cryptographic Hashing Algorithms | |
Rooparaghunath et al. | Trenchcoat: Human-computable hashing algorithms for password generation | |
Boychenko et al. | Assessing Password Protection Effectiveness Using Markov Processes | |
Nizamani et al. | A theoretical framework for password security against offline guessability attacks |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180717 |
|
WD01 | Invention patent application deemed withdrawn after publication |