Patents by Inventor Marcus Peinado

Marcus Peinado has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 6829708
    Abstract: To determine whether digital content can be released to an element such as a computer application or module, a scaled value representative of the relative security of the element is associated therewith, and the digital content has a corresponding digital license setting forth a security requirement. The security requirement is obtained from the digital license and the scaled value is obtained from the element, and the scaled value of the element is compared to the security requirement of the digital license to determine whether the scaled value satisfies the security requirement. The digital content is not released to the element if the scaled value does not satisfy the security requirement.
    Type: Grant
    Filed: March 15, 2000
    Date of Patent: December 7, 2004
    Assignee: Microsoft Corporation
    Inventors: Marcus Peinado, Rajasekhar Abburi, Jeffrey R. C. Bell
  • Publication number: 20040230805
    Abstract: Secure communication between a keyboard and a component, such as a piece of software running on a computer. A first initial value is known to both the keyboard and the component. The keyboard and the component exchange nonces. The keyboard and the component each compute a second initial value and a third initial value based on the nonces and the first initial value. Both the keyboard and the component perform the same computation, so that the keyboard and the component each have the same second and third initial values. The keyboard encrypts keystrokes destined for the component using CBC-3DES based on the key and the second initial value, and also creates a message authentication code for each keystroke using CBC-3DESMAC based on the key and the third initial value. The component decrypts and verifies the keystrokes using the key and the second and third initial values.
    Type: Application
    Filed: May 2, 2003
    Publication date: November 18, 2004
    Inventors: Marcus Peinado, Josh Benaloh
  • Publication number: 20040230794
    Abstract: Techniques are disclosed to support hosting of a first operating system by a second operating system, where the first system provides at least some of the infrastructure for the second system. A facility is provided whereby the second system can receive data from the first system without the first system being able to modify that data. The second system may use the first system's scheduler by creating shadow threads and synchronization objects known to the first system, while the second system makes the final decision as to whether a thread runs. Separate memory may be allocated to both systems at boot time, or dynamically during their operation. The techniques herein may be used to protect the second system from actions arising in the first system. Preferably, the interaction between the first and second systems is facilitated by a security monitor, which assists in protecting the second system from the first.
    Type: Application
    Filed: May 2, 2003
    Publication date: November 18, 2004
    Inventors: Paul England, Marcus Peinado, Bryan Mark Willman
  • Patent number: 6816596
    Abstract: To encrypt a digital object, a key ID is selected for the digital object, and a function ƒ( ) having an input and an output is selected. The selected key ID is then employed as the input to the function ƒ( ), and the output of such function ƒ( ) is employed as the key (KD) for the digital object: ƒ(key ID)→key (KD). The digital object is then encrypted according to such key (KD), and the encrypted digital object is distributed.
    Type: Grant
    Filed: March 15, 2000
    Date of Patent: November 9, 2004
    Assignee: Microsoft Corporation
    Inventors: Marcus Peinado, Ramarathnam Venkatesan
  • Publication number: 20040221126
    Abstract: Mechanisms are disclosed that may allow certain memory access control algorithms to be implemented efficiently. When memory access control is based on controlling changes to an address translation map (or set of maps), it may be necessary to determine whether a particular map change would allow memory to be accessed in an impermissible way. Certain data about the map may be cached in order to allow the determination to be made more efficiently than performing an evaluation of the entire map.
    Type: Application
    Filed: June 30, 2003
    Publication date: November 4, 2004
    Inventors: Marcus Peinado, Paul England
  • Publication number: 20040205203
    Abstract: Plural guest operating systems run on a computer, where a security kernel enforces a policy of isolation among the guest operating systems. An exclusion vector defines a set of pages that cannot be accessed by direct memory access (DMA) devices. The security kernel enforces an isolation policy by causing certain pages to be excluded from direct access. Thus, device drivers in guest operating systems are permitted to control DMA devices directly without virtualization of those devices, while each guest is prevented from using DMA devices to access pages that the guest is not permitted to access under the policy.
    Type: Application
    Filed: December 19, 2003
    Publication date: October 14, 2004
    Inventors: Marcus Peinado, Paul England, Bryan Mark Willman, Yuqun Chen, Andrew John Thornton
  • Patent number: 6775655
    Abstract: A rendering application determines that digital content is in an encrypted rights-protected form and invokes a Digital Rights Management (DRM) system which includes a license store having at least one digital license stored therein. Each license corresponds to a piece of digital content and includes a decryption key (KD) for decrypting the corresponding digital content. The DRM system locates each license in the license store corresponding to the digital content to be rendered, selects one of the located licenses, obtains (KD) from the selected license, decrypts the digital content with (KD), and returns the decrypted digital content to the rendering application for actual rendering.
    Type: Grant
    Filed: November 24, 1999
    Date of Patent: August 10, 2004
    Assignee: Microsoft Corporation
    Inventors: Marcus Peinado, John L. Manferdelli, Jeffrey R. C. Bell
  • Patent number: 6772340
    Abstract: A digital rights management (DRM) system operates on a computing device when a user requests that an encrypted piece of digital content be rendered by the computer device. The computing device has an identifier. A black box performs decryption and encryption functions in the DRM system. The black box includes a key file and an executable. The key file includes at least one black box public key and is expected to include the identifier of the computing device, the black box thus being tied to the computing device by inclusion of such first identifier. A digital license corresponding to the digital content is resident in the DRM system and includes a decryption key for decrypting the encrypted digital content. The decryption key is expected to be encrypted according to a black box public key of the key file of the black box, the license thus being tied to the black box and by extension the computing device.
    Type: Grant
    Filed: March 15, 2000
    Date of Patent: August 3, 2004
    Assignee: Microsoft Corporation
    Inventors: Marcus Peinado, Donna Liu, Krishnamurthy Ganesan
  • Publication number: 20040054901
    Abstract: A log is provided which can be used in an insecure environment and in which rollbacks or changes to the log may be detected. A secure data sequence is provided, and a private key is stored along with data sequence data. In one embodiment, a secure counter is used, and the secure counter value incremented and stored with each new data entry to the data sequence. The secure counter value (if used) and the new data entry are stored, signed by the private key. Also stored and signed with the new data entry is a new public key. The corresponding new private key is stored for use in signing a next data entry, and the private key that had been used to sign the data is destroyed. In this way, rollbacks and modifications to the sequence can be detected.
    Type: Application
    Filed: September 17, 2002
    Publication date: March 18, 2004
    Applicant: Microsoft Corporation
    Inventors: Paul England, Marcus Peinado
  • Publication number: 20040003262
    Abstract: The various embodiments described below are directed to providing authenticated and confidential messaging from software executing on a host (e.g. a secure software application or security kernel) to and from I/O devices operating on a USB bus. The embodiments can protect against attacks that are levied by software executing on a host computer. In some embodiments, a secure functional component or module is provided and can use encryption techniques to provide protection against observation and manipulation of USB data. In other embodiments, USB data can be protected through techniques that do not utilized (or are not required to utilize) encryption techniques. In accordance with these embodiments, USB devices can be designated as “secure” and, hence, data sent over the USB to and from such designated devices can be provided into protected memory. Memory indirection techniques can be utilized to ensure that data to and from secure devices is protected.
    Type: Application
    Filed: June 28, 2002
    Publication date: January 1, 2004
    Inventors: Paul England, Kenneth D. Ray, Marcus Peinado, John C. Dunn, Glen Slick, Bryan Willman
  • Publication number: 20040003244
    Abstract: A multiplexed secure counter is provided, in which a multiplicity of child secure counters are secured by a parent secure counter. Child counters are stored with a parent secure counter value and a signature. Before a child counter is read, the signature is verified and value stored is checked against the current value of the parent secure value. If the verifications are successful, the child secure counter can be used. To increment a child counter, the signature is verified and the value stored checked against the current value of the parent secure value. If the verifications are successful, the parent counter and the child counter are incremented, and the data is signed again.
    Type: Application
    Filed: June 28, 2002
    Publication date: January 1, 2004
    Inventors: Paul England, Marcus Peinado
  • Publication number: 20040003189
    Abstract: A counter is provided which can be implemented in flash memory allowing longer life through fewer erasures. The counter is incremented using a method that minimizes bit transitions from 1 to 0. In one embodiment, the counter is implemented in m+n bits. The bits of the counter are grouped into a binary portion of the counter of m bits and a unary portion of the counter of n bits. In order to increment the counter, the unary portion of the counter is incremented first. When the unary portion of the counter reaches a specific value, the binary portion of the counter is incremented. This limits 1 to 0 bit transitions and allows a large range of unique values to be read from the counter. In another embodiment, two unary counters are formed, which dynamically change in size as the counter is incremented.
    Type: Application
    Filed: June 28, 2002
    Publication date: January 1, 2004
    Inventors: Paul England, Marcus Peinado
  • Publication number: 20030217011
    Abstract: A digital rights management (DRM) system, an application, and a DRM digital license for the application are all on a computing device. The application is for being executed to perform a function and includes code requiring that the DRM system determine that the application is allowed to be executed to perform the function based on the license. The application further includes code for determining that the application is to be executed on one of the computing device or in connection with the DRM system.
    Type: Application
    Filed: May 15, 2002
    Publication date: November 20, 2003
    Inventors: Marcus Peinado, Paul England, John L. Manferdelli
  • Publication number: 20030200440
    Abstract: 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.
    Type: Application
    Filed: April 4, 2003
    Publication date: October 23, 2003
    Inventors: Paul England, Marcus Peinado
  • Publication number: 20030200450
    Abstract: In accordance with certain aspects, data is received from a calling program. Ciphertext that includes the data is generated, using public key encryption, in a manner that allows only one or more target programs to be able to obtain the data from the ciphertext. In accordance with another aspect, 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 data is decrypted using public key decryption and returned to the calling program only if the calling program is allowed to access the data.
    Type: Application
    Filed: April 4, 2003
    Publication date: October 23, 2003
    Inventors: Paul England, Marcus Peinado
  • Publication number: 20030200412
    Abstract: A data storage resource is identifiable by physical addresses, and optionally by a virtual address. A policy defines which resources are accessible and which resources are not accessible. A request to access a resource is allowed if access to the resource is permitted by the policy, and if carrying out the access will not cause virtual addresses to be assigned to resources to which the policy disallows access. Since resources to which access is disallowed do not have virtual addresses, certain types of access requests that identify a resource by a virtual address can be allowed without consulting the policy.
    Type: Application
    Filed: November 1, 2002
    Publication date: October 23, 2003
    Inventors: Marcus Peinado, Paul England, Bryan Mark Willman
  • Publication number: 20030200402
    Abstract: Isolated memory is implemented by controlling changes to address translation maps. Control over the maps can be exercised in such a way that no virtual address referring to an isolated page is exposed to any untrusted process. Requests to edit an entry in a map are evaluated to ensure that the edit will not cause the map to point to isolated memory. Requests to change which map is active are evaluated to ensure that the map to be activated does not point to isolated memory. Preferably, these evaluations are performed by a trusted component in a trusted environment, since isolation of the memory depends on the evaluation component not being compromised. In systems that require all memory access requests to identify their target by virtual address, preventing the address translation maps from pointing to a portion of memory effectively prevents access to that portion of memory, thereby creating an isolated memory.
    Type: Application
    Filed: December 13, 2002
    Publication date: October 23, 2003
    Applicant: Microsoft Corporation
    Inventors: Bryan Mark Willman, Paul England, Marcus Peinado
  • Publication number: 20030200435
    Abstract: Methods and systems are provided for authenticating component(s) in connection with the use of a trusted graphics system. Techniques are provided for authenticating a graphics card in connection with a system that cryptographically secures content routed through a graphics pipeline, such that an application or device can indicate to the trusted graphics platform that the application or device is a trusted user of the trusted graphics platform, and such that the graphics platform can communicate to the trusted application or device that the graphics platform may be trusted by the application or device.
    Type: Application
    Filed: April 18, 2002
    Publication date: October 23, 2003
    Inventors: Paul England, Marcus Peinado, Nicholas P. Wilt
  • Publication number: 20030195855
    Abstract: A device renders content on a medium by obtaining a table from the medium, obtaining a device key (DK) of the device and an index value of such (DK), indexing into an entry of the table based on the obtained index value, selecting an encrypted secret from the indexed-into entry, applying the obtained device key (DK) to the selected encrypted secret to expose the secret, and applying the exposed secret to render the content.
    Type: Application
    Filed: April 16, 2002
    Publication date: October 16, 2003
    Applicant: Microsoft Corporation
    Inventors: M. Jay Parks, Marcus Peinado, Jonas Fredrik Helin, Clifford P. Strom
  • Publication number: 20030140241
    Abstract: Methods and systems are provided for cryptographically protecting secure content in connection with a graphics subsystem of a computing device. Techniques are implemented to encrypt the contents of video memory so that unauthorized software cannot gain meaningful access to it, thereby maintaining confidentiality. Moreover, a mechanism for tamper detection is provided so that there is awareness when data has been altered in some fashion, thereby maintaining integrity. In various embodiments, the contents of overlay surfaces and/or command buffers are encrypted, and/or the GPU is able to operate on encrypted content while preventing its availability to untrusted parties, devices or software.
    Type: Application
    Filed: April 18, 2002
    Publication date: July 24, 2003
    Inventors: Paul England, Marcus Peinado, Nicholas P. Wilt