IP Library Granted Patent US 10,872,610
Granted Patent B2
US 10,872,610 · App. 16/264,303 · Granted Dec 22, 2020

Generating random pass-phrases using word-level recurrent neural networks

Inventor: Naveen Sunkavally (Cary, NC)
Assignee: RSA Security LLC
G10L17/24G10L17/04G10L17/18
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,872,610
App. No.
16/264,303
Granted
Dec 22, 2020
Kind
B2
Abstract

Systems and methods are provided for generating random pass-phrases using word-level recurrent neural networks (RNNs). A pass-phrase includes a random sequence of words selected from a text corpus used to train an RNN model. The pass-phrase generation process utilizes a seed phrase obtained from the training text corpus, and a random bit string. The seed phrase is processed by the RNN model to generate a set of predicted words and associated likelihood values that the predicted words are a next word following the seed phrase. The prediction results are encoded into a binary tree which is traversed using a portion of the random bit string to identify a word at a leaf node which matches the portion of the random bit string. The identified word is selected as a constituent of the random pass-phrase, and the process is repeated until the random bit stream is exhausted.

Claims (79)

1. A method, comprising:

receiving a request for a random pass-phrase for use as an authentication factor for a registered user to access an information system;

performing an iterative pass-phrase generation process to generate the random pass-phrase in response to the received request, wherein the iterative pass-phrase generation process comprises at least an first iteration which comprises:

obtaining an initial seed phrase comprising at least a portion of a text sentence from a text corpus of training data associated with a word-level recurrent neural network (RNN) model trained using the text corpus of training data;

obtaining a random bit string having a specified bit-length;

inputting the initial seed phrase to the input of the word-level RNN model to obtain prediction results, wherein the prediction results comprises a plurality of predicted words from the text corpus and associated likelihood values, wherein the likelihood value for a given predicted word indicates a likelihood that the given predicted word is a next word following the initial seed phrase;

generating a binary tree data structure representing the prediction results, wherein leaf nodes of the binary tree data structure each correspond to one of the predicted words;

traversing the binary tree data structure using a portion of the random bit string to identify a word at a leaf node of the binary tree data structure which matches the portion of the random bit string; and

selecting the identified word as a first constituent word of the random pass-phrase.

2. The method of claim 1 , further comprising:

generating a truncated random bit string by removing the portion of the random bit string used to traverse the binary tree data structure to identify the matching word for the first iteration of the pass-phrase generation process; and

responsive to determining that the random bit string has not been exhausted following the removal of the portion of the random bit string, performing an additional iteration of the pass-phrase generation process, wherein the additional iteration comprises:

modifying the initial seed phrase by appending a previously selected constituent word of the random pass-phrase to an end of the initial seed phrase and removing a first word of the initial seed phrase;

inputting the modified seed phrase to the input of the word-level RNN model to obtain prediction results, wherein the prediction results comprises a plurality of predicted words from the text corpus and associated likelihood values, wherein the likelihood value for a given predicted word indicates a likelihood that the given predicted word is a next word following the modified seed phrase;

generating a binary tree data structure representing the prediction results obtained using the modified seed phrase, wherein leaf nodes of the binary tree data structure each correspond to one of the predicted words;

traversing the binary tree data structure using a portion of the truncated random bit string to identify a word at a leaf node of the binary tree data structure which matches the portion of the random bit string; and

selecting the identified word as a next constituent word of the random pass-phrase.

3. The method of claim 2 , comprising:

terminating the pass-phrase generation process responsive to determining that the random bit string has been exhausted; and

outputting a random pass-phrase comprising a sequence of the constituent words selected in all iterations of the pass-phrase generation process.

4. The method of claim 1 , wherein generating the binary tree data structure representing the prediction results comprises performing a Huffman encoding process to generate a Huffman tree data structure.

5. The method of claim 1 , wherein traversing the binary tree data structure comprises performing a root node-to-leaf node path traversal based on a sequence of bit values at a beginning portion of the random bit string.

6. The method of claim 1 , wherein obtaining the random bit string having a specified bit-length comprises:

receiving a passcode from one of a (i) security token device and (ii) a soft security token; and

utilizing a bit stream representation of the received passcode as the random bit string.

7. The method of claim 1 , further comprising pre-processing the prediction results prior to generating the binary tree data structure representing the prediction results, wherein pre-processing comprises normalizing the likelihood values of the predicted words.

8. The method of claim 7 , wherein pre-processing comprising applying a diversity factor value as part of the normalizing process, wherein the diversity factor value is applied to achieve a desired level of user memorability of the random pass-phrase to be generated.

9. The method of claim 7 , wherein pre-processing comprises setting a likelihood value to zero for a predicted word that comprises a stop character.

10. The method of claim 1 , wherein an iterative pass-phrase generation process is performed by an authentication server of the information system.

11. The method of claim 1 , wherein the iterative pass-phrase generation process is executed on a computing device of the registered user.

12. The method of claim 1 , wherein the text corpus of training data is obtained by pre-processing a raw text corpus to generate the text corpus of training data, wherein pre-processing the raw text corpus comprises:

converting uppercase text characters in the raw text corpus to lower-case characters; and

removing punctuation characters from the raw text except for stop characters;

separating the stop characters from text words preceding the stop characters to make the stop characters appear as independent words in the raw text corpus.

13. The method of claim 12 , further comprising training the word-level RNN model using the text corpus of training generated as a result of the pre-processing of the raw text corpus, wherein training the word-level RNN model comprising training a multi-layer RNN model comprising a plurality of activation layers comprising one of (i) long short-term memory (LSTM) units and (ii) gated recurrent units (GRUs).

14. An article of manufacture comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code is executable by one or more processors to perform a method which comprises:

receiving a request for a random pass-phrase for use as an authentication factor for a registered user to access an information system;

performing an iterative pass-phrase generation process to generate the random pass-phrase in response to the received request, wherein the iterative pass-phrase generation process comprises at least an first iteration which comprises:

obtaining an initial seed phrase comprising at least a portion of a text sentence from a text corpus of training data associated with a word-level recurrent neural network (RNN) model trained using the text corpus of training data;

obtaining a random bit string having a specified bit-length;

inputting the initial seed phrase to the input of the word-level RNN model to obtain prediction results, wherein the prediction results comprises a plurality of predicted words from the text corpus and associated likelihood values, wherein the likelihood value for a given predicted word indicates a likelihood that the given predicted word is a next word following the initial seed phrase;

generating a binary tree data structure representing the prediction results, wherein leaf nodes of the binary tree data structure each correspond to one of the predicted words;

traversing the binary tree data structure using a portion of the random bit string to identify a word at a leaf node of the binary tree data structure which matches the portion of the random bit string; and

selecting the identified word as a first constituent word of the random pass-phrase.

15. The article of manufacture of claim 14 , wherein the program code is executable by the one or more processors to perform a method which further comprises:

generating a truncated random bit string by removing the portion of the random bit string used to traverse the binary tree data structure to identify the matching word for the first iteration of the pass-phrase generation process; and

responsive to determining that the random bit string has not been exhausted following the removal of the portion of the random bit string, performing an additional iteration of the pass-phrase generation process, wherein the additional iteration comprises:

modifying the initial seed phrase by appending a previously selected constituent word of the random pass-phrase to an end of the initial seed phrase and removing a first word of the initial seed phrase;

inputting the modified seed phrase to the input of the word-level RNN model to obtain prediction results, wherein the prediction results comprises a plurality of predicted words from the text corpus and associated likelihood values, wherein the likelihood value for a given predicted word indicates a likelihood that the given predicted word is a next word following the modified seed phrase;

generating a binary tree data structure representing the prediction results obtained using the modified seed phrase, wherein leaf nodes of the binary tree data structure each correspond to one of the predicted words;

traversing the binary tree data structure using a portion of the truncated random bit string to identify a word at a leaf node of the binary tree data structure which matches the portion of the random bit string; and

selecting the identified word as a next constituent word of the random pass-phrase.

16. The article of manufacture of claim 15 , wherein the program code is executable by the one or more processors to perform a method which further comprises:

terminating the pass-phrase generation process responsive to determining that the random bit string has been exhausted; and

outputting a random pass-phrase comprising a sequence of the constituent words selected in all iterations of the pass-phrase generation process.

17. The article of manufacture of claim 14 , wherein the program code is executable by the one or more processors to perform a method which further comprises pre-processing the prediction results prior to generating the binary tree data structure representing the prediction results, wherein pre-processing comprises:

setting a likelihood value to zero for each predicted word that comprises a stop character;

