Split tokenization
AssigneeEMC Corporation
InventorsRachael Stockton, Marten van Dijk
Life of this patent
Estimating the term…
Abstract
An improved technique involves providing protection of secrets by splitting the secret into secret shares and providing tokens for each secret share. Along these lines, a terminal splits a secret such as a credit card number into shares. The terminal then transmits each share to a separate and distinct token server. Each token server, upon receiving a secret share, generates a corresponding token and sends that token to an application server. In some cases, when a user at the application server requires access to the secret, the application server sends each token to the token server form which the token was generated. The token servers each send, in return, a secret share to the application server. The application server combines the secret shares to recover the secret.
Claims22
A method of protecting a secret, the method comprising:
- performing a secret splitting operation that produces a first secret share and a second secret share;
- sending the first secret share to a first token server, the first token server being constructed and arranged to i) generate a first token from the first secret share and ii) send the first token to an application server;
- and
- sending the second secret share to a second token server that is different from the first token server, the second token server being constructed and arranged to i) generate a second token from the second secret share and ii) send the second token to the application server, the application server being constructed and arranged to recover the secret from the first secret share and the second secret share by exchanging the first token for the first secret share with the first token server and exchanging the second token for the second secret share with the second token server,
- wherein sending the first secret share to the first token server causes the first token server to generate the first token and send the first token to the application server, and
- wherein sending the second secret share to the second token server causes the second token server to generate the second token and send the second token to the application server.
A method of recovering a secret, the method comprising:
- sending a first token to a first token server, the first token server being constructed and arranged to generate a first secret share in response to receiving the first token, the first secret share being based on the first token;
- sending a second token to a second token server, the second token server being constructed and arranged to generate a second secret share in response to receiving the second token, the second secret share being based on the second token;
- receiving the first secret share from the first token server;
- receiving the second secret share from the second token server;
- and
- performing a combination operation on the first secret share and the second secret share to produce the secret,
- wherein the method further comprises:
- in response to receiving the first token, retrieving, by the first token server, a corresponding first key from a first lookup table stored in a first storage device, the first storage device storing tokens and corresponding keys in entries of the lookup table;
- in response to receiving the second token, retrieving, by the second token server, a corresponding second key from a second lookup table stored in a second storage device, the second storage device storing tokens and corresponding keys in entries of the lookup table;
- generating, by the first token server, the first secret share based on the first token and the corresponding first key;
- and
- generating, by the second token server, the second secret share based on the second token and the corresponding second key.
An electronic system constructed and arranged to protect a secret, the system comprising:
- a terminal;
- a first token server;
- a second token server that is different from the first token server;
- and
- an application server;
- the terminal including:
- a network interface;
- memory;
- and
- a controller including controlling circuitry coupled to the memory, the controlling circuitry being constructed and arranged to:
- perform a secret splitting operation that produces a first secret share and a second secret share;
- send the first secret share to the first token server, the first token server being constructed and arranged to i) generate a first token from the first secret share and ii) send the first token to an application server;
- and
- send the second secret share to a second token server that is different from the first token server, the second token server being constructed and arranged to i) generate a second token from the second secret share and ii) send the second token to the application server, the application server being constructed and arranged to recover the secret from the first secret share and the second secret share by exchanging the first token for the first secret share with the first token server and exchanging the second token for the second secret share with the second token server,
- wherein the controlling circuitry, when sending the first secret share to the first token server, causes the first token server to generate the first token and send the first token to the application server, and
- wherein the controlling circuitry, when sending the second secret share to the second token server, causes the second token server to generate the second token and send the second token to the application server.
A computer program product having a non-transitory, computer-readable storage medium which stores code to protect a secret, the code including instructions to:
- perform a secret splitting operation that produces a first secret share and a second secret share;
- send the first secret share to the first token server, the first token server being constructed and arranged to i) generate a first token from the first secret share and ii) send the first token to an application server;
- and
- send the second secret share to a second token server that is different from the first token server, the second token server being constructed and arranged to i) generate a second token from the second secret share and ii) send the second token to the application server, the application server being constructed and arranged to recover the secret from the first secret share and the second secret share by exchanging the first token for the first secret share with the first token server and exchanging the second token for the second secret share with the second token server,
- wherein the code includes further instructions to, when the first secret share is sent to the first token server, cause the first token server to generate the first token and send the first token to the application server, and
- wherein the code includes further instructions to, when the second secret share is sent to the second token server, cause the second token server to generate the second token and send the second token to the application server.
A method of protecting a secret, the method comprising:
- performing a secret splitting operation that produces a first secret share and a second secret share;
- sending the first secret share to a first token server, the first token server being constructed and arranged to i) generate a first token from the first secret share and ii) send the first token to an application server;
- and
- sending the second secret share to a second token server that is different from the first token server, the second token server being constructed and arranged to i) generate a second token from the second secret share and ii) send the second token to the application server, the application server being constructed and arranged to recover the secret from the first secret share and the second secret share by exchanging the first token for the first secret share with the first token server and exchanging the second token for the second secret share with the second token server;
- wherein the first token server is further constructed and arranged to use a first key to generate the first token from the first secret share, and the second token server is further constructed and arranged to use a second key to generate the second token from the second secret share;
- wherein the first token server and the second token server are further constructed and arranged to generate a shared key offset;
- wherein sending the first secret share to the first token server includes:
- sending a command to generate the shared key offset to the first token server;
- wherein sending the second secret share to the second token server includes:
- sending a command to generate the shared key offset to the second token server;
- and
- wherein during a proactivization step, the first token server is further constructed and arranged to produce a new first token with a new first key which is the sum of the first key and the shared key offset, and the second token server is further constructed and arranged to produce a new second token with a new second key which is the difference between the second key and the shared key offset,
- wherein sending the first secret share to the first token server causes the first token server to generate the first token and send the first token to the application server, and
- wherein sending the second secret share to the second token server causes the second token server to generate the second token and send the second token to the application server.
Dependencies are inferred from the claim text.