IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
UP-0557595
(2006-11-08)
|
등록번호 |
US-7752456
(2010-07-26)
|
발명자
/ 주소 |
- England, Paul
- Peinado, Marcus
|
출원인 / 주소 |
|
인용정보 |
피인용 횟수 :
9 인용 특허 :
107 |
초록
▼
In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using a symmetric cipher, in a manner that allows only one or more target programs to be able to obtain the data from the ciphertext. In accordance with other aspects, a bit s
In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using a symmetric cipher, in a manner that allows only one or more target programs to be able to obtain the data from the ciphertext. In accordance with other aspects, a bit string is received from a calling program. An identifier of the calling program is checked to determine whether the calling program is allowed to access data encrypted in ciphertext of the bit string. The integrity of the data is also verified, and the data is decrypted using a symmetric key. The data is returned to the calling program only if the calling program is allowed to access the data and if the integrity of the data is successfully verified.
대표청구항
▼
The invention claimed is: 1. A method, implemented in a computing device, the method comprising: receiving data, at a guard in a first layer among multiple layers, from a calling program executing in a second layer adjacent to the first layer, each of the multiple layers having a respective guard c
The invention claimed is: 1. A method, implemented in a computing device, the method comprising: receiving data, at a guard in a first layer among multiple layers, from a calling program executing in a second layer adjacent to the first layer, each of the multiple layers having a respective guard configured to control access to a resource by a program in an adjacent layer, the resource including the data; generating ciphertext by at least: generating, with the guard, an identifier of the calling program; generating a bit string which is a combination of the data, the identifier of the calling program, and identifiers of multiple target programs configured to execute in the second layer; encrypting the bit string by applying a symmetric cipher and a same symmetric key to both the data and the identifiers of the multiple target programs, wherein the ciphertext is generated in a manner that allows only the multiple target programs in the second layer to obtain the data from the ciphertext and further allows individual ones of the multiple target programs in the second layer to obtain the data from the ciphertext regardless of the other target programs of the multiple target programs in the second layer; and returning the ciphertext to the calling program. 2. A method as recited in claim 1, wherein the one or more target programs are identified by the calling program. 3. A method as recited in claim 1, wherein the data comprises a cryptographic key. 4. A method as recited in claim 1, wherein each of the multiple target programs is identified by a digest value generated by applying a cryptographic hash function to the target program. 5. A method as recited in claim 1, wherein the multiple target programs include the calling program. 6. A method as recited in claim 1, wherein receiving the data comprises receiving the data as part of a seal operation. 7. A method as recited in claim 1, further comprising: generating a message authentication code (MAC) value for the bit string by applying a message authentication code (MAC) to the bit string; and returning the ciphertext and the MAC value to the calling program. 8. A method as recited in claim 1, further comprising: generating a message authentication code (MAC) value for the ciphertext by applying a message authentication code (MAC) to the ciphertext; and returning the ciphertext and the MAC value to the calling program. 9. A method as recited in claim 1, wherein the identifier of the calling program comprises a digest value generated by applying a cryptographic hash function to the calling program. 10. A method as recited in claim 1, wherein the combination of the data, the identifier of the calling program, and the identifiers of the multiple target programs comprises a concatenation of the data, the identifier of the calling program, and the identifiers of the multiple target programs. 11. A method as recited in claim 1, further comprising: generating a message authentication code (MAC) value for the bit string by applying a message authentication code (MAC) to the bit string; and wherein encrypting the bit string comprises including the MAC value in the bit string prior to encrypting the bit string. 12. A method as recited in claim 11, wherein the generating the MAC value comprises generating the MAC value for the bit string using a first part of a symmetric key, and wherein encrypting the bit string comprises encrypting the bit string using a second part of the symmetric key. 13. One or more computer storage media having stored thereon a plurality of instructions that, when executed by a processor, causes the processor to perform acts comprising: receiving data, at a guard in a first layer among multiple layers, from a calling program configured to execute in a second layer, the second layer being adjacent to the first layer, the guard being configured to guard access to the data; generating, with the guard, using a same symmetric key that is associated with the guard, ciphertext by at least: generating a bit string which is a concatenation of the data, an identifier of the calling program, and identifiers of multiple target programs that are configured to execute in the second layer; generating a message authentication code (MAC) value for the bit string by applying a message authentication code (MAC) to the bit string using a first part of the same symmetric key; including the MAC value in the bit string prior to encrypting the bit string; encrypting the bit string using a symmetric cipher and a second part of the same symmetric key to form an encrypted bit string; wherein the ciphertext includes the encrypted bit string, wherein the ciphertext is generated in a manner that allows only the multiple target programs to obtain the data from the ciphertext and further allows individual ones of the multiple target programs to obtain the data from the ciphertext regardless of the other target programs of the multiple target programs; wherein the first layer is in isolation from the multiple layers, the isolation comprising at least one of time isolation or space isolation; and returning the ciphertext and the MAC value to the calling program. 14. One or more computer storage media as recited in claim 13, further comprising: generating a message authentication code (MAC) value for the bit string by applying, using a first part of the same symmetric key, a message authentication code (MAC) to the bit string and including the MAC value in the bit string prior to encrypting the bit string; the using the same symmetric key to generate the ciphertext comprising using a second part of the same symmetric key to generate the ciphertext. 15. A method, implemented in a computing device, the method comprising: receiving, from a calling program that executes in a first layer among multiple layers, a request to generate and seal data in a second layer that is adjacent to the first layer; receiving, from the calling program, digests of multiple target programs, the multiple target programs being configured to execute in the first layer; generating a random value to use as the data; isolating the second layer using time isolation and space isolation; generating ciphertext by: generating a bit string which is a combination of the data and digests of the multiple target programs in the first layer; encrypting the bit string using a symmetric key; the ciphertext being generated in a manner that allows only the multiple target programs in the first layer to obtain the data from the ciphertext and further allows individual ones of the multiple target programs to obtain the data from the ciphertext regardless of the other target programs of the multiple target programs, wherein the isolating and the random value allow the ciphertext to be maintained during a single execution of the calling program; and returning the ciphertext to the calling program.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.