normalizing the likelihood values of the predicted words; and

applying a diversity factor value as part of the normalizing process, wherein the diversity factor value is applied to achieve a desired level of user memorability of the random pass-phrase to be generated.

18. A system, comprising:

memory to store software instructions; and

one or more processors to execute the software instructions to perform a method which comprises:

receiving a request for a random pass-phrase for use as an authentication factor for a registered user to access an information system;

performing an iterative pass-phrase generation process to generate the random pass-phrase in response to the received request, wherein the iterative pass-phrase generation process comprises at least an first iteration which comprises:

obtaining an initial seed phrase comprising at least a portion of a text sentence from a text corpus of training data associated with a word-level recurrent neural network (RNN) model trained using the text corpus of training data;

obtaining a random bit string having a specified bit-length;

inputting the initial seed phrase to the input of the word-level RNN model to obtain prediction results, wherein the prediction results comprises a plurality of predicted words from the text corpus and associated likelihood values, wherein the likelihood value for a given predicted word indicates a likelihood that the given predicted word is a next word following the initial seed phrase;

generating a binary tree data structure representing the prediction results, wherein leaf nodes of the binary tree data structure each correspond to one of the predicted words;

traversing the binary tree data structure using a portion of the random bit string to identify a word at a leaf node of the binary tree data structure which matches the portion of the random bit string; and

selecting the identified word as a first constituent word of the random pass-phrase.

19. The system of claim 18 , wherein the one or more processors execute the software instructions to perform a method which further comprises:

generating a truncated random bit string by removing the portion of the random bit string used to traverse the binary tree data structure to identify the matching word for the first iteration of the pass-phrase generation process; and

responsive to determining that the random bit string has not been exhausted following the removal of the portion of the random bit string, performing an additional iteration of the pass-phrase generation process, wherein the additional iteration comprises:

modifying the initial seed phrase by appending a previously selected constituent word of the random pass-phrase to an end of the initial seed phrase and removing a first word of the initial seed phrase;

inputting the modified seed phrase to the input of the word-level RNN model to obtain prediction results, wherein the prediction results comprises a plurality of predicted words from the text corpus and associated likelihood values, wherein the likelihood value for a given predicted word indicates a likelihood that the given predicted word is a next word following the modified seed phrase;

generating a binary tree data structure representing the prediction results obtained using the modified seed phrase, wherein leaf nodes of the binary tree data structure each correspond to one of the predicted words;

traversing the binary tree data structure using a portion of the truncated random bit string to identify a word at a leaf node of the binary tree data structure which matches the portion of the random bit string; and

selecting the identified word as a next constituent word of the random pass-phrase.

20. The system of claim 18 , wherein the system comprises one of (i) a computing device of the registered user and (ii) an authentication server of the information system.

Assignments (16)
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 56098/0534 Recorded Mar 5, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: RSA SECURITY LLC
Reel/Frame 075041/0175 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 56096/0525 Recorded Mar 5, 2026
From: JPMORGAN CHASE BANK, N.A.
To: RSA SECURITY LLC; RSA SECURITY USA LLC
Reel/Frame 075030/0744 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2024
From: RSA SECURITY LLC
To: RSA SECURITY LLC
Reel/Frame 069762/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2024
From: RSA SECURITY LLC
To: RSA SECURITY USA, LLC
Reel/Frame 069762/0529 →
TERMINATION AND RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT REEL 054155, FRAME 0815 Recorded Apr 29, 2021
From: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
To: RSA SECURITY LLC
Reel/Frame 056104/0841 →
TERMINATION AND RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS RECORDED AT REEL 053666, FRAME 0767 Recorded Apr 29, 2021
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: RSA SECURITY LLC
Reel/Frame 056095/0574 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 29, 2021
From: RSA SECURITY LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 056096/0525 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 29, 2021
From: RSA SECURITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 056098/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2020
From: EMC IP HOLDING COMPANY LLC
To: RSA SECURITY LLC
Reel/Frame 053717/0020 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Sep 3, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS AGENT
To: DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054191/0287 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (049452/0223) Recorded Sep 3, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS AGENT
To: DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054250/0372 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: RSA SECURITY LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 053666/0767 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: RSA SECURITY LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 054155/0815 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2019
From: SUNKAVALLY, NAVEEN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 048318/0683 →