Cryptography using multi-factor key system and finite state machine
First Claim
1. A computer-implemented method comprising:
- receiving, by a message recipient that is to receive an encrypted message over a communication network from a message sender, (i) a specification of a finite-state machine and (ii) an encrypted language element of a language over an input alphabet for the finite-state machine, wherein the finite-state machine accepts the language, wherein the language comprises language elements, and wherein the received encrypted language element is encrypted with a selected public key of a plurality of public keys;
decrypting the encrypted language element using each private key of a plurality of private keys, the plurality of private keys corresponding to the plurality of public keys, and the decrypting providing a plurality of decrypted language elements;
applying each decrypted language element to the finite-state machine;
identifying, based on the applying, a decrypted language element, of the plurality of decrypted language elements, that that is accepted by the finite-state machine;
identifying a private key, of the plurality of private keys, used in the decrypting that provided the decrypted language element identified as being accepted by the finite-state machine;
receiving from the message sender the encrypted message over the communication network; and
using the identified private key in decrypting the encrypted message.
1 Assignment
0 Petitions
Accused Products
Abstract
A process receives a specification of a finite-state machine and an encrypted language element of a language over an input alphabet for the finite-state machine. The received encrypted language element is encrypted with a selected public key of a plurality of public keys. The process decrypts the encrypted language element using each private key of a plurality of private keys corresponding to the public keys. The decrypting provides a plurality of decrypted language elements and the process applies each decrypted language element to the finite-state machine. The process identifies a decrypted language element that that is accepted by the finite-state machine. The process identifies a private key, of the private keys, used in the decrypting that provided the decrypted language element identified as being accepted by the finite-state machine. The process receives from the message sender an encrypted message, and uses the identified private key in decrypting the encrypted message.
-
Citations
20 Claims
-
1. A computer-implemented method comprising:
-
receiving, by a message recipient that is to receive an encrypted message over a communication network from a message sender, (i) a specification of a finite-state machine and (ii) an encrypted language element of a language over an input alphabet for the finite-state machine, wherein the finite-state machine accepts the language, wherein the language comprises language elements, and wherein the received encrypted language element is encrypted with a selected public key of a plurality of public keys; decrypting the encrypted language element using each private key of a plurality of private keys, the plurality of private keys corresponding to the plurality of public keys, and the decrypting providing a plurality of decrypted language elements; applying each decrypted language element to the finite-state machine; identifying, based on the applying, a decrypted language element, of the plurality of decrypted language elements, that that is accepted by the finite-state machine; identifying a private key, of the plurality of private keys, used in the decrypting that provided the decrypted language element identified as being accepted by the finite-state machine; receiving from the message sender the encrypted message over the communication network; and using the identified private key in decrypting the encrypted message. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer program product comprising:
a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising; receiving, by a message recipient that is to receive an encrypted message over a communication network from a message sender, (i) a specification of a finite-state machine and (ii) an encrypted language element of a language over an input alphabet for the finite-state machine, wherein the finite-state machine accepts the language, wherein the language comprises language elements, and wherein the received encrypted language element is encrypted with a selected public key of a plurality of public keys; decrypting the encrypted language element using each private key of a plurality of private keys, the plurality of private keys corresponding to the plurality of public keys, and the decrypting providing a plurality of decrypted language elements; applying each decrypted language element to the finite-state machine; identifying, based on the applying, a decrypted language element, of the plurality of decrypted language elements, that that is accepted by the finite-state machine; identifying a private key, of the plurality of private keys, used in the decrypting that provided the decrypted language element identified as being accepted by the finite-state machine; receiving from the message sender the encrypted message over the communication network; and using the identified private key in decrypting the encrypted message. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
15. A computer system comprising:
-
a memory; and a processor in communications with the memory, wherein the computer system is configured to perform a method comprising; receiving, by a message recipient that is to receive an encrypted message over a communication network from a message sender, (i) a specification of a finite-state machine and (ii) an encrypted language element of a language over an input alphabet for the finite-state machine, wherein the finite-state machine accepts the language, wherein the language comprises language elements, and wherein the received encrypted language element is encrypted with a selected public key of a plurality of public keys; decrypting the encrypted language element using each private key of a plurality of private keys, the plurality of private keys corresponding to the plurality of public keys, and the decrypting providing a plurality of decrypted language elements; applying each decrypted language element to the finite-state machine; identifying, based on the applying, a decrypted language element, of the plurality of decrypted language elements, that that is accepted by the finite-state machine; identifying a private key, of the plurality of private keys, used in the decrypting that provided the decrypted language element identified as being accepted by the finite-state machine; receiving from the message sender the encrypted message over the communication network; and using the identified private key in decrypting the encrypted message. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification