Source: http://www.freepatentsonline.com/8621243.html
Timestamp: 2019-01-22 18:36:48
Document Index: 440001658

Matched Legal Cases: ['art\n6263445', 'Application No. 200710152961', 'Application No. 03131208', 'Application No. 2003', 'Application No. 2003', 'Application No. 10', 'Application No. 10', 'Application No. 2425006', 'Application No. 200710152961', 'Application No. 200710152961', 'Application No. 200710152963', 'Application No. 2010', 'Application No. 2425006', 'Application No. 2425010', 'Application No. 2011', 'Application No. 2011', 'Application No. 2011', 'Application No. 2011', 'Application No. 200710152961', 'Application No. 2425010', 'Application No. 2']

Saving and retrieving data based on public key encryption - Microsoft Corporation
United States Patent 8621243
13/015402
380/278, 380/279, 380/281, 380/282, 713/155, 713/189, 726/26, 726/29
G06F12/14; G09C1/00; H04L9/32
Download PDF 8621243 PDF help
8589701 Saving and retrieving data based on public key encryption November, 2013 England et al.
8032943 Accessing protected content in a rights-management architecture October, 2011 DeMello et al.
20110154057 SAVING AND RETRIEVING DATA BASED ON PUBLIC KEY ENCRYPTION June, 2011 England
20110119505 SAVING AND RETRIEVING DATA BASED ON PUBLIC KEY ENCRYPTION May, 2011 England
20110119502 SAVING AND RETRIEVING DATA BASED ON PUBLIC KEY ENCRYPTION May, 2011 England
20110119500 SAVING AND RETRIEVING DATA BASED ON PUBLIC KEY ENCRYPTION May, 2011 England
7890771 Saving and retrieving data based on public key encryption February, 2011 England
7765397 Generating, migrating or exporting bound keys July, 2010 England
7752456 Saving and retrieving data based on symmetric key encryption July, 2010 England
7587589 Saving and retrieving data based on symmetric key encryption September, 2009 England et al.
7543336 System and method for secure storage of data using public and private keys June, 2009 Lampson et al.
7529919 Boot blocks for software May, 2009 Lampson et al.
7487365 Saving and retrieving data based on symmetric key encryption February, 2009 England et al.
7379550 Method for the computer-assisted production of public keys for encoding information and device for carrying out said method May, 2008 Merzenich
7333615 Encryption between multiple devices February, 2008 Jarboe et al.
7302709 Key-based secure storage November, 2007 England
20070104329 System and Method for Authenticating an Operating System to a Central Processing Unit, Providing the CPU/OS with Secure Storage, and Authenticating the CPU/OS to a Third Party May, 2007 England
20070088949 Saving and Retrieving Data Based on Public Key Encryption April, 2007 England
20070088946 Saving and Retrieving Data Based on Symmetric Key Encryption April, 2007 England
20070086588 Saving and Retrieving Data Based on Symmetric Key Encryption April, 2007 England
20070067624 Saving and Retrieving Data Based on Symmetric Key Encryption March, 2007 England
7194092 Key-based secure storage March, 2007 England et al.
7188240 Method and system for encryption of web browser cache March, 2007 Berstis et al.
7142676 Method and apparatus for secure communications using third-party key provider November, 2006 Hillier et al.
7136488 Microprocessor using asynchronous public key decryption processing November, 2006 Hashimoto et al.
7103771 Connecting a virtual token to a physical token September, 2006 Grawrock
7079649 Copy protection of data July, 2006 Brambill et al.
7062471 Electronic rights information processing system, method and apparatus for carrying out same and recorded medium for program carrying out the method June, 2006 Matsuyama et al.
6983371 Super-distribution of protected digital content January, 2006 Hurtado et al.
20050256806 Method and system to facilitate securely processing a payment for an online transaction November, 2005 Tien et al.
6950941 Copy protection system for portable storage media September, 2005 Lee et al.
20050187674 Program distribution system, program distribution device, and in-vehicle gateway device August, 2005 Ando
20050010818 Communication of information via a side-band channel, and use of same to verify positional relationship January, 2005 Paff et al.
6820063 Controlling access to content based on certificates and access predicates November, 2004 England et al.
6772133 Information recording device and information reproducting device August, 2004 Kambayashi et al.
20040117625 Attestation using both fixed token and portable token June, 2004 Grawrock
20040111600 Deriving keys used to securely process electronic messages June, 2004 Kaler et al.
6754815 Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set June, 2004 Ellison et al.
6745936 Method and apparatus for generating secure endorsed transactions June, 2004 Movalli et al.
6735696 Digital content protection using a secure booting method and apparatus May, 2004 Hannah
20040052377 Apparatus for encryption key management March, 2004 Mattox et al.
6694025 Method and apparatus for secure distribution of public/private key pairs February, 2004 Epstein et al.
20040003273 Sleep protection January, 2004 Grawrock et al.
6681214 Secure system for printing authenticating digital signatures January, 2004 Doljack
20030188179 Encrypted file system using TCPA October, 2003 Challener et al.
6640304 Systems and methods for secure transaction management and electronic rights protection October, 2003 Ginter et al.
20030177391 Authenticated and metered flow control method September, 2003 Ofek et al.
20030163711 Multi-token seal and unseal August, 2003 Grawrock
6609199 Method and apparatus for authenticating an open system application to a portable IC device August, 2003 DeTreville
20030126454 Authenticated code method and apparatus July, 2003 Glew et al.
20030108202 Location dependent encryption and/or decryption June, 2003 Clapper
6574609 Secure electronic content management system June, 2003 Downs et al.
20030084258 MEMORY APPARATUS May, 2003 Tashiro
6560706 Interface for ensuring system boot image integrity and authenticity May, 2003 Carbajal et al.
20030072450 Method and apparatus for providing privacy of user identity and characteristics in a communication system April, 2003 Maggenti
20030014315 Method and a system for obtaining services using a cellular telecommunication system January, 2003 Jaalinoja et al.
20020186847 Decoding device, decoding method and chip-card December, 2002 Bischoff et al.
20020164022 Method and apparatus for providing bus-encrypted copy protection key to an unsecured bus November, 2002 Strasser et al.
6480961 Secure streaming of digital audio/visual content November, 2002 Rajasekharan et al.
6477252 Digital video content transmission ciphering and deciphering method and apparatus November, 2002 Faber et al.
20020152173 System and methods for managing the distribution of electronic content October, 2002 Rudd
20020150243 Method and system for controlled distribution of application code and content data within a computer network October, 2002 Craft et al.
20020138442 Content provision device and method and license server capable of facilitating circulation of encrypted content data September, 2002 Hori et al.
20020120936 System and method for receiving broadcast audio/video works and for enabling a consumer to purchase the received audio/video works August, 2002 Del Beccaro et al.
20020107803 Method and system of preventing unauthorized rerecording of multimedia content August, 2002 Lisanke et al.
20020106086 Data delivery method and data delivery system August, 2002 Kamiya et al.
20020101995 Microprocessor using asynchronous public key decryption processing August, 2002 Hashimoto et al.
20020094111 Access control method and apparatus July, 2002 Puchek et al.
20020094089 Data delivery method and data delivery system July, 2002 Kamiya et al.
6427140 Systems and methods for secure transaction management and electronic rights protection July, 2002 Ginter et al.
20020076042 System and method for crypto-key generation and use in cryptosystem June, 2002 Sandhu et al.
20020071565 Software process pre-authorization scheme for applications on a computer system June, 2002 Kurn et al.
20020069365 LIMITED-USE BROWSER AND SECURITY SYSTEM June, 2002 Howard
6401208 Method for BIOS authentication prior to BIOS execution June, 2002 Davis et al.
20020057799 Data delivery system, server apparatus, reproducing apparatus, data delivery method, data playback method, storage medium, control, signal, and transmission data signal May, 2002 Kohno
6389402 Systems and methods for secure transaction management and electronic rights protection May, 2002 Ginter
6381741 Secure data downloading, recovery and upgrading April, 2002 Shaw
6367012 Embedding certifications in executable files for network transmission April, 2002 Atkinson et al.
6363488 Systems and methods for secure transaction management and electronic rights protection March, 2002 Ginter et al.
6363486 Method of controlling usage of software components March, 2002 Knapton, III
20020007452 CONTENT PROTECTION FOR DIGITAL TRANSMISSION SYSTEMS January, 2002 Traw et al.
6341373 Secure data downloading, recovery and upgrading January, 2002 Shaw
6339830 Deterministic user authentication service for communication network January, 2002 See et al.
6338139 Information reproducing apparatus, authenticating apparatus, and information processing system January, 2002 Ando et al.
6335972 Framework-based cryptographic key recovery system January, 2002 Chandersekaran et al.
6327660 Method for securing communications in a pre-boot environment December, 2001 Patel
6327652 Loading and identifying a digital rights management operating system December, 2001 England et al.
20010044901 BUBBLE-PROTECTED SYSTEM FOR AUTOMATIC DECRYPTION OF FILE DATA ON A PER-USE BASIS AND AUTOMATIC RE-ENCRYPTION November, 2001 Grawrock
6308317 Using a high level programming language with a microcontroller October, 2001 Wilkinson et al.
6292569 Systems and methods using cryptography to protect secure computing environments September, 2001 Shear et al.
6272629 Method and apparatus for establishing network connection for a processor without an operating system boot August, 2001 Stewart
6263445 Method and apparatus for authenticating connections to a storage system coupled to a network July, 2001 Blumenau
6263431 Operating system bootstrap security mechanism July, 2001 Lovelace et al.
6253193 Systems and methods for the secure transaction management and electronic rights protection June, 2001 Ginter
6229894 Method and apparatus for access to user-specific encryption information 2001-05-08 Van Oerschot et al.
6240185 Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels May, 2001 Van Wie et al.
6237786 Systems and methods for secure transaction management and electronic rights protection May, 2001 Ginter et al.
6189103 Authority delegation with secure operating system queues 2001-02-13 Nevarez et al.
6189100 Ensuring the integrity of remote boot client data 2001-02-13 Barr
6185678 Secure and reliable bootstrap architecture 2001-02-06 Arbaugh
6148083 Application certification for an international cryptography framework 2000-11-14 Fieres
6118873 System for encrypting broadcast programs in the presence of compromised receiver devices 2000-09-12 Lotspiech et al.
6105137 Method and apparatus for integrity verification, authentication, and secure linkage of software modules 2000-08-15 Graunke
5991406 System and method for data recovery 1999-11-23 Lipner et al.
5860099 Stored program system with protected memory and secure signature extraction 1999-01-12 Milios et al.
5757919 Cryptographically protected paging subsystem 1998-05-26 Herbert
5664016 Method of building fast MACS from hash functions 1997-09-02 Preneel
5654746 Secure authorization and control method and apparatus for a game delivery service 1997-08-05 McMullan et al.
5557765 System and method for data recovery 1996-09-17 Lipner
5530758 Operational methods for a secure node in a computer network 1996-06-25 Marino, Jr. et al.
5530749 Methods and apparatus for secure hardware configuration 1996-06-25 Easter et al.
5483649 Personal computer security system 1996-01-09 Kuznetsov et al.
5448716 Apparatus and method for booting a multiple processor system having a global/local memory architecture 1995-09-05 Hardell et al.
5418947 Locating information in an unsorted database utilizing a B-tree 1995-05-23 Hsu et al.
5349643 System and method for secure initial program load for diskless workstations 1994-09-20 Cox
CA2425010 October, 2003
CA2425006 June, 2012
EP0695985 February, 1996 Logon certificates
EP1132828 September, 2001 DATA PROVIDING SYSTEM AND METHOD THEREFOR
GB2260629 April, 1993
JP06318167 November, 1994 DEVICE AND METHOD FOR SCANNING OBJECT
JP08137686 May, 1996 METHOD AND DEVICE FOR MANAGING DATA ON LITERARY WORK
JP09251426 September, 1997 FILE CIPHERING SYSTEM AND ITS CONTROL METHOD, AND CIPHER FILE RECEPTION SYSTEM AND ITS CONTROL METHOD
JP1040172 February, 1998
JP11265317 September, 1999 COPYRIGHT PROTECTION SYSTEM
JP2000260121 September, 2000 INFORMATION REPRODUCING DEVICE AND INFORMATION RECORDING DEVICE
JP2000311114 November, 2000 COMPUTER SYSTEM AND CONTENTS PROTECTING METHOD
JP2001209583 August, 2001 RECORDED DATA REGENERATOR AND METHOD FOR SAVED DATA PROCESSING AND PROGRAM DISTRIBUTION MEDIA
JP2001282375 October, 2001 ACCESS CONTROL FOR COMPUTER
JP2001318787 November, 2001 MICROPROCESSOR AND MULTI-TASK EXECUTION METHOD AND MULTI-THREAD EXECUTION METHOD USING THE SAME
JP2002049499 February, 2002 SECURE INTER-TASK COMMUNICATION METHOD ON OS
JP2003271254 September, 2003 AUTHENTICATION SYSTEM, FIRMWARE DEVICE, ELECTRIC EQUIPMENT AND AUTHENTICATION METHOD
JP5060652 August, 2012
WO-9938070 July, 1999
WO-0219609 March, 2002
“Department of Defense Trusted Computer System Evaluation Criteria”, Department of Defense Standard, (Dec. 1985),pp. 1-79.
“Final Office Action”, U.S. Appl. No. 10/406,861, (Aug. 17, 2007),11 pages.
“Final Office Action”, U.S. Appl. No. 10/407,117, (Jul. 12, 2007),18 pages.
“Final Office Action”, U.S. Appl. No. 10/430,994, (Jul. 10, 2007),21 pages.
“Final Office Action”, U.S. Appl. No. 11/557,595, (Sep. 17, 2009),6 pages.
“Final Office Action”, U.S. Appl. No. 09/227,568, (Aug. 13, 2002),5 Pages.
“Final Office Action”, U.S. Appl. No. 09/266,207, (Feb. 9, 2005),22 Pages.
“Final Office Action”, U.S. Appl. No. 10/430,999, (Jun. 14, 2007),27 Pages.
“First Office Action”, Chinese Application No. 200710152961.4, (Jan. 8, 2010),8 pages.
“Foreign Notice of Rejection”, Japanese Patent Appln No. 2003-113502, (Sep. 15, 2009), 13 pages.
“Foreign Office Action”, Application Serial No. 10-2003-0024377, (Feb. 22, 2010),7 pages.
“Foreign Office Action”, Application Serial No. 2003-113503, (Sep. 15, 2009),14 pages.
“Foreign Office Action”, Application Serial No. 200610059571.8, (Feb. 20, 2009),7 pages.
“Foreign Office Action”, Application Serial No. 200610059598.7, (Feb. 20, 2009),9 pages.
“Foreign Office Action”, Application Serial No. 200710152963.3, (Mar. 1, 2010),21 pages.
“Foreign Office Action”, Chinese Application No. 03131208.X, (Nov. 4, 2005),11 pages.
“Foreign Office Action”, Japanese Application No. 2003-113502, (Oct. 26, 2010),7 pages.
“Foreign Office Action”, Japanese Application No. 2003-113503, (Oct. 26, 2010),7 pages.
“Foreign Office Action”, Korean Application No. 10-2003-24377, (Sep. 30, 2010),9 pages.
“Handbook of Applied Cryptography”, CRC Press Series on Discrete Mathematics and Its Applications, XP-002265828, (1997),pp. 33, 493, 509, 510, 546-552.
“Internet Security: SanDisk and New Microsoft Technology Provide Copy Protected Music for Internet Music Player Market”, (Product Announcement) Edge: Work-Group Computing Report, (Apr. 19, 1999),2 Pages.
“Microsoft Press Computer Dictionary”, Third Edition, published by Microsoft Press, Copyright 1997,(1997),pp. 27, 34, 341.
“Non Final Office Action”, U.S. Appl. No. 11/557,595, (Feb. 25, 2009),6 pages.
“Non Final Office Action”, U.S. Appl. No. 10/406,861, (Jan. 10, 2007),13 pages.
“Non Final Office Action”, U.S. Appl. No. 10/407,117, (Apr. 10, 2009),26 pages.
“Non Final Office Action”, U.S. Appl. No. 10/407,117, (Feb. 7, 2008),6 pages.
“Non Final Office Action”, U.S. Appl. No. 10/430,994, (Jan. 24, 2007),19 pages.
“Non Final Office Action”, U.S. Appl. No. 10/430,994, (Jun. 16, 2005),6 pages.
“Non Final Office Action”, U.S. Appl. No. 10/431,011, (Jun. 1, 2007),6 pages.
“Non Final Office Action”, U.S. Appl. No. 10/431,011, (Jun. 30, 2006),19 pages.
“Non Final Office Action”, U.S. Appl. No. 11/557,581, (Feb. 13, 2009),21 pages.
“Non Final Office Action”, U.S. Appl. No. 10/407,117, (Sep. 18, 2008),28 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/407,117, (Nov. 25, 2009),6 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/407,117, (Dec. 11, 2006),16 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/407,117, (Jun. 24, 2010),6 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/430,994, (Aug. 9, 2006),17 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/430,994, (Dec. 14, 2005),6 pages.
“Non-Final Office Action”, U.S. Appl. No. 10/431,011, (Nov. 27, 2006),9 pages.
“Non-Final Office Action”, U.S. Appl. No. 11/557,581, (Oct. 20, 2009),6 pages.
“Non-Final Office Action”, U.S. Appl. No. 11/557,595, (Feb. 25, 2009),6 pages.
“Non-final Office Action”, U.S. Appl. No. 09/227,568, (Dec. 4, 2001),7 Pages.
“Non-final Office Action”, U.S. Appl. No. 09/227,568, (Mar. 27, 2006),7 Pages.
“Non-final Office Action”, U.S. Appl. No. 09/227,568, (Jun. 3, 2005),4 Pages.
“Non-final Office Action”, U.S. Appl. No. 09/227,568, (Jun. 18, 2003),6 Pages.
“Non-final Office Action”, U.S. Appl. No. 09/227,568, (Aug. 9, 2004),5 Pages.
“Non-final Office Action”, U.S. Appl. No. 09/227,568, (Sep. 22, 2005),4 Pages.
“Non-final Office Action”, U.S. Appl. No. 09/266,207, (Jan. 29, 2004),16 Pages.
“Non-final Office Action”, U.S. Appl. No. 09/266,207, (Nov. 1, 2005),12 Pages.
“Non-final Office Action”, U.S. Appl. No. 09/266,207, (Apr. 25, 2006),9 Pages.
“Non-final Office Action”, U.S. Appl. No. 09/266,207, (Jul. 19, 2004),20 Pages.
“Non-final Office Action”, U.S. Appl. No. 09/266,207, (Aug. 13, 2003),12 Pages.
“Non-final Office Action”, U.S. Appl. No. 10/430,999, (Jan. 24, 2008),9 Pages.
“Non-final Office Action”, U.S. Appl. No. 10/430,999, (Dec. 5, 2006),22 Pages.
“Non-final Office Action”, U.S. Appl. No. 10/430,999, (Jul. 12, 2006),22 Pages.
“Non-Final Office Action”, U.S. Appl. No. 10/431,011, (Jun. 1, 2007),6 pages.
“Notice of Allowance”, U.S. Appl. No. 10/407,117, (Oct. 6, 2010),6 pages.
“Notice of Allowance”, U.S. Appl. No. 11/557,581, (Apr. 6, 2010),8 pages.
“Notice of Allowance”, U.S. Appl. No. 11/557,595, (Mar. 11, 2010),4 pages.
“Notice of Allowance”, U.S. Appl. No. 11/557,641, (Jun. 2, 2009),6 pages.
“Notice of Preliminary Rejection”, Korean Application No. 10-2003-0024374, (Mar. 26, 2010),5 Pages.
“Notice on Grant of Patent Rights”, Application Serial No. 200610059571.8, (Jun. 19, 2009),4 pages.
“Notice on Grant of Patent”, Application Serial No. 200610059598.7, (Jun. 19, 2009),4 pages.
“Phoenix Technologies Partners with Secure Computing in Enterprise Security Marketplace”, Business Wife Courtesy of Dialog Text Search, (Jul. 12, 2001),2 pages.
“Restriction Requirement”, U.S. Appl. No. 10/406,861, (Jan. 10, 2007),13 pages.
“Restriction Requirement”, U.S. Appl. No. 10/407,117, (Sep. 14, 2006),4 pages.
“Trusted Computing Group (TCG) Main Specification Version 1.1a”, Retrieved from http://www.trustedpc.org, Trusted Computing Platform Alliance, (Sep. 2001),332 pages.
“Trusted Computing Platform Alliance Main Specification Version 1.1b”, Trusted Computing Group, Available at ,(Feb. 22, 2002),25 pages.
Abadi, M. et al., “Authentication and Delegation with Smart-cards”, Science of Computer Programming, vol. 21, Issue 2 (Oct. 1993), Available at: ,(Jul. 30, 1992),30 pages.
Arbaugh, et al., “A Secure and Reliable Bootstrap Architecture”, IEEE 1997, Distributed Systems Laboratory, Philadelphia, PA, 1997, (1997),pp. 65-71.
Arbaugh, William et al., “Automated Recovery in a Secure Bootstrap Process”, Network and Distributed System Security Symposium, Internet Society, (1998),16 pages.
Aucsmith, David “Tamper Resistent Softward: An Implementation”, Lecture Notes in Computer Science, 1996, vol. 1174, (1996),pp. 317-333.
Barak, Boaz et al., “On the (Im)possbility of Obfuscating Programs”, J. Kilian (Ed.): CRYPTO 2001, LNCS 2130, (2001),pp. 1-18.
Bellare, Mihir et al., “Keying Hash Functions for Message Authentication”, Advances in Cryptology—CRYPTO, 1996, LNCS 1109, (1996),pp. 1-15.
Blaze, Matt “A Cryptographic File System for Unix”, Conference on Computer and Communications Security, Proceedings of the 1st ACM conference on Computer and communications security, ACM, pp. 9-16, 1993,8 pages.
Clark, Paul C., et al., “BITS: A Smartcard Protected Operating System”, Communications of the ACM, vol. 37, Issue 11, Available at ,(Nov. 1994),pp. 66-70, 94.
Coffey, Tom et al., “Non-Repudiation with Mandatory Proof of Receipt”, ACM SIGCOMM Computer Communication Review archive vol. 26 , Issue 1, (Jan. 1996),pp. 6-17.
Davida, George I., et al., “Defending Systems Against Viruses through Cryptographic Authentication”, IEEE Computer Society Symposium on Security and Privacy, (1989),pp. 312-318.
England, Paul et al., “Authenticated Operation of Open Computing Devices”, In Proceedings of 7th Australian Conference on Information Security and Privacy, (Jul. 2002),16 pages.
Feiertag, Richard J., et al., “The Foundations of a Provably Secure Operating System (PSOS)”, California Proceedings of the National Computer Conference AFIPS Press, Available at ,(1979),pp. 1-9.
Housley, R. “Internet X.509 Public Key Infrastructure Certificate and CRL Profile”, (Jan. 1999),3 pages.
Itoi, Naomaru et al., “Personal Secure Booting”, ACISP 2001, LNCS 2119, (2001),pp. 130-144.
Kuhn, Markus “The TrustNo1 Cryptoprocessor Concept”, Technical Report, Purdue University, (Apr. 30, 1997),6 pages.
Lampson, Butler et al., “Authentication in Distributed Systems: Theory and Practice”, Digital Equipment Corporation ACM Transactions on Computer Systems, vol. 10, No. 4, (Nov. 1992),pp. 265-310.
Lampson, Butler W., et al., “Protection”, Fifth Princeton Symposium on Information Sciences and Systems, Princeton University, Mar. 1971, reprinted in Operating Systems Review, 8, 1, Jan. 1974, (Mar. 1971),pp. 18-24.
McKenkie, Matt “Seybold Report on Internet Publishing”, vol. 1, No. 4, p. 6(9), (Dec. 1996),12 pages.
Muller-Schloer, Christian “A Microprocessor-based Cryptoprocessor”, IEEE Micro, vol. 3 Issue 5, (Oct. 31, 1983),pp. 5-15.
Murphy, Kathleen et al., “Preventing Piracy: Authorization Software May Ease Hollywood's Fear of the Net”, Internet World Magazine, (Apr. 1, 2000),3 Pages.
Schneier, “Applied Cryptography”, Protocols Alogrith and Source Code in C, (1996),pp. 574-577.
Smith, Sean W., et al., “Building a High-Performance, Programmable Secure Coprossor”, Computer Networks, vol. 31, No. 8, (Apr. 1999),pp. 831-860.
Smith, Sean W., et al., “Trusting Trusted Hardware: Towards a Formal Model for Programmable Secure Coprocessors”, Third USENIX Workshop on Electronic Commerce, (1998),pp. 83-98.
Smith, Sean W., et al., “Using a High-Performance, Programmable Secure Coprocessor”, R. Hirschfeld (Ed.): FC'98, LNCS 1465, (1998),pp. 73-89.
Stallings, “Cryptography and Network Security: Principles and Practice”, 2nd Edition (1992),pp. 186-187.
Stallings, “Cryptography and Network Security: Principles and Practice”, Prentice Hall, 2nd Edition, (1999),pp. 143-147.
Suh, G. E., et al., “AEGIS: Architecture for Tamper-Evident and Tamper-Resistent Processing”, MIT Laboratory for Computer Science, XP-002265826, (2003),pp. 1-16.
Yee, “Using Secure Coprocessors”, School of Computer Science, Carnegie Mellon University, (1994),104 pages.
Young, “Facing an Internet Security Minefield Microsoft Hardens NT Server's Defenses”, Windows Watcher, Sep. 12, 1997, vol. 7, Issue 9, p. 1, 6p, 1 chart, (Sep. 12, 1997),8 Pages.
“Foreign Office Action”, Canadian Application No. 2425006, (May 2, 2011),3 pages.
“Foreign Office Action”, Chinese Application No. 200710152961.4, (May 10, 2011),7 pages.
“Foreign Office Action”, Chinese Application No. 200710152961.4, (Aug. 25, 2011),10 pages.
“Foreign Office Action”, Chinese Application No. 200710152963.3, (May 6, 2011),7 pages.
“Foreign Office Action”, Japanese Application No. 2010-057733, (Apr. 19, 2011),4 pages.
“Non-Final Office Action”, U.S. Appl. No. 13/015,360, (Sep. 16, 2011),9 pages.
“Non-Final Office Action”, U.S. Appl. No. 13/015,440, (Nov. 15, 2011),8 pages.
“Foreign Notice of Allowance”, Canadian Application No. 2425006, (Nov. 3, 2011),1 page.
“Foreign Office Action”, Canadian Application No. 2425010, (Dec. 15, 2011),8 pages.
“Foreign Office Action”, Japanese Application No. 2011-158404, (Oct. 21, 2011),4 pages.
“Final Office Action”, U.S. Appl. No. 13/015,360, (Mar. 13, 2012),13 pages.
“Foreign Notice of Allowance”, Japanese Application No. 2011-158404, (Jan. 20, 2012),6 pages.
“Non-Final Office Action”, U.S. Appl. No. 13/015,403, (Mar. 2, 2012),5 pages.
“Final Office Action”, U.S. Appl. No. 13/015,440, (May 7, 2012), 10 pages.
“Foreign Office Action”, Japanese Application No. 2011-280456, (Apr. 13, 2012), 10 pages.
“Foreign Notice of Allowance”, Japanese Application No. 2011-280456, (Jul. 31, 2012),6 pages.
“Foreign Office Action”, Chinese Application No. 200710152961.4, (Jun. 5, 2012),6 pages.
“Non-Final Office Action”, U.S. Appl. No. 13/012,573, (Jul. 19, 2012),12 pages.
“Final Office Action”, U.S. Appl. No. 13/015,403, (Sep. 13, 2012), 8 pages.
“Foreign Office Action”, Canadian Application No. 2425010, (Nov. 9, 2012), 3 pages.
“Non-Final Office Action”, U.S. Appl. No. 13/015,360, (Jan. 3, 2013), 9 pages.
“Non-Final Office Action”, U.S. Appl. No. 13/015,440, (Feb. 5, 2013), 7 pages.
“Notice of Allowance”, U.S. Appl. No. 13/015,403, (Jul. 19, 2013), 8 pages.
“Notice of Allowance”, U.S. Appl. No. 13/015,440, (Jul. 22, 2013), 5 pages.
“Final Office Action”, U.S. Appl. No. 13/012,573, (Aug. 1, 2013), 9 pages.
“Foreign Notice of Allowance”, Canadian Application No. 2,425,010, (Aug. 1, 2013), 1 Page.
“Final Office Action”, U.S. Appl. No. 13/015,360, (Sep. 10, 2013), 6 pages.
“Notice of Allowance”, U.S. Appl. No. 13/015,360, (Oct. 25, 2013), 5 pages.
1. A computing device having one or more components implemented at least in part in hardware and that perform acts comprising: obtaining data to be sealed and one or more conditions that are to be satisfied in order for the data to be unsealed; sealing the data in response to a request by a caller by encrypting, in the computing device and using public key encryption, both the data and the one or more conditions to generate a ciphertext that includes both the encrypted data and the encrypted one or more conditions, the data not being unsealed if the one or more conditions are not satisfied, the one or more conditions including a program to be executed and the one or more conditions being satisfied only if execution of the program returns an indication of true; and returning the ciphertext to the caller.
2. A computing device as recited in claim 1, the data comprising a cryptographic key.
3. A computing device as recited in claim 1, the obtaining the data comprising receiving the data as part of a PKSeal operation.
4. A computing device as recited in claim 1, the program having been written in a scripting language.
5. A computing device as recited in claim 1, the program comprising a set of computer-executable instructions written in a programming language.
6. A method comprising: invoking, in a device, an operation of a guard to seal data; and receiving, in response to invoking the operation, a ciphertext generated by the guard when sealing the data, the ciphertext including both the data and one or more conditions that are to be satisfied in order for the data to be unsealed, the one or more conditions including a program to be executed and the one or more conditions being satisfied only if execution of the program returns an indication of true, the data not being unsealed if the one or more conditions are not satisfied, the data and the one or more conditions having been encrypted using public key encryption.
7. A method as recited in claim 6, the operation comprising a PKSeal operation.
8. A method as recited in claim 6, the invoking the operation comprising passing the data as an input to the operation.
9. A method as recited in claim 6, the invoking the operation comprising passing at least one of the one or more conditions as an input to the operation.
10. A method as recited in claim 6, the data comprising a cryptographic key.
11. A method as recited in claim 6, the program having been written in a scripting language.
12. A method as recited in claim 6, the program comprising a set of computer readable instructions written in a programming language.
13. A method comprising: invoking, in a device, an operation of a guard to have ciphertext decrypted; and receiving from the guard, in response to invoking the operation, decrypted data from the ciphertext only if one or more conditions included in the ciphertext are satisfied, the one or more conditions including a program and the one or more conditions being satisfied only if execution of the program returns an indication of true, the ciphertext being decrypted using public key decryption.
14. A method as recited in claim 13, the operation comprising a PKUnseal operation.
15. A method as recited in claim 13, the invoking the operation comprising passing the ciphertext as an input to the operation.
16. A method as recited in claim 13, the invoking the operation comprising passing a pointer to the ciphertext as an input to the operation.
17. A method as recited in claim 13, the data comprising a cryptographic key.
18. A method as recited in claim 13, the program having been written in a scripting language.
19. A method as recited in claim 13, the program comprising a set of computer readable instructions written in a programming language.
The principals and guards on a computing device can be categorized into any number n of hierarchical layers 1n. FIG. 2 shows an example access control environment employing four different hierarchical layers. In one implementation, layer 11 refers to a hardware or security kernel layer, layer 12 refers to a basic input/output system (BIOS) layer, layer 13 refers to an operating system (OS) layer, and layer 14 refers to an application layer.
One class of gating functions described herein implement sealed storage. The purpose of sealed storage is to allow programs to store secrets, such that only a particular set of one or more programs (defined by the program that stores the secret) can retrieve the secrets. In one implementation, only the program that originally saves (seals) the secret can recover (unseal) the secret. Typically, the life time of these secrets will exceed the time of individual executions of the program. Secrets used during a single execution of a program can be saved (sealed), or alternatively isolation and a random number generator also allow a program to maintain secrets during a single execution. Sealed storage also allows a program to maintain secrets across different executions, which may not overlap in time. A layer 1i exposes sealed storage to the next layer 1i+1 by means of the following interface (e.g., using the “Seal” and “UnSeal” operations and/or PKSeal and PKUnseal operations).
With authenticated operation, programs are started in a controlled initial state. At higher levels, the software running at lower levels can be entrusted to start execution at the correct entry point. At 11, however, hardware performs this function. Typically, on power-up or following reset, current processors begin execution by following some deterministic sequence. For example, in the simplest case the processor starts fetching and executing code from an architecturally-defined memory location. For 11 programs can be started in a controlled initial state by the hardware ensuring that the security kernel is the code that executes on startup (as part of the deterministic sequence).
<- Previous Patent (Display of a verific...) | Next Patent (Method and apparatus...) ->