MXPA03002376A - Metodos y sistema para proteger criptograficamente contenido seguro. - Google Patents

Metodos y sistema para proteger criptograficamente contenido seguro.

Info

Publication number
MXPA03002376A
MXPA03002376A MXPA03002376A MXPA03002376A MXPA03002376A MX PA03002376 A MXPA03002376 A MX PA03002376A MX PA03002376 A MXPA03002376 A MX PA03002376A MX PA03002376 A MXPA03002376 A MX PA03002376A MX PA03002376 A MXPA03002376 A MX PA03002376A
Authority
MX
Mexico
Prior art keywords
encrypted
content
processing unit
graphics
decrypting
Prior art date
Application number
MXPA03002376A
Other languages
English (en)
Inventor
Paul England
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA03002376A publication Critical patent/MXPA03002376A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Se proporcionan métodos y sistemas para proteger criptográficamente contenido seguro en conexión con un subsistema de gráficos de un dispositivo de computación. Se implementan técnicas para encriptar el contenido de la memoria de video de manera que software no autorizado no pueda tener acceso con sentido aél, mediante lo cual se mantiene la confidencialidad. Mas aún, se proporciona un mecanismo para la detección del intento de violación de manera que se sabe cuando los datos han sido alterados de alguna manera, mediante lo cual se mantiene la integridad. En varias modalidades,los contenidos de las superficies de traslape y/o memorias intermedias de comandos son encriptados, y/o la unidad de procesamiento de gráficos es capaz de operar sobre el contenido encriptado al mismo tiempo que evita su disponibilidad a partes, dispositivos o software no confiabl

Description

MÉTODOS Y SISTEMA PARA PROTEGER CRIPTOGRÁFICAMENTE CONTENIDO SEGURO Referencia Cruzada a las Solicitudes Relacionadas: Esta solicitud reclama el beneficio de las solicitudes provisionales con números de serie 60/337,617 presentada el 4 de diciembre de 2001, y 60/339,143 presentada el 10 de diciembre de 2001 y se relacionan con la Solicitud de Patente de los Estados Unidos de Norteamérica pendiente conjunta número 10/125,170 presentada el 18 de abril de 2002. Noticia de Derechos de Autor y Permisos: Una porción de la descripción de este documento de patente puede contener material que se somete a protección de derechos de autor. El propietario de los derechos de autor no tiene objeción a la reproducción en facsimil del documento de patente o de la descripción de patente, como aparece en los archivos o registros de patentes de la Oficina de Patentes de y Marcas, pero de otro modo se reserva todos los demás derechos de autor. La siguiente notificación se aplicará a este documento: Copyright© 2001, Microsoft Corp. Campo da la Invención : La presente invención se relaciona con métodos y sistemas para proteger criptográficamente contenido seguro. Más particularmente, la presente invención se relaciona con técnicas para asegurar criptográficamente el contenido encaminado a través de un conducto de gráficos, proporcionando tanto confidencialidad como protección contra violación con respecto al contenido. Antecadentes dm la Invención : La Internet y muchas otras fuentes de aplicaciones ahora proporcionan un vasto arreglo de medios en flujo y fijos u otro contenido para escuchar, ver, procesar, almacenar y de otro modo representar. Sin embargo, actualmente no hay una manera práctica para capturar, grabar, o representar los medios en flujo o fijos o el contenido de una manera protegida contra la copia de manera que un pirata no pueda conectarse en el flujo en algún punto a lo largo de la conexión, ya sea conforme el contenido está siendo procesado o conforme el contenido está siendo representado, y tomar posesión de una copia o alterar el contenido. Este problema ha existido en conexión con otros dispositivos de representación y grabación de medios en el pasado, por ejemplo, las grabadoras de video casetes para el contenido de televisión, o las grabadoras de cintas de audio para las señales de audio, pero con cuando menos una diferencia clave. Ya que el contenido de los medios digitales se puede grabar sin virtualmente ninguna señal de pérdida, esto plantea un "riesgo" para los propietarios de los derechos de autor de que sus trabajos serán libremente compartidos (pirateados) sin compensación. Con las grabadoras de cintas de audio y de video, el o los dispositivos y los medios de transmisión invitan al ruido o la corrupción de datos en el proceso de grabación. Con los medios en flujo o fijos digitales, no hay razón por la cual las conversiones y retransmisiones virtualmente sin pérdida no se puedan efectuar, cuando menos en los limites de las capacidades del oído y el ojo humanos, y no hay razón por la cual los datos digitales no adulterados se puedan almacenar y distribuir libremente. Asi, seria deseable evitar la redistribución liberada de datos digitales debido a que hay poca diferencia entre lo que los propietarios del derecho de autor pueden proporcionar por un derecho y lo que un pirata puede proporcionar gratis. Más aún, con respecto a las comunicaciones que se desea que sean confidenciales, tales como las transacciones de comercio electrónico, es importante para el usuario que participe en el diálogo que ningún tercero no autorizado esté al tanto de las transacciones. Asi, con respecto al contenido de una fuente confiable, actualmente no hay una manera práctica de que los datos se procesen o se representen "de manera segura" en la computadora de un usuario sin evitar la piratería, o la corrupción. En particular, en cuanto el contenido se conduce entre un sistema de computación anfitrión, una o más unidades de procesamiento de gráficos (GPU) , y un dispositivo de representación, por ejemplo, un monitor, hay varias oportunidades de que un pirata u otro tercero no autorizado acampen sobre una linea o señal, y ya sea que se robe o que corrompa la señal. Más aún, conforme los diálogos de un usuario se hacen más sofisticados vía los servicios de mensajería y teleconferencia por video, proporcionar un conducto confiable para el contenido seguro de cualquiera que sea su origen se vuelve un avance hacia adelante cada vez más importante . Además, es claro que las futuras generaciones de sistemas operativos, dispositivos de computadoras y aplicaciones utilizarán más potencia de computación a partir de las unidades de procesamiento de gráficos para las aplicaciones de negocios, en oposición a extraer la mayor parte de la potencia de computación de las unidades de procesamiento central como en las computadoras personales de hoy en día. De este modo, asegurar que el contenido se envíe a la unidad de procesamiento de gráficos vía aplicaciones de "gráficos confiables" será una característica fundamental para los dispositivos de computación futuros, y uno al que no se enfrentan adecuadamente los sistemas de computación presentes . Este problema de proporcionar un conducto seguro para el contenido confiable se puede pensar como de dos capas: (1) se debe asegurar de que el contenido confiable no pueda ser copiado o ser visto en el mismo punto débil durante la conducción (confidencialidad) y (2) se debe asegurar que la conducción evita la corrupción no autorizada de los datos en el conducto (protegido) . En el contexto de la seguridad del sistema, la complejidad es una responsabilidad civil debido a que ella hace más difícil probar la seguridad de un sistema. Como con un aeropuerto u otro espacio de seguridad, entre mayor cantidad de puntos de entrada y salida haya en el sistema, se vuelve más difícil asegurar la seguridad. Respecto a esto, actualmente no hay un medio mediante el cual se pueda confiar en el volumen de funcionalidad de las unidades de procesamiento gráfico y las unidades de visualización en términos tanto de confidencialidad como de capacidad de protección. De este modo, sería deseable implementar un ambiente de gráficos confiables en relación con un dispositivo de computación que reciba contenido de una fuente confiable, de manera que un usuario del dispositivo pueda estar seguro de que el contenido no puede ser copiado sin autorización y no puede ser violado o alterado por un tercero . Compendio de la Invención: En vista de lo anterior, la presenta invención proporciona métodos y sistemas para proteger criptográficamente contenido seguro en relación con un subsistema gráfico de un dispositivo de computación. Se implementan técnicas para encriptar (codificar crípticamente) el contenido de la memoria de video de manera que el software no autorizado no pueda tener acceso significativo a él, mediante lo cual se satisface la meta de confidencialidad. Más aún, se proporciona un mecanismo para la detección de intento de violación de manera que hay conciencia de cuando los datos han sido alterados de alguna manera mediante lo cual se satisface la meta de capacidad de protección. En distintas modalidades, la invención describe de qué manera encriptar contenidos de superficies traslapadas y/o memorias intermedias de comandos, y/o describe de qué manera permitir que la unidad de procesamiento de gráficos opere sobre contenido encriptado al mismo tiempo que evita su disponibilidad a partes, dispositivos o software no confiables . Los métodos de la invención variadamente incluyen técnicas para proteger criptográficamente contenido seguro en relación con un sistema de gráficos confiable que tiene memoria gráfica, o unidades de procesamiento de gráficos (GPU(s)) y un dispositivo de procesamiento criptográfico comunicativamente acoplado a las unidades de procesamiento de gráficos, que comprende solicitar, mediante una aplicación o dispositivo, que el sistema gráfico realice el procesamiento o la representación del contenido seguro, en donde la solicitud incluye transmitir por la aplicación o el dispositivo una clave de sesión al sistema de gráficos y transmitir el contenido seguro a la o las porciones encriptadas de la memoria de video, desencriptando el contenido de la o las porciones encriptadas de la memoria de video mediante la unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico, realizar el procesamiento o la representación del contenido desencriptado por las unidades de procesamiento de gráficos y sacar el contenido de las unidades de procesamiento de gráficos. Métodos similares de la invención variadamente incluyen solicitar, mediante una aplicación o dispositivo, que los sistemas gráficos realicen procesamiento o representación de contenido seguro, en donde la solicitud incluye transmitir por la aplicación o dispositivo una clave de sesión al sistema gráfico para la verificación mediante un dispositivo de procesamiento criptográfico y transmitir el contenido seguro a la o las porciones encriptadas de la memoria de video, desencriptar el contenido de la o las porciones encriptadas de la memoria de video mediante un mecanismo de desencriptación de una unidad de entrada de las unidades de procesamiento de gráficos, en donde el mecanismo de desencriptación está en comunicación con el dispositivo de procesamiento criptográfico, realizar el procesamiento o representación del contenido desencriptado por las unidades de procesamiento de gráficos, encriptar el contenido con un mecanismo de encriptación/desencriptación de una unidad de salida de las unidades de procesamiento de gráficos y sacar el contenido encriptado de las unidades de procesamiento de gráficos . Otras características y modalidades de la presente invención se describen más adelante. Briv» Descripción de loa Dibujos: Los métodos y sistemas para proteger criptográficamente contenido seguro de acuerdo con la presente invención se describen adicionalmente con referencia a los dibujos acompañantes en los cuales: La Figura 1A es un diagrama en bloques que representa un ambiente de red ejemplar que tiene una variedad de dispositivos de computación en los cuales la presente invención se puede implementar. La Figura IB es un diagrama en bloques que representa un dispositivo de computación no limitante ejemplar en el cual la presente invención se puede implementar; La Figura 2 es un diagrama de flujo que ilustra las partes no protegidas de un canal de gráficos, las cuales están protegidas de acuerdo con la invención; Las Figuras 3A y 3B son diagramas de bloque que ilustran aspectos ejemplares de una primera capa de seguridad de acuerdo con la invención; Las Figuras 4A hasta 4C son diagramas en bloque que ilustran aspectos ejemplares de una segunda capa de seguridad de acuerdo con la invención; Las Figuras 5A a 5B ilustran una configuración ejemplar de un formato AYUV/ARGB de acuerdo con la invención; Las Figuras 6A a 6B ilustran la configuración ejemplar de un formato YUY2 de acuerdo con la invención; Las Figuras 7A a 7B ilustran la configuración ejemplar de un formato plano empacado de acuerdo con la invención; Las Figuras 8A y 8B son diagramas en bloque que ilustran aspectos ejemplares de una tercera capa de seguridad de acuerdo con la invención; y Las Figuras 9A y 9B son diagramas en bloque que ilustran técnicas de encriptación ejemplares que se pueden aplicar a la salida de la unidad de procesamiento de datos de acuerdo con la invención. Descripción Detallada de la Invención : Vista General Esta presente invención proporciona sistemas y técnicas para aumentar un sistema de operación, u otro intermediario entre el contenido y una fuente confiable y un sistema gráfico para procesamiento, y/o representar el contenido con el fin de permitir aplicaciones de "gráficos confiables", tales como resistentes a la violación, diálogos confidenciales y la reproducción de contenido de premio que es resistente a la duplicación no autorizada. Una manera de ver la invención es que proporciona tres "niveles" de seguridad: (1) encriptación de los contenidos de superficie traslapada (2) permitiendo a la unidad de procesamiento de gráficos, u otro dispositivo de coprocesamiento, operar sobre el contenido encriptado sin ponerlo a disposición a partes desconfiables y (3) habilitar memorias intermedias de comando para que sean encriptadas. Como se menciona, en el contexto de la seguridad del sistema, la complejidad es una responsabilidad civil debido a que hace más difícil probar la seguridad de un sistema. Como resultado, la invención comienza considerando que el volumen de la funcionalidad de la unidad de procesamiento de gráficos y las unidades de visualización se debe considerar no confiables. La invención aplica entonces técnicas que aumentan las oportunidades de una implementación correcta con términos de confidenciabilidad y capacidad de protección limitando el alcance del hardware que puede ser implementado para satisfacer los criterios de seguridad. Alguna terminología de acuerdo con la invención se ha discutido anteriormente ya. Sin embargo, por razones de claridad, ahora se hará énfasis en algunos términos. El término confidencial se refiere a la prevención de un tercero no confiable, tal como un dispositivo o software de tercero, de tener acceso a la información de contenido confiable. Un ejemplo de esta confidencialidad incluye evitar que un tercero no confiable tenga acceso a la reproducción de contenido de video de premio encriptado en cualquier lugar a lo largo de la conducción de gráficos. El término protegido se refiere a la prevención de un tercero no confiable, tal como un dispositivo o software de tercero, de tener acceso a o cambiar la información del contenido confiable sin ser detectado. Otro ejemplo de esta capacidad de protección incluye evitar que un tercero no confiable tenga acceso a o altere la exhibición de un diálogo seguro que puede ocurrir entre una transacción de comercio electrónico. Con respecto a esto, la invención considera el traslape de ventanas, por ejemplo, una inferíase de usuario encima de corrientes de video de contenido de premio, así como una ventana que no es oscurecible, que podría presentarse durante diálogos de comercio electrónico. Ambientes de Red Ejemplares Una persona con experiencia ordinaria en la técnica puedo apreciar que una computadora u otro dispositivo de cliente o servidor se puede desplegar como parte de una red de computadoras, o en un ambiente de computación distribuido. Respecto a esto, la presente invención se refiere a cualquier sistema de computadora que tenga cualquier número de unidades de memoria o de almacenamiento, o cualquier número de aplicaciones y procesos que se presentan a través de cualquier número de unidades o volúmenes de almacenamiento, lo cual puede implicar el régimen de gráficos confiados de la invención. La presente invención puede aplicarse a un ambiente con computadoras de servidores y computadoras de clientes desplegadas en un ambiente de red o un ambiente de computación distribuida, que tiene almacenamiento de motor local. La presente invención también se puede aplicar a dispositivos de computación independientes, que tienen funcionalidad de lenguaje de programación, capacidades de interpretación de ejecución para generar, recibir y transmitir información en relación con servicios remotos o locales . Las instalaciones de computación distribuida comparten recursos de computación y servicios mediante el intercambio directo entre los dispositivos y sistemas de computación. Estos recursos y servicios incluyen el intercambio de información, almacenamiento en memoria instantánea (caché), y almacenamiento en disco de archivos. La computación distribuida aprovecha la conectividad de red, permitiendo que los clientes eleven su potencia colectiva para beneficiar a la empresa entera. Con respecto a esto, una variedad de dispositivos pueden tener aplicaciones, objetos o recursos que pueden interactuar para implicar conducciones de gráficos confiables de la presente invención.
La Figura 1A proporciona un diagrama esquemático de un ambiente en red ejemplar o de computación restringida. El ambiente de computación distribuida objetos de computación 10a, 10b, etcétera y objetos de computación a dispositivos son 110a, 110b, 110c, etcétera. Estos objetos pueden comprenden programas, métodos, almacén de datos, lógica programable, etcétera. Los objetos pueden comprender porciones del mismo o de diferentes dispositivos tales como PDA, televisiones, reproductoras MP3, televisiones, computadoras personales, etcétera. Cada objeto puede comunicarse con otro objeto por medio de una red de comunicaciones 14. Esta red puede en sí misma comprender otros objetos de computación y dispositivos de computación que proporcionan servicios al sistema de la Figura 1A. De acuerdo con un aspecto de la invención, cada objeto 10 o 110 pueden contener una aplicación que podría solicitar recursos de gráficos confiables. Se puede apreciar que un objeto, tal como el 110c, puede estar hospedado en otro dispositivo de computación 10 o 110. De este modo, aunque el ambiente físico representado puede mostrar los dispositivos conectados como computadoras, esta ilustración es únicamente ejemplar y el ambiente físico alternativamente se puede representar o describir comprendiendo varios dispositivos digitales tales como PDA, televisiones, reproducciones MP3, etcétera, objetos de software como interfases, objetos COM y similares. Hay una variedad de sistemas, componentes y configuraciones de red que soportan los ambientes de computación distribuidos. Por ejemplo, sistemas de computación pueden estar conectados entre sí mediante sistemas alámbricos o inalámbricos, mediante redes locales o redes distribuidas ampliamente. Actualmente, hay muchas redes que están acopladas a la Internet, que proporciona la infraestructura para la computación distribuida ampliamente y abarca muchas redes diferentes. En los ambientes de red internos, hay cuando menos cuatro medios de transporte de red dispares que cada uno puede soportar un protocolo único tal como línea de energía, datos (tanto inalámbricos como alámbricos) voz (por ejemplo, teléfono) y medio de entretenimiento. La mayoría de los dispositivos de control domésticos tales como los conmutadores de luz y los aparatos eléctricos pueden usar la línea de energía eléctrica para su conectividad . Los servicios de datos pueden entrar al hogar como banda ancha (por ejemplo, ya sea DSL o módem cable) y son accesibles dentro del hogar usando ya sea conectividad inalámbrica (por ejemplo HomeRF o 802.11b) o alámbrica (por ejemplo Home PNA, Cat 5, a una línea de energía) . El tráfico de voz puede entrar al hogar ya sea de manera alámbrica (por ejemplo, Cat 3) o inalámbrica (por ejemplo teléfonos celulares) y se puede distribuir dentro del hogar usando cableado Cat 3. Los medios de entretenimiento pueden entrar al hogar ya sea a través de satélite o cable y típicamente se distribuye en el hogar usando cable coaxial. IEEE 1394 y DVI también están surgiendo como interconexiones digitales para racimos de dispositivos de los medios. Todos estos ambientes de red y otros que pueden surgir conforme las normas de protocolo s puedan interconectarse para formar una intranet que puede conectarse al mundo exterior por medio de la Internet. En resumen, una variedad de fuentes dispares existen para el almacenamiento y la transmisión de datos, y en consecuencia, moviéndose hacia afuera, los dispositivos de computación requerirán maneras de proteger el contenido en todas las porciones de la conducción del procesamiento de datos. La Internet comúnmente se refiere a una colección de redes y portales que utilizan el conjunto de protocolos TCP/IP, que son muy conocidos en la técnica de las redes de computación. TCP/IP es un acrónimo de "Protocolo de Control de Transporte/Programa de Interfase". La Internet se puede describir como un sistema de redes de computadoras remotas distribuidas geográficamente interconectadas por protocolos de red que ejecutan las computadoras que permiten que los usuarios interactúen y compartan información sobre las redes. Debido a este compartimiento de información ampliamente difundido, las redes remotas tales como la Internet han evolucionado más generalmente a un sistema abierto para el cual los desarrolladores pueden diseñar aplicaciones de software para realizar operaciones especializadas o servicios, esencialmente sin restricción. De este modo, la infraestructura de red permite un anfitrión de topologías de red tal como estructuras cliente/servidor, igual a igual, o arquitecturas híbridas. El "cliente" es un miembro de una clase o grupo que usa los servicios de otra clase de grupo con el cual va a estar relacionado. De este modo, en computación, un cliente es un proceso, es decir, burdamente un conjunto de instrucciones o tareas, que solicita un servicio proporcionado por otro programa. El proceso del cliente utiliza el servicio requerido sin tener que "conocer" ningún detalle de trabajo acerca del otro programa o del mismo servicio. En una arquitectura de cliente/servidor, particularmente un sistema en red, un cliente usualmente es una computadora que tiene acceso a recursos de red compartida proporcionados por otra computadora, por ejemplo, un servidor. En el ejemplo de la Figura 1A, las computadoras 110a, 110b, etcétera se pueden pensar como clientes y la computadora 10a, 10b, etcétera se pueden pensar como el servidor en donde el servidor 10a, 10b, etcétera mantienen los datos que son replicados entonces en las computadoras de los clientes 110a, 110b, etcétera.
Un servidor típicamente es un sistema de computadoras remotas accesibles o de una red remota tal como el Internet. El proceso del cliente puede ser activo en un primer sistema de computadoras, y el proceso del servidor puede ser activo en un segundo sistema de computadoras, comunicándose entre sí sobre un medio de comunicaciones, proporcionando de este modo funcionalidad distribuida y permitiendo que múltiples clientes aprovechen las capacidades de reunir información del servidor. El cliente y el servidor se comunican entre sí utilizando la funcionalidad proporcionada por una capa de protocolo. Por ejemplo, el protocolo de Hipertexto- Transferencia (HTTP) es un protocolo que se usa en conjunción con el World Wide Web (WWW) . Típicamente, una dirección de red de computadoras tal como un localizador universal de recursos (URL) o una dirección de protocolo de Internet (IP) se usa para identificar las computadoras de servidor o cliente entre sí. La dirección de red se conoce como dirección de localizador universal de recursos. Por ejemplo, la comunicación se puede proporcionar sobre un medio de comunicaciones. En particular, el cliente y servidor se pueden acoplar entre sí vía conexiones TCP/IP para la comunicación de alta capacidad. De este modo, la Figura 1A ilustra un ambiente ejemplar en red o distribuido, con un servidor en comunicación con computadoras de clientes vía una red/bus, en la cual la presente invención se puede emplear. En más detalle, varios servidores 10a, 10b, etcétera, se interconectan vía una red/bus de comunicaciones 14, la cual puede ser una LAN, WAN, intranet, la Internet, etcétera, con en varios clientes o dispositivos de computación remotas 110a, 110b, 110c, HOd, llOe, etcétera, tal como una computadora portátil, una computadora de mano, cliente delgado, aparato eléctrico en red, u otros dispositivos tales como una grabadora de video cásete, TV, horno, luz, calentador y similar de acuerdo con la presente invención. De este modo se contempla que la presente invención puede aplicarse a cualquier dispositivo de computación en conexión con la cual es deseable procesar, almacenar o representar contenido seguro de una fuente confiada. En un ambiente de red en el cual la red/bus de comunicaciones 14 es la Internet, por ejemplo, los servidor 10 pueden ser servidores Web con los cuales los clientes 110a, 110b, 110c, HOd, llOe, etcétera se comunican vía cualquiera de varios protocolos conocidos tales como HTTP. Los servidores 10 también pueden servir como clientes 110, como puede ser característico de un ambiente de computación distribuida. Las comunicaciones pueden ser alámbricas o inalámbricas, cuando sea apropiado. Los dispositivos de clientes 110 pueden o no comunicarse vía la red/bus de comunicaciones 14, y pueden tener comunicaciones independientes asociadas con las mismas. Por ejemplo, en el caso de una televisión o grabadora de video cásete puede o no haber un aspecto en red para el control del mismo. Cada computadora de cliente 110 y computadora de servidor 10 puede estar equipada con distintos módulos u objetos de programas de aplicación 135 y con conexiones o acceso a varios tipos de elementos u objetos de almacenamiento, a través de los cuales se pueden almacenar los archivos o a cuyas porciones o archivos se pueden descargar o migrar. De este modo, la presente invención se puede utilizar en un ambiente de red de computadoras que tiene computadoras de clientes 110a, 110b, etcétera que puede tener acceso e interactuar con una red/bus o computadoras 14 y computadoras de servidor 10a, 10b, etcétera que pueden interactuar con computadoras de clientes 110a, 110b, etcétera y otros dispositivos 111 y bases de datos 20. Ejemplo de Dispositivo de Computación La Figura IB y la siguiente discusión pretenden proporcionar una descripción breve general de un ambiente de computación conveniente en el cual la invención se puede implementar. Deberá entenderse, sin embargo, que dispositivos de computación de mano, portátiles y otros y objetos de computación de todas clases se compensan para su uso en relación con la presente invención. Aunque se describa una computadora de propósitos generales más adelante, esto no es más que un ejemplo, y la presente invención se puede implementar con un cliente delgado que tiene interoperabilidad de interacción de red/bus. De este modo, la presente invención se puede implementar en un ambiente de servicios hospedados en red en los cuales muy pocos o mínimos recursos de clientes se duplican, por ejemplo, un ambiente de red en el cual el dispositivo de cliente sirve únicamente como una interfase para la red/bus, tal como un objeto colocado en un aparato eléctrico. En esencia, cualquier lugar en donde los datos se puedan almacenar o en donde los cuales se puedan recuperar o reproducir es un ambiente deseable, o conveniente, para la operación de la protección criptográficamente o el contenido seguro de la invención. Aunque no se requiere, la invención se puede implementar vía un sistema de operación, interfase de programación de aplicación (API) , y/o incluir dentro del software de aplicación que se conecta con contenido confiable. En varias modalidades, la invención también se aplica a hardware que conforma técnicas de conexión, y de encriptación descritas más adelante. El software se puede describir en el contexto general de instrucciones ejecutables por computadora, tales como módulos de programas, que son ejecutados por una o más computadoras, tales como estaciones de trabajo de clientes, servidores u otros dispositivos. Generalmente, los módulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos y similares que realizan tareas particulares o implementan tipos de datos abstractos particulares. Típicamente, la funcionalidad de los módulos del programa se puede combinar o distribuir como se desee en distintas modalidades. Más aún, los expertos en la técnica apreciarán que la invención se puede practicar con otras configuraciones de sistemas de computadoras. Otros sistemas de computadoras bien conocidos, ambientes y/o configuraciones que pueden ser convenientes para su uso con la invención incluyen, pero no se limitan a, computadoras personales (PCs) , máquinas, cajeros automáticos, computadoras servidoras, dispositivos de mano o portátiles, sistemas multiprocesadores, sistemas basados en microprocesadores, aparatos electrónicos del consumidor programables , computadoras personales en red, y aparatos eléctricos, luces, elementos de control ambiental, minicomputadoras , computadoras principales y similares. La invención también se puede practicar en ambientes de computación distribuida en donde las tareas son realizadas por dispositivos de procesamiento remotos que se enlazan a través de una red/bus de comunicaciones u otros medios de transmisión de datos. En un ambiente de computación distribuida, los módulos de programación se pueden localizar tanto en medios de almacenamiento de computadoras locales como remotos incluyendo dispositivo de almacenamiento de memoria, y nudos de clientes a su vez se pueden comportar como nudos de servidor. La Figura IB de este modo ilustra un ejemplo de un ambiente de sistema de computación conveniente 100 en el cual la invención se puede implementar, aunque como se hace claro anteriormente, el ambiente del sistema de computación 100 sólo es un ejemplo de un ambiente de computación conveniente que no pretende sugerir ninguna limitación sobre el alcance del uso o funcionalidad de la invención. Se interpretará el ambiente de computación 100 por tener alguna dependencia de requerimiento relacionado con cualquiera o con la combinación de componentes ilustrado en el ambiente de operación ejemplar 100. Con referencia a la Figura IB, un sistema ejemplar para implementar la invención incluye un dispositivo de computación de propósitos generales en forma de una computadora 110. Los componentes de la computadora 110 pueden incluir, pero no se limitan a, una unidad de procesamiento 120, una memoria de sistema 130 y un bus de sistema 121 que acopla varios componentes del sistema incluyendo la memoria del sistema a la unidad de procesamiento 120. El bus del sistema 121 puede ser cualquiera de varios tipos de estructuras de bus que incluyen un bus de memoria o controlador de memoria, un bus periférico, y un bus local que usa cualquiera de una variedad de arquitecturas de bus. A manera de ejemplo, y no limitación, estas arquitecturas incluyen el bus de Arquitectura de Norma Industrial (ISA), bus de Arquitectura de Micro Canal (MSA) , bus ISA mejorado (EISA), bus local de la Asociación de Normas Electrónicas de Video (VESA) , y bus de Interconexión de Componentes de Video (PCI) (también conocidos como bus Mezanine) . La computadora 110 típicamente incluye una variedad de medios legibles por computadora. Los medios legibles por computadora pueden ser cualquier medio disponible que tenga acceso por computadora 110 e incluye tanto medios volátiles como no volátiles, medio s removibles como no removibles. A manera de ejemplo, y no limitación, un medio legible por computadora puede comprender medios de almacenamiento en computadora y medios de comunicación. Los medios de almacenamiento en computadora incluyen tanto medios volátiles como no volátiles, removibles y no removibles implementados en cualquier método o tecnología para almacenamiento de información tal como instrucciones legibles por computadora, estructuras de datos, módulos de programas u otros datos. Los medios de almacenamiento de computadora incluyen, pero no se limitan a, RAM, ROM, EEPROM, memoria instantánea u otra tecnología de memoria, CDROM, discos versátiles digitales (DVD) u otro almacenamiento de disco óptico, casetes magnéticos, cinta magnética, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que se pueda usar para almacenar la información deseada y al cual se pueda tener acceso por la computadora 110. Los medios de comunicación típicamente abarcan instrucciones legibles por computadora, estructuras de datos, módulos de programas u otros datos en una señal de datos modulada tal como una onda portadora u otro mecanismo de transporte e incluye cualquier medio de entrega de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características fijas o cambiadas de manera que codifican información en la seña. A manera de ejemplo, y no limitación, los medios de comunicación incluyen medios en cable tales como red alámbrica o conexión en cable directo, y medios inalámbricos tal como medios acústicos, de radiofrecuencia, infrarrojos y otros medios inalámbricos. Combinaciones de cualquiera de los anteriores deberá también incluirse dentro del alcance de los medios legibles por computadora. La memoria del sistema 130 incluye medios de almacenamiento en computadora en forma de memoria volátil y/o no volátil tal como memoria de sólo lectura (ROM) 131 y memoria de acceso directo (RAM) 132. Un sistema básico de entrada/salida 133 (BIOS), que contiene las rutinas básicas que ayudan a transferir información entre elementos dentro de la computadora 110, tal como durante el arranque, típicamente se almacenan en la memoria de sólo lectura 131. La memoria de acceso directo 132 típicamente contiene datos y/o módulos de programa que son inmediatamente accesibles a y/o están actualmente operados por la cuenta de procesamiento 120. A manera de ejemplo, y no limitante, la Figura IB ilustra el sistema operativo 134, los programas de aplicación 135, otros módulos de programas 136, y los datos del programa 137. La computadora 110 también puede incluir otros medios de almacenamiento en computadora removibles/no removibles, volátiles/no volátiles. A manera de ejemplo solamente, la Figura IB ilustra una unidad de disco duro 141 que lee desde o escribe hacía medios magnéticos no removibles, no volátiles, una unidad de disco magnético 151 que lee desde y escribe hacia un disco magnético removible, no volátil 152, y una unidad de disco óptico 155 que lee desde o escribe hacia un disco óptico removible, no volátil 156, tal como un CD ROM u otro medio óptico. Otro medio de almacenamiento en computadora removible/no removible, volátil/no volátil, que se puede usar en el ambiente de operación ejemplar incluye, pero no se limita a, casetes de cinta magnética, tarjetas de memoria instantánea, discos versátiles digitales, cinta de video digital, RAM en estado sólido, ROM de estado sólido, y similares. La unidad de disco duro 141 típicamente se conecta al bus del sistema 121 a través de una interfase de memoria no removible tal como la interfase 140, y la unidad de disco magnético 151 y la unidad de disco óptico 155 típicamente se conectan al bus del sistema 121 mediante una interfase de memoria removible, tal como la interfase 150. Las unidades y sus medios de almacenamiento en computadora asociados discutidos anteriormente e ilustrados en la Figura IB proporcionan almacenamiento de instrucciones legibles por computadora, estructuras de datos, módulos de programa y otros datos para la computadora 110. En la Figura IB, por ejemplo, la unidad de disco duro 151 se ilustra como el sistema operativo de almacenamiento 144, los programas de aplicación 145, otros módulos de programas 146, y datos de programas 147. Nótese que estos componentes pueden ser iguales o diferentes del sistema operativo 134, los programas de aplicación 135, otros módulos de programas 136, y datos de programas 137. El sistema operativo 144, los programas de aplicación 145, otros módulos de programas 146, y datos de programas 147 se les da diferentes números aquí para ilustrar que, al mínimo, hay diferentes copias. Un usuario puede introducir comandos e información en la computadora 110 a través de los dispositivos de entrada tales como un teclado 162 y el dispositivo señalador 161, comúnmente conocido como un ratón, bola rastrera o cojinete táctil. Otros dispositivos de entrada (no mostrados) pueden incluir un micrófono, joystick, cojincillo de juego, platillo satélite, escáner, o similares. Estos y otros dispositivos de entrada frecuentemente se conectan a la unidad de procesamiento 120 a través de una interfase de entrada de usuarios 160 que se acopla al bus del sistema 121, pero que se puede conectar mediante otra interfase y estructura de bus, tal como un puerto paralelo, un puerto de juego o un bus serial universal (USB) . Una interfase gráfica 182, tal como Northbridge, también se puede conectar al bus del sistema 121. El northbridge es un juego de chips que se comunican con la unidad de procesamiento central, o la unidad de procesamiento anfitrión 120, y asume la responsabilidad de las comunicaciones aceleradas del puerto gráfico (AGP) . Una o más unidades de procesamiento de gráficos (GPU) 184 se puede comunicar con la interfase gráfica 182. Respecto a esto, las unidades de procesamiento de gráficos 184 generalmente incluyen un almacén de memoria en chip, tal como un almacenamiento de registro y las unidades de procesamiento gráfico 184 se comunican con una memoria de video 186. Las unidades de procesamiento de gráfico 184, sin embargo, no son más que un ejemplo de un coprocesador y de este modo se puede incluir una variedad de dispositivos de coprocesamiento en la computadora 110. Un monitor 191 u otro tipo de dispositivo de exhibición también se conecta al bus del sistema 121 via una interfase, tal como una interfase de video 190, que puede a su vez comunicarse con la memoria de video 186. En general, es esta porción de un dispositivo de computación la que es vulnerable, y de conformidad con la presente invención se proporciona protección y conflabilidad de los datos que están siendo procesados o representados incidentes al mismo. Además del monitor 191, las computadoras también pueden incluir otros dispositivos y salida periférica tales como altavoces 197 y la impresora 196, que se puede conectar a través de una interfase periférica de salida 195. La computadora 110 puede operar en un ambiente en red o distribuido usando conexiones lógicas a una o más computadoras remotas, tales como una computadora remota 180. La computadora remota 180 puede ser una computadora personal, un servidor, un rociador, una red de computadoras personales, un dispositivo de compañero o un nodo de red común, y típicamente incluye muchos o todos los elementos descritos anteriormente en relación con la computadora 110, aunque sólo se haya usado un dispositivo de almacenamiento de memoria 181 en la Figura IB. Las conexiones lógicas representadas en la Figura IB incluye una red de área local (LAN) 171 y una red de área amplia (WAN) 173, pero también pueden incluir otras redes/buses. Estos ambientes de red son lugar común en casas, oficinas, redes de computadoras a lo ancho de una empresa, intranet y en la Internet.
Cuando se usa en un ambiente de red de área local, la computadora 110 se conecta a la red de área local 171 a través de la interfase de red o adaptador 170. Cuando se usa en un ambiente de red de área amplia, la computadora 110 típicamente incluye un módem 172 u otro medio para establecer comunicaciones sobre la red de área amplia 173, tal como la Internet. El módem 172 el cual puede ser interno o externo, puede conectar al bus del sistema 121 vía la interfase de entrada de usuario 160, u otro mecanismo apropiado. En un ambiente en red, los módulos del programa se representan en relación con la computadora 110, o porciones de la misma, se pueden almacenar en el dispositivo de almacenamiento de memoria remoto. A manera de ejemplo, y sin limitación, la Figura IB ilustra programas de aplicación remotos 185 como residentes en el dispositivo de memoria 181. Se apreciará que las conexiones de red mostradas son ejemplares y que otros medios de establecer un enlace de comunicaciones entre las computadoras se puede usar. Ejemplos de Estructuras o Arquitecturas de Computación Distribuida Se han desarrollado y se están desarrollando distintas estructuras de computación distribuida en vista de la convergencia de la computación personal y la Internet. Los usuarios individuales y usuarios de negocios igualmente están provistos con una interfase interoperable sin costura y habilitada por web para aplicaciones y dispositivos de computación, haciendo que las actividades de computación cada vez se orienten más a explorador web o a la red. Por ejemplo, la plataforma de .Net de MICROSOFT® incluye servidores, servicios de acumular bloques, tales como el almacenamiento de datos basado en web y el software de dispositivos descargables . Generalmente hablando, la plataforma .Net proporciona. (1) la capacidad de hacer el rango entero de dispositivos de computación que trabaje junto para hacer que la información del usuario automáticamente esté actualizada y sincronizada en todos ellos, (2) capacidad interactiva aumentada para los sitios web, habilitado por el mayor uso de XML en vez de HTML, (3) servicios en linea que realizan acceso personalizado y entrega de productos y servicios al usuario a partir de un punto central de arranque para el manejo de distintas aplicaciones, tales como el correo electrónico, por ejemplo, o software, tal como Office .Net, (4) almacenamiento de datos se han realizado, el cual aumentará la eficiencia y facilidad de acceso a la información, asi como la sincronización de información entre usuarios y dispositivos, (5) la capacidad de integrar distintos medios de comunicaciones, tales como correo electrónico, faxes, y teléfonos, (6) para los desarrolladores , la capacidad de crear módulos reutilizables , mediante lo cual se aumenta la productividad y se reduce el número de errores de programación y (7) muchas otras características de integración de plataforma cruzada también. Aunque las modalidades ejemplares en la presente generalmente se describen en relación con métodos implementados por software que recibe en un dispositivo de computación, una o más porciones de la invención también se pueden implementar vía un sistema operativo, interfase de programación de aplicaciones (API) o un objeto de "intermediario" entre un coprocesador y el contenido inviolado, tal como los servicios de contenido confiado se pueden realizar mediante, soportar en o tener acceso vía todos los lenguajes y servicios de .NET, y en otras estructuras de computación distribuida también. Más aún, se puede apreciar que una o más de las técnicas descritas de acuerdo con la invención pueden implicar cambios en el hardware, tales como cambios en la unidad de procesamiento de gráficos para conformarse a la técnica. Protección Criptográfica de Contenido Seguro La presente invención de este modo proporciona estos métodos y sistemas para aumentar un sistema operativo, o cualquier plataforma, para permitir aplicaciones de "gráficos confiados", tales como resistentes a la violación, diálogos confidenciales y que habilitan la reproducción de contenido de una manera que es resistente a la publicación no autorizada. El problema resuelto por la presente invención se ilustra por la Figura 2 en la cual el contenido de premio encriptado 200 está siendo mostrado pasado a o generado por una aplicación de software confiado TS. Incidente al uso de software confiado TS, el contenido 200 puede implicar funcionalidad de la unidad de procesamiento de gráficos 265 antes de la representación (u otro uso) del contenido 200 via un dispositivo de representación 295. Este contenido 200 se pasará del sistema o memoria anfitriona 230 a la memoria de video 260 para su procesamiento por la unidad de procesamiento de gráficos 265. La linea punteada en la Figura 2 ilustra en dónde está el problema de seguridad. En relación con el fondo, los sistemas que no son del presente día apropiadamente asegura la entrega protegida y confidencial del contenido a través de los elementos rodeados por la linea punteada. Desde el punto de vista del software confiado TS, el primer problema es si los componentes adentro de la linea punteada o no se pueden confiar con el contenido antes de manejar el contenido a la unidad de manejar el contenido a la unidad de procesamiento de gráficos. Suponiendo que software confiado TS puede autenticar los componentes adentro de la línea punteada adecuadamente, el segundo problema desde el punto de vista de software confiado TS es que el software confiado TS debe ser razonablemente seguro de manera que, en cuanto el dato se maneja hacia la línea punteada, los datos no serán alterados. La presente invención enfrenta ambos tipos de problemas en varias modalidades descritas más adelante. De varias maneras, los métodos y sistemas se implementan mediante (1) encriptar el contenido de las superficies traslapadas (2) permitiendo que la unidad de procesamiento de gráficos opere sobre el contenido encriptado sin ponerlo a disposición en aplicaciones no confiadas o partes y (3) encriptar el contenido de memorias intermedias de comando. Un primer aspecto del procesamiento de gráficos confiado y del problema de representación enfrentado por la invención se relaciona con la producción de un procesador criptográfico (algunas veces denominado en la presente como "cripto") y un manejo de claves indexadas. La solicitud de patente de los Estados Unidos de Norteamérica pendiente conjunta comúnmente asignada número AA/BBB,CCC (la solicitud CCC) , presentada el día DD, mes, año, titulada "Métodos y Sistemas para la Autenticación de Componentes en un Sistema Gráfico" muestra técnicas para autenticar componentes en relación con un sistema de gráficos, como se describe más adelante. Sin embargo, se entenderá que la invención presume que la autenticación se ha presentado y de este modo cualquier técnica de autenticación se puede aprovechar para proporcionar una plataforma de gráficos confiados como se describe en las distintas modalidades de la invención más adelante .
Ejemplo de Autenticación Respecto a esto, tarjetas de gráficos seguros deben ser capaces de autenticarse ellas mismas como tales. En particular, el software confiado debe ser capaz de distinguir una tarjeta de gráficos segura entre una tarjeta de gráficos tradicional o un dispositivo periférico, tal como un engaño. Además, el software confiado debe ser capaz de revelar claves criptográficas a la tarjeta de gráficos y ser capaz de verificar que el receptor de la clave sin duda sea una tarjeta de gráficos segura. Con este fin, las tarjetas de gráficos seguras están equipadas con un cripto-procesador de acuerdo con la invención, el cual realiza las tareas criptográficas de autenticación y de transporte de claves. Con respecto al hardware, se proporcionan cripto-procesadores de acuerdo con la invención, los cuales se individualizan y certifican durante la fabricación. Cada cripto-procesador contiene una clave de descriptación única privada K Mientras que muchos algoritmos diferentes de encriptación y desencriptación se contemplan de acuerdo con la invención y son conocidos para los expertos en la técnica criptográfica, para el contexto, el algoritmo descrito aqui es RSA la longitud de la clave es de 1024 bits, tanto elecciones de diseño no limitantes, que pueden ser personalizadas de acuerdo con negociaciones muy conocidas dependiendo de la aplicación y del o los niveles de seguridad deseados . Respecto a esto, el cripto-procesador está permanentemente unido a la tarjeta de gráficos, ya sea añadiéndole a un chip existente o añadiéndolo como un chip separado a la tarjeta. El cripto-procesador implementa un algoritmo de clave cripto pública, como se describe en mayor detalle más adelante y oculta una clave privada única. Respecto a esto, un cripto-procesador asi puede realizar una desencriptación de clave pública rápidamente con la tecnología de silicona actual. Sin embargo, el cripto-procesador también puede incluir un acelerador de clave pública y puede implementar un cifrador simétrico (AES) y alguna lógica de control. En una modalidad ejemplar no limitante, el cripto-procesador incluye los siguientes registros volátiles: (1) un registro de 256 bits S para la clave de la sesión. La vida útil de esta clave típicamente es el tiempo de ejecución del software confiado y (2) un arreglo de una pluralidad de claves indexadas . Cada clave puede tener 128 bits de largo, aunque otras elecciones pueden ser convenientes. Cada clave se asocia con una ventana particular y es usada por la tarjeta de gráficos para desencriptar su contenido. La vida útil de cada clave está gobernada por instrucciones a partir del software confiado. Como se mencionó, el cripto-procesador de la invención está permanentemente unido a la tarjeta de gráficos. De este modo, se requiere un medio para conectarse seguramente con el cripto-procesador con el fin de hacer uso de su funcionalidad. Con respecto a la conexión con el cripto-procesador, la presente invención considera cuando menos dos técnicas: (a) una interfase externa al software confiado TS y (b) una interfase con la unidad de procesamiento de gráficos 265. La interfase anterior cuando menos en sus aspectos criptográficos - se debe estandarizar. La segunda interfase puede ser especifica de la implementación, pero deberá adherirse a los lineamentos globales presentados más adelante. Con respecto a la implementación de la interfase externa, la interfase externa utiliza un protocolo de encriptación de clase privada (PK) para la autenticación y el transporte de clave. Según este protocolo, el software confiado TS encripta una clave de sesión con la clave pública del cripto-procesador. El cripto-procesador recibe el criptolobo resultante y lo desencripta con su clave privada, obteniendo de este modo la clave de la sesión. Ahora, el software confiado y el cripto-procesador comparten un secreto. El software confiado puede usar esta clave de sesión para enviar instrucciones al cripto-procesador. En una modalidad no limitante, la interfase externa es expuesta a través de las siguientes funciones por el cripto-procesador : La función SetSessionKey ( ) realiza el paso de autenticación inicial y el transporte de clave. Ésta es la única función que accesa a la funcionalidad de la clave pública del cripto-procesador. De este modo, en una modalidad, la presente invención contempla llamar a esta función una vez por cada arranque. El siguiente pseudocódigo ejemplar representa una implementación no limitante de la SetSessionKey ( ) : SetSessionKey ( cryptoblob ) { PKDecrypt ( privateKey, cryptoblob, sessionKey ) ; } Después de la completación exitosa de la operación, el registro sessionKey contiene una clave tal como una clave de 256 bits, a partir del criptolobo. El algoritmo de la clave pública puede ser, por ejemplo, RSA de 1024 bits. En cuanto se ha establecido una sessionKey K simétrica entre el software confiado y el cripto-procesador, esta clave se puede usar para asegurar toda la comunicación adicional hacia y desde el cripto-procesador. El software confiado y el cripto-procesador se pueden comunicar por medio de simples métodos Get y Set, cuyos parámetros están criptográficamente protegidos para su confidencialidad e integridad. En particular, el bloque de parámetros B de cada llamada se puede procesar de la siguiente manera no limitante : AES ( M I HMAC ( M, Kl ) , 2 ) , en donde: Kl es la primera mitad de K (bits 0 a 127) K2 es la segunda mitad de K (bits 128 a 255) AES(M,K) es el resultado de encriptar el mensaje M bajo la clave K con AES en modo CBC HMAC (M, K) es el resultado de calcular un HMAC sobre una función de hash sobre mensaje M con la clave K A I B es el resultado de concatenar A y B. Este formato se puede usar para los parámetros de entrada y para los parámetros de salida de las siguientes funciones : Set ( [IN] BOOL needsAck, [IN] BITS128 nonce, [IN] ENUM propertylD, [IN] BYTESEQUENCE propertyParamters , [OUT] BYTESEQUENCE ack ) en donde : needsAck es un valor booleano, que permite que el software confiado indique, si se requiere un reconocimiento. nonce es un valor de 128 bits elegido por el software confiado. El nonce se puede usar en el reconocimiento, y se solicitó un reconocimiento. propertylD identifica la propiedad, la cual se está estableciendo. Una lista ejemplar de propiedades soportadas se da más adelante en la Tabla 1. propertyParamters es una secuencia de parámetros, que es especifica a cada propertyID. Finalmente, Ack es el reconocimiento de la operación. El cripto-procesador produce ack sólo si se estableció needsAck. Ack está compuesto del nonce seguido por un mensaje, que es especifico a cada propertyID.
Tabla 1 - Lista de Property ID para la función Get Con respecto a la property ID de clave indexada, este método escribe una nueva clave y una etiqueta de propósito en el registro de clave identificado por el índice. Con respecto a la identificación de propiedad de cerradura de salida, este método fija la bandera de cerradura de salida. Cuando se fija esta bandera, la geometría de la pantalla (anchura, altura, profundidad de color, régimen de aclaramíento) así como la salida de la tarjeta de gráficos (VGA, DVI) no se puede cambiar. En particular, la tarjeta de gráficos no ejecutará instrucciones para cambiar estas referencias mientras la bandera de cerradura de salida está puesta. Con respecto a la L2KeyMgmt property ID, este método fija la frecuencia de renovación de clave bajo la segunda caja de protección descrita de acuerdo con la invención, es decir, encriptando entradas y salidas descritas en más detalle más adelante. De manera similar, la función Get se propone como sigue : Get( [IN] BITS128 nonce, [IN] ENUM propertylD, [IN] BYTESEQUENCE propertyParamters, [OUT] BYTESEQUENCE response ) en donde: nonce es un valor de 128 bits elegido por el software confiado para ser usado en la respuesta. propertylD identifica la propiedad, que está siendo fijada. La lista de propiedades soportadas se da más adelante en la Tabla 2. propertyParamters es una secuencia de parámetros, la cual se específica a cada propertylD. La respuesta contiene el resultado de la operación. La respuesta está compuesta de nonce seguido por un mensaje, que es específico a cada propertylD.
Property ID Parámetros Respuesta Puertos de salida índice clave VGA, AGP, etc. Código de índice clave Número X-bit autenticación Versión DX-SEC Ninguno Número de versión Cuenta superficial Ninguno Número de superficies segura seguras soportadas Cuenta superficial Ninguno Número de superficies de de traslape traslapes soportadas Tipo primario Ninguno 1 Geometría Ninguno Anchura, altura, tasa de aclaramiento, profundidad de color de la superficie primaria Tabla 2 - Lista da Property ID para la función Sat Con respecto a los puertos de salida, este método regresa el establecimiento de la salida de la tarjeta de gráficos, por ejemplo, VGA, DVI, etcétera. Con respecto al código de autenticación, este método regresa el hash del contenido de una ventana como la primera capa de protección descrita de acuerdo con la invención, es decir, encriptación de traslape. Con respecto a la versión DX-SEC, este método regresa a la versión de DX-SEC soportada por la tarjeta de gráficos . Con respecto a la cuenta de superficie Segura, este método regresa el número de superficies seguras soportadas por la tarjeta de gráficos. Con respecto a la cuenta de superficie de Traslape, este método regresa el número de superficies seguras de traslape soportadas por la tarjeta de gráficos. Con respecto al tipo Primario, este método regresa 1, y proporciona flexibilidad futura. Con respecto a la Geometría, este método regresa la anchura, altura, tasa de aclaramiento y la profundidad de color de la superficie primaria. La función Set puede todavía incluir métodos que fijan la localización o el tamaño de un traslape de región protegida, o la localización y el tamaño de una fracción de una superficie principal (primaria) que deberá ser desencriptada . De este modo, la anterior función Set SessionKey, Get y Set relacionan a modalidades no limitantes de la inferíase externa. El término "inferíase interna" se refiere a la inferíase entre el cripto-procesador y el resto de la tarjeta de gráficos. Los detalles de esta clase de interfase de acuerdo con la invención están hasta la implementación de cada tarjeta de gráficos individual, sujetos a las siguientes restricciones: (1) el cripto-procesador deberá ser permanentemente asegurado a la tarjeta de gráficos y (2) la conexión entre el cripto-procesador y el resto de la tarjeta de gráficos no se deberá exponer. Respecto a esto, la remoción del cripto-procesador de la tarjeta de gráficos no deberá ser trivial. El cripto-procesador se implementa como un chip separado, esto es principalmente una restricción de la interfase mecánica, lo cual une el cripto-procesador y la tarjeta de gráficos. Típicamente, el cripto-procesador deberá ser soldado sobre la tarjeta de gráficos. Alternativamente, el cripto-procesador deberá residir en el mismo chip de la unidad de procesamiento de gráficos principal. El uso de interfases mecánicas estandarizadas, se permiten que el cripto-procesador sea removido, por ejemplo, lectores o tarjetas inteligentes, montes de castillo, y similares, no es aceptable. Más aún, la conexión física entre el cripto-procesador y el resto de la tarjeta de gráficos no debe ser accesible y no se debe exponer a través de interfases estándares. Por ejemplo, un conector USB en este bus no es aceptable de acuerdo con la invención. Con respecto a las reglas para el manejo de claves, cada clave Indice sólo se puede usar de acuerdo con su parámetro de propósitos asociado. En una modalidad, los valores del parámetro de propósitos tienen los siguientes significados : L1STREAM: esta clave sólo se puede usar con la cifra de corriente DX-SEC descrita más adelante en relación con la primera capa de seguridad proporcionada por la invención, es decir, la encriptación de traslape. L2BL0CK: esta clave sólo se puede usar con el cifrador de bloques en el modo ECB de la segunda capa de seguridad proporcionada por la invención, es decir, encriptar entrada y salida, como se describe más adelante. La cifra de bloques en el modo ECB se usa para desencriptar bloques de textura, los cuales fueron escritos por el software confiado. Respecto a esto, no se deben mantener copias de las claves, cuando el índice ha sido llenado con un nuevo valor. Primera Capa de Seguridad - Traslapes Encriptados Ya que la memoria de video se puede mapear y leer por software no confiado que se ejecuta en la unidad de procesamiento central, la memoria de video no puede contener información en forma de texto llano. La memoria de video sujeta a este requisito incluye la memoria de video usada para refrescar el despliegue visual. Una implementación inicial de un sistema que satisface este criterio de acuerdo con la invención encripta el contenido de una superficie de traslape. El traslape de este modo será desencriptado sobre la marcha mediante el hardware DAC, o justo antes de alcanzar el hardware DAC, conforme la imagen es enviada hacia el visualizador . La Figura 3A ilustra una implementación ejemplar de esta técnica. El contenido de premio encriptado 200, a partir de donde se ha encontrado o generado el incidente para la aplicación del software confiado 210, es recibido por la aplicación confiada 210. Se origina un intercambio de autenticación con el cripto-procesador 220, tal como el procedimiento o los procedimientos de intercambio de autenticación descritos anteriormente en las modalidades ejemplares o mediante cualquier otra técnica para la entrega de clave segura, ya sea criptográfica o vía una senda protegida por otros medios. El contenido 200 pasa de la memoria del sistema 230 a una superficie traslapada encriptada 240, la cual traslapa la superficie primaria 270 de la memoria de video 260. En conjunción con el cripto-procesador 220, una porción de desencriptación 250 de la unidad de procesamiento de gráficos 265 desencripta la capa de encriptación proporcionada por el traslape encriptado 240 y pasa el contenido a la selección de pixeles 280 para producir hacia la interfase de video digital (DVI)/ convertidor de digital en analógico (DAC) 290 para salir a un dispositivo de representación, tal como un monitor. Sin embargo, el sistema representado en la Figura 3A no satisface todos los criterios descritos anteriormente, ya que sólo hay un traslape. Para satisfacer la barra mínima de funcionalidad necesaria para un ambiente confiado, tal como las ventanas confiadas, la invención habilita dos traslapes en una modalidad alternativa. El primer traslape "confidencial" básicamente es un traslape que existe en las plataformas hoy en dia, principalmente para reproducir video, aumentado de tal manera que sus contenidos se puedan encriptar. El segundo traslape se diseña especificamente para presentar una interfase sensible al usuario tal como diálogos de comercio electrónico. Este "traslape protegido" siempre está en la parte superior y no oscurecible, es decir, sin claves de color y tiene precedencia sobre el primer traslape. El segundo traslape se puede someter a ciertas limitaciones para minimizar el costo. Por ejemplo, el segundo traslape se puede proporcionar de manera tal que los datos estén en el mismo formato de pixeles que los principales y no se puede extender o multialmacenar en memoria intermedia. Además, el contenido del traslape protegido se puede verificar por el hardware. La Tabla 3 resume las diferencias ejemplares entre el traslape confidencial y el traslape protegido.
Punto Traslapa Traslape Confidencial Protegido Mismo formato de pixeles que el Si No primario Se puede extender No Si Puede tener claves de color en el Si No destino Se puede multialmacenar en memorias Si No intermedias Siempre está en la parte superior No Si El contenido se puede verificar No Si Tabla 3. Comparación de los Traslapes Confidencial y Protegido La Figura 3B muestra un sistema que incluye tanto los traslapes confidenciales, por ejemplo, los traslapes 310a, 310b y 310c de la cadena de inversión de traslape confidencial 310, como los traslapes protegidos 320. Cuando es posible, se usan cifras en flujo para la encriptación de superficie segura debido a que son más rápidos y más simples de implementar que las cifras en bloque (véase el Apéndice A con más detalle) . Los cifradores de flujo encriptan datos basándose en la "posición del byte en el flujo". De este modo, el primer nivel de seguridad de la invención inicializa el cifrador de flujo con la clave de encriptación de pixeles en la esquina superior izquierda de la superficie. El cifrador de flujo se avanza para cada pixel contenido dentro de la superficie de traslape independientemente de si el pixel será exhibido. El sistema propuesto contiene dos componentes de desencriptación de cifra en flujo 300a y 300b, uno para el traslape confidencial y uno para el traslape protegido, respectivamente. En cuanto los valores de pixeles desencriptados estén disponibles, el hardware 280 selecciona el valor del pixel de traslape protegido 320, el traslape confidencial 310 (si el primario 270 es igual a la clave de color y/o si está habilitada la clave de color) o el primario 270 y envia el valor de pixel al hardware de exhibición via DVI/DAC 290. Se hace notar que un adversario podría tener acceso a los traslapes por cualquier número de medios, y mediante esto ya sea hacer que la imagen exhibida sea invisible o reemplazar el contenido seguro con contenido ruidoso, ya que los datos escritos por el adversario también serán desencriptados . Aunque la invención no se defiende directamente contra estos ataques, la invención sí proporciona una verificación de integridad para asegurar que el contenido esperado se presentó al usuario final. De este modo, si la salida es algo distinta de la entrada, el usuario o el software confiado 210 pueden ser alertados de que hubo violación del contenido. Con respecto a la inferíase de software con los traslapes, además de la información de traslape usual, tal como la caja de enlace de fuente y destino, la clave de color de destino, etcétera, el traslape confidencial 310 mantiene que el índice de clave de encriptación sea especifico y el traslape protegido 320 adicionalmente mantenga que un lugar de memoria sea específico en donde el código de redundancia cíclica (CRC) del contenido del traslape desencriptado deberá escribirse . La inferíase de traslape confidencial es similar a traslapes existentes, excepto que el método de inversión especifica el índice de clave de encriptación de los contenidos de la memoria intermedia trasera del traslape 310a, es decir, la memoria intermedia a la cual están siendo invertidos los datos. La interfase de traslape protegida es más simple y prevé un código de redundancia cíclica de la superficie que sea enviado a un lugar de la memoria después de que ha sido exhibido por primera vez. Una interfase de hardware estandarizada controla el lugar del traslape, y pone el código de redundancia cíclica a disposición del software interesado por escrutinio. Por ejemplo, un registro puede indicar si el código de redundancia cíclica está disponible, y otro puede habilitar que se lea el código de redundancia cíclica. Por ejemplo, el siguiente pseudocódigo ejemplar se puede utilizar en relación con la interfase de traslape protegido: HRESULT UpdateOverlay ( LPPOINT ppntUL ) ; en donde: ppntUL especifica la esquina superior izquierda del traslape protegido. Respecto a esto, el software 210 calcula el valor del código de redundancia cíclica que espera si está preocupado por la integridad. Segunda Capa de Seguridad - Entradas y Salidas Encriptadas De acuerdo con la invención, para aumentar la unidad de procesamiento de gráficos 265 para manejar contenido encriptado como entrada y emitir contenido encriptado como salida, se añade hardware de encriptación y desencriptación a la unidad de mapeo de textura (del lado de la entrada) y la unidad de mezcla alfa (en el lado de la salida) , y los diseñadores de hardware cooperan para seguir algunas reglas para implementar esta funcionalidad. Ya que los cifradores de flujo no habilitan el acceso aleatorio a los datos encriptados, el sistema usa cifradores en bloque, encriptando los datos, por ejemplo, 128 bits a la vez. La unidad de mapeo de textura desencripta sobre una linea de caché llena y la unidad de mezcla alfa desencripta cuando lee una linea de caché a partir de la memoria intermedia de color y la encripta antes de escribirla. Las claves de encriptación usadas en estas operaciones pueden ser diferentes. Las tareas de cálculo distintas de la representación en tercera dimensión, tales como la descodificación de video, son extensiones directas del paradigma que se acaba de describir. En vez de texturas, los macrobloques de video sirven como la entrada encriptada; y en vez de una memoria intermedia de color, el marco de salida que se está descodificando sirve como la salida encriptada. Si el contenido se va a proteger como es entregado en banda en la corriente de comando a la unidad de procesamiento de gráficos 265, de qué manera la memoria intermedia de comando se puede encriptar también se describe más adelante. La Figura 4A representa el sistema que se acaba de describir realizando una operación de extremo frontal, tomando una superficie encriptada 420 como entrada y emitiendo una superficie encriptada como salida, es decir, el extremo frontal de la textura encriptada y técnicas de memoria intermedia de color, via el componente de encriptación y desencriptación 440. La invención además proporciona textura encriptada 400a, mientras que la textura 400b puede ser una textura típica de la memoria de video 260. La textura encriptada 400a sale al componente de desencriptación 450 de la unidad de procesamiento de gráficos 265, la cual trabaja junto con el cripto-procesador 220 para desencriptar la textura y aplicar algoritmos gráficos, tales como sombreado, etcétera, a los datos desencriptados a partir del componente 440 con el componente 430a. Anticipando el despliegue de un escritorio de inversión de página, compuesta, el sistema de la Figura 4A que se acaba de describir puede proteger el escritorio entero, ya que el hardware DAC puede desencriptar el primario 270 asi como las superficies de traslape 310 y 320 descritas anteriormente. Se nota que el hardware DAC desencripta usando un cifrador en bloques en vez de un cifrador de flujo en este caso. Un sistema asi habilita que un número arbitrario de superficies confidenciales participen en el escritorio, con una ordenación Z arbitraria, mezcla, o hasta tercera dimensión u otros efectos aplicados a ello sin comprometer la seguridad. Las superficies de traslape protegidas 320, que pueden estar siempre en la superficie y cuyos contenidos pueden ser verificables , residen en superficies separadas. El traslape confidencial 310 descrito anteriormente permanece hasta que pueda ser emulado en software por el escritorio de inversión de página segura, o plataforma . En una modalidad, además de ser capaces de desencriptar el primario 270, el sistema requiere que la unidad de procesamiento de gráficos 265 sea capaz de encriptar texto llano de las aplicaciones de escritorio ordinarias también, tales como procesadores de palabras confiados, de manera que también participen en el escritorio. La Figura 4B ilustra un escenario así en donde la cadena de inversión primaria 510, incluyendo el frente 510b y el trasero 510a, está encriptado. De este modo, las superficies primarias se pueden operar mediante el compositor de escritorio 430, proteger por encriptación/desencriptación 440a para la salida desde el mismo/hacia el mismo, respectivamente. En comunicación con el cripto-procesador 220, un componente de desencriptación 500 desencripta entonces la superficie frontal 510b para la salida al DVI/DAC 290. Esto expone al sistema a ciertos tipos de ataques, que se detallan más adelante con respecto a asegurar la seguridad, en donde algunas estrategias para defenderse contra estos ataques se discuten. La Figura 4C representa una alternativa a la Figura 4B, en donde la transcripción a la cadena de inversión de traslape 310 se efectúa. De este modo, como una alternativa a la encriptación del primario 270, de acuerdo con la invención, el hardware puede habilitar una encriptación cifrada en flujo para el consumo por el hardware de traslape confidencial 300a, el cual puede desencriptar los datos de cifrador de flujo junto con el cripto-procesador 220. Este mecanismo de presentación puede ser menos caro que encriptar el primario con un cifrador de bloques, pero puede no ser tan escalable o flexible, como un negocio de diseño. Ya que el traslape confidencial 310 utiliza un cifrador de flujo para la encriptación, una operación razonable para soportar en este contexto es una operación de "copia" en la cual la entrada es desencriptada mediante el componente de desencriptación 440b utilizando el cifrador de bloques en una superficie de entrada 510a y re-encriptada por el componente 440b usando el cifrador de flujo del traslape. Estas modalidades, y varias combinaciones de las mismas, son útiles, por ejemplo, cuando una entrada encriptada a la vez es suficiente, a condición de cualquier número de entradas de texto llano que combine con la entrada encriptada para generar la salida encriptada. Con respecto a la seguridad constante, hay varias medidas que se pueden implementar de acuerdo con la invención. Primero, la segunda capa anterior de seguridad descrita se basa en la idea de que el texto simple no se puede desbordar de la unidad de procesamiento de gráficos 265 en cuanto ha sido desencriptado . Por ejemplo, no existen registros para quitar errores u otras instalaciones que permitan que el texto llano se lea fuera del chip por la unidad de procesamiento central (CPU) anfitrión. Además del diseño de hardware cuidadoso para evitar estos desbordamientos, el conjunto de instrucciones de la unidad de procesamiento de gráficos 265 se diseña de manera que sea imposible habilitar la desencriptación de la entrada sin también habilitar la encriptación de la salida. Más aún, el hardware evita el desbordamiento de los datos del texto llano, ya sea por una unidad delincuente, por un código adversarial, o por accidente. Además, el hardware puede no dejar escapar las claves. En cuanto las claves son entregadas a la unidad de procesamiento de gráficos 265 via el protocolo criptográfico descrito de acuerdo con el intercambio de autenticación, sólo esté disponible para los componentes de encriptación y desencriptación . Como se discutió anteriormente, la unidad de procesamiento de gráficos 265 es capaz de encriptar texto llano para su exhibición en el primario 270, esta facilidad se considera una vulnerabilidad en el sistema ya que esta facilidad de encriptación es el único mecanismo descrito en el cual un adversario podría tener el texto llano y el correspondiente texto cifrado disponible al mismo tiempo. Mapeando la superficie primaria de manera que sea visible por la unidad de procesamiento central y creando una ventana que pueda ser encriptada, el adversario puede construir un subconjunto de los bloques del texto cifrado que corresponden a bloques de texto llano conocido. Estos "ataques de diccionario" trabajan mejor cuando el número de bloques que son "interesantes" es pequeño. Por ejemplo, para la exhibición de recuadros de diálogo en blanco y negro en un modo de exhibición de 32bpp, ya que hay 4 pixeles por bloque, sólo 16 bloques se necesitan para exhibir un diálogo así. Una avenida posible para un adversario que ha descubierto los 16 bloques de texto cifrado vía falsificar un diálogo al usuario final creando contenido que sea interesante aún después de la desencriptación mediante por la unidad de procesamiento de gráficos 265. Por esta razón, el traslape protegido es más adecuado para diálogos resistentes a la violación debido a que permite que las aplicaciones detecten cuando el usuario final no ha visto lo que se espera. De este modo hay dos buenas estrategias para frustrar a los adversarios que desean crear diccionarios. Primero, ya que los diccionarios sólo son buenos para una clave dada, al cambiar la clave y reencriptar el contenido se fuerza al adversario a comenzar con un nuevo diccionario. Además, para la encriptación del primario, la clave no necesita quedar disponible al software - puede ser laminada en hardware y el software sólo necesita ser notificado que la clave ha cambiado. Ya que la clave previa todavía está disponible, el software puede usar la clave previa para desencriptar y reencriptar las porciones del primario que no han cambiado. Por lo tanto, el cripto-procesador 220 periódicamente lamina la clave desde encriptación para el primario 270 y en una manera que la clave previa todavía está disponible, por ejemplo, un almacenamiento en memoria intermedia doble de los índices de la clave de encriptación, y de una manera que notifica al software que la clave ha sido laminada . Otra estrategia incluye codificar la localización dentro de la imagen antes de la encriptación. Por ejemplo, la localización de pixel (x,y) en la imagen (o algún valor derivado, tal como el desplazamiento de imagen) puede ser exclusivo o disyuntivo (XOR'd) en los datos de pixeles antes de encriptarlos ; la operación entonces se puede hacer después de la desencriptación. Como resultado, los bloques para pixeles en diferentes áreas de la superficie se encriptan de manera diferente, y el mapeo de texto llano-texto cifrado sólo tiene sentido para una posición dada en la superficie, el cual no está disponible a un asaltante. La presente invención también proporciona formatos configurados predefinidos. Ya que las texturas y las superficies fuera de pantalla requieren peso aleatorio, deben ser codificadas con cifradores en bloque. Hay una buena sinergia entre el tamaño de bloque típico para un cifrador en bloques y el tamaño de línea caché típica para un acelerador moderno de 3 dimensiones, por ejemplo, si la línea de caché y el tamaño del bloque tienen ambos 128 bits, entonces se puede implementar encríptación y desencriptación eficiente en el hardware. Aún si hay ligeras diferencias (por ejemplo, el tamaño del bloque de 128 bits y el tamaño de línea caché de 256 bits) la implementación de hardware es probablemente eficiente . Un problema con los datos de textura encriptados es que un esquema de encríptación en bloque requiere que un bloque adyacente de bytes esté disponible antes que pueda ser encriptado o desencriptado; y una línea caché rellena requiere que los datos de pixeles sean "configurados", es decir, que la translación de una posición (X,Y) en la imagen a una dirección se forme de manera que el llenado de la línea caché produzca una región en 2 dimensiones de pixeles. Hasta la fecha, los vendedores de hardware han expuesto ostensiblemente formatos de superficie lineal mientras que configuran los datos de imagen sin el conocimiento para la aplicación. Ya que el software confiado emitirá los datos de textura encriptados, sin embargo, estos web deben tener un conocimiento a priori del esquema de configuración de barrera que pueda encriptar bloques adyacentes de datos y preservar la localidad en 2 dimensiones. Como respuesta, la invención define un diccionario de formatos de imagen configurada, incluyendo YUV 4:4:4, 4:2:2, y 4:2:0 asi como formatos RGB, para su uso por la aplicación. El desempeño de estos formatos puede no ser tan alto como si las imágenes fueran configuradas a un formato específico de hardware, pero la encriptación merece una ligera degradación de desempeño, es decir, la seguridad a cambio de velocidad. Con respecto al AYUV/ARGB (32bpp, empacado), este formato de superficie de 32 bpp contiene un canal alfa además de canales de color de 8 bits para la luminancia (Y) y muestras de crominancia (U y V) . Alternativamente, puede contener un ARGB estándar de 32bpp, ya que ambos formatos son de 32 bpp y empacados. La siguiente discusión asume AYUV. El diseño lineal es como en la Figura 5A. El desplazamiento de pixeles (X,Y) en la imagen es como sigue: Offset=Y*Pitch+X*4 Suponiendo un tamaño de bloque de encriptación de 128 bits y un tamaño de linea caché, 4 pixeles pueden caber en un solo bloque. Intercalando los bits menos significativos de X e Y antes de generar la dirección dará como resultado una localidd en 2 dimensiones mejorada en un llenado de linea caché. Estos bloques se colocan linealmente de acuerdo con el formato. El diseño de la imagen resultante se ilustra en la Figura 5B. Cada rectángulo numerado es un pixel y los rectángulos oscuros son bloques encriptados. El pseudocódigo ejemplar para la función de configuración de la invención para este formato que convierte un lugar (x,y) en la imagen a un desplazamiento es como sigue: DWORD SwizzleAYUV( DWORD x, DWORD y, DWORD Pitch ) { // pitch es el número de bytes por línea escaneada de bloques macro DWORD BlockOffset = (y»l ) *Pitch+ (x»l) *( 128/8 ) ; DWORD IntraBlockOffset = ( (y&2)«2) I ( (?&2)«1) | ( (y&l)«l) | (x&l) ; return BlockOffset+IntraBlockOffset*4 ; } Con respecto a YUY2 (16bpp, empacado) , este formato de superficie horizontalmente submuestrea las muestras de "crominancia" U y V por un factor de 2. El resultado es un formato de imagen empacada que promedia a 16 bits por pixel. El diseño lineal se muestra en la Figura 6A. el formato de configuración de la invención asigna los bloques encriptados de 4x2 pixeles, como se muestra en la Figura 6B. Como con las Figuras 5A y 5B, los bloques de 128 bits se configuran también. Se nota que con la Figura 6B y con el siguiente pseudocódigo de configuración ejemplar que traslada (x,y) de pares coordenados en desplazamientos de imagen, se supone que U y V tienen coordenadas X uniformes: DWORD SwizzleYUY2Y ( DWORD x, DWORD y, const SURFACEDESC& sd ) { assert( x < sd.Width ) ; assert ( y < sd.Height ) ; DWORD BlockOffset = ( y»l ) *sd . Pitch+ (x»2 ) * ( 128 / 8 ) ; DWORD IntraBlockOffset = ((x&2)«l) | ( (y&D«l) I ( (x&l)«0) ; DWORD dwRet = BlockOffset+ ( IntraBlockOffset«l ) ; return dwRet; } DWORD SwizzleYUY2U ( DWORD x, DWORD y, const SURFACEDESC& sd ) { assert ( x < sd.Width ); assert ( 0 == (x & 1) ) ; assert ( y < sd.Height ); DWORD BlockOffset = (y»l ) *sd . Pitch+ (x»2 ) * ( 128 /8 ) ; DWORD IntraBlockOffset = ((x&2)«l) | ( (y&l)«l) I ( (x&l)«0) ; return BlockOffset+ (IntraBlockOffset«l ) +1; } DWORD SwizzleYUY2V ( DWORD x, DWORD y, const SURFACEDESCS sd ) { assert ( x < sd.Width ) ; assert ( 0 (x & 1) ) ; assert ( y < sd.Height ) DWORD BlockOffset = (y»2 ) *sd . Pitch+ (x»3 ) * ( 512 /8 ) ; DWORD IntraBlockOffset = ((x&2)«l) | ( (y&l)«l) I ( (x&l)«0) ; return BlockOffset+ ( IntraBlockOffset«l ) +3; } Respecto a esto, para el pseudocódigo que acompaña la configuración de las Figuras 5A, 5B, 6A y 6B, el paso de superficie se define como el número de bytes pro línea escaneada de bloques de 128 bits. Con respecto al plano empacado (12bpp), este formato de superficie de submuestras U y V por un factor de 2 horizontalmente y verticalmente . Las muestras de luminancia y crominancia se expresan en dos porciones separadas de la superficie. El diseño lineal del plano empacado (12bpp) se muestra en la Figura 7A El paso de superficie se define como el número de bytes por línea escaneada de bloques de 512 bits en el plano Y. El paso del plano UV es la mitad del paso del plano Y debido a que hay la cuarta parte de muestras, pero el doble de elementos de color por muestra. La imagen resultante en formato de acuerdo con la invención se muestra en la Figura 7B. El pseoducódigo ejemplar para la función de configuración de la invención para este formato que traslada (x,y) en coordenadas a los desplazamientos para los elementos Y, U y V es como sigue: DWORD SwizzlePP12Y( DWORD x, DWORD y, const SURFACEDESC& sd ) { assert( x < sd.Width ) ; assert ( y < sd.Height ) ; DWORD BlockOffset = (y»2 ) *sd . Pitch+ ( x»2 ) * ( 128 /8 ) ; DWORD intraBlockOffset = ((y&2)«2) | ( (?&2)«1) ( (y&l)«l) (x&l) ; return BlockOffset+ ( IntraBlockOffset ; } DWORD SwizzlePP12U ( DWORD x, DWORD y, const SURFACEDESC& sd ) { DWORD PlanetOffset = ( sd . Height»3 ) *sd . Piten; If ( (0!=(x&l) ) (0!=(y&l) ) ) _asm 3 x »= 1; y »= i; DWORD BlockOffset = (y»l) *sd. Pitch/2+ (x»2) * (128/8) ; DWORD IntraBlockOffset = ((X&2)«1) | ( (y&l)«l) (x&l) ; return PlaneOffset+BlockOffset+ ( IntraBlockOffset«l ) ; DWORD SwizzlePP12V ( DWORD x, DWORD y, const SURFACEDESC& sd ) { DWORD PlaneOffset = ( sd . Height»3 ) *sd . Pitch If ( (0!=(x&l) ) I I (0!=(y&l) ) ) _asm int 3 x »= 1; y »= 1; DWORD BlockOffset = (y»l) *sd. Pitch/2+ (x»2) * (128/8) ; DWORD IntraBlockOffset = ( (x&2)«l) | ( (y&l)«l) I (x&l) ; return PlaneOffset+BlockOffset+ ( IntraBlockOffset«l ) +1; } Tercera Capa de Seguridad - Memorias Intermedias de Comandos Encriptadas Las facilidades de las modalidades descritas anteriormente con respecto a la primera y segunda capas de seguridad pueden aumentar de acuerdo con la invención para encriptar las memorias intermedias de comandos sometidas a la unidad de procesamiento de gráficos 265 además de los datos de imagen según los cuales está operando la unidad de procesamiento de gráficos 265. Esta funcionalidad es deseable si la aplicación 210 desea proteger el contenido que se envia al hardware en banda en la memoria intermedia de comandos. La Figura 9A muestra la descodificación de video usando una memoria intermedia de comando encriptada 900, mediante lo cual el contenido es entregado a la textura encriptada 400a y se desencripta mediante el componente de desencriptación 450 y es descodificado por el descodificador de video 430b. Aunque es posible para la memoria intermedia de comandos sólo ser encriptada, el contenido es encriptado en la memoria de video asi como en la memoria intermedia de comandos, como se muestra por la estructura descodificada encriptada 420a. La encriptación de la memoria intermedia de comando de este modo es adecuada en situaciones como ésta, en donde los macrobloques están en la memoria de video y con vectores de movimiento y otros comandos enviados en la corriente de comando. La restricción de atomicidad para los datos de textura encriptados también se aplica a los datos de memoria intermedia de comandos encriptados, con la advertencia de que la encriptación de memoria intermedia de color puede no ser suficiente para proteger el contenido en cuestión. Las memorias intermedias intermediarias por ejemplo, la memoria intermedia Z, también se puede encriptar para proteger al sistema contra los ataques al texto llano. La Figura 9B muestra la representación en tercera dimensión ejemplar usando una memoria intermedia de comando encriptado de acuerdo con la invención. Como se ilustra, los comandos de representación en tercera dimensión 810 se encriptan en ruta al descodificador de video 430c. Los datos de textura 400a se desencriptan mediante el componente de desencriptación 450 y se procesan de acuerdo con los comandos 810 por el descodificador de video 430c. Incidente al mismo, los datos en la memoria intermedia de color 820 se encriptan via el componente encriptador/desencriptador 830. La detección del intento de violación se puede hacer antes del consumo de la memoria intermedia de comando, usando dos pasos, o después de que la memoria intermedia de comandos ha sido consumida. En una modalidad, la detección de la violación se habilita después de la exhibición o la representación del contenido. Otras Modalidades Alternativas - Encriptación de Salida de la Tarjeta de Gráficos En cada una de las modalidades anteriores, aunque la confidencialidad y la integridad se ha demostrado y descrito con respecto a la porción en la linea punteada de la Figura 2, no se ha demostrado la confidencialidad y la integridad con respecto a la salida de video, es decir, teóricamente, la inferíase entre la tarjeta de gráficos y el dispositivo de representación, tal como un monitor, y/o el mismo dispositivo de representación se somete a un ataque.
De este modo, en las modalidades descritas anteriormente, como se muestra en la Figura 9A, en algún punto durante el proceso, aunque el contenido esté protegido en la memoria de video y durante el procesamiento de la tarjeta de gráficos, los datos se envían sobre DVI/DAC 290 en el claro. Como resultado, los datos pueden ser pirateados, o alterados en ruta al dispositivo de representación, y mientras están adentro del dispositivo de representación. De este modo, de acuerdo con una modalidad alternativa de la invención, opcionalmente se puede combinar con otras modalidades descritas en la presente, un cripto-procesador hermano 220b se proporciona en el dispositivo de representación para complementar la funcionalidad realizada por el cripto-procesador 220a. Respecto a esto, el componente de encriptación 910a comunicativamente aplicado al cripto-procesador 220a encripta los datos antes de entregarlos al componente DVI/DAC 290 y al componente de desencriptación 910b comunicativamente acoplado al cripto-procesador 220b desencripta los datos como parte del despliegue o representación que se lleva a cabo, evitando la piratería de los datos. El componente de encriptación 910a alternativamente puede ser incluido con el componente DVI/DAC 290. En resumen, aplicando la misma encriptación y desencriptación, y la técnica de manejo de claves, el contenido puede proteger durante la conducción de gráficos entera para una entrega segura protegida criptográficamente y el procesamiento del contenido. Como se mencionó anteriormente, aunque las modalidades ejemplares de la presente invención se han descrito en relación con varios dispositivos de computación, hardware, software y arquitecturas de red, los conceptos subyacentes se pueden aplicar a cualquier dispositivo de computación o sistemas en el cual es deseable proteger el contenido de una fuente confiada. De este modo, las técnicas para proteger criptográficamente el contenido seguro de acuerdo con la presente invención se pueden aplicar a una variedad de aplicaciones y dispositivos. Por ejemplo, los métodos para proteger criptográficamente contenido seguro de la invención se pueden aplicar al sistema operativo de un dispositivo de computación, proporcionado como un objeto separado en el dispositivo, como parte de otro objeto, como un objeto descargable de un servidor, como un objeto distribuido, etcétera. Aunque los lenguajes de programación ejemplar, el pseudocódigo, nombres y ejemplos se eligen en la presente como representativos de varias elecciones, los lenguajes, pseudocódigos , nombres y ejemplos no pretenden ser limitantes . Las distintas técnicas descritas en la presente se pueden implementar en relación con el hardware o software o, en donde sea apropiado, con una combinación de ambos. De este modo, los métodos y aparatos de la presente invención, o ciertos aspectos o porciones de los mismos, pueden tomar la forma de código de programa (es decir, instrucciones) abarcados en medios tangibles, tales como disquetes flexibles, CD-ROM, discos duros, o cualquier otro medio de almacenamiento legible a máquina, en donde, cuando el código del programa es cargado y ejecutado por una máquina, tal como una computadora, la máquina se vuelve un aparato para practicar la invención. En el caso de la ejecución del código de programa en computadoras programables , el dispositivo de computación generalmente incluirá un procesador, un medio de almacenamiento legible por el procesador (que incluye memoria volátil y no volátil y/o elementos de almacenamiento) , cuando menos un dispositivo de entrada, y cuando menos un dispositivo de salida. Uno o más programas que pueden utilizar las técnicas de la presente invención, por ejemplo, a través del uso de un API de procesamiento de datos, sistema operativo, aplicación confiada o similar, preferiblemente se implementan en un procedimiento de alto nivel o lenguaje de programación orientado al objeto para comunicarse con un sistema de computadoras. Sin embargo, el o los programas se pueden implementar en conjunto o lenguaje máquina, si se desea. En cualquier caso, el lenguaje puede ser un compilador o lenguaje interpretado, y en varias modalidades de la invención, impone condiciones sobre las implementaciones de hardware de la unidad de procesamiento de gráficos 265. Los métodos y aparatos de la presente invención también se pueden practicar vía las comunicaciones abarcadas en forma de código de programa que se transmite sobre algún medio de transmisión, tal como sobre alambrado o cableado eléctrico, a través de fibras ópticas, o via cualquier otra forma de transmisión, en donde, cuando el código del programa es recibido, cargado y ejecutado por una máquina, tal como una EPROM, un arreglo de portal, un dispositivo lógico programable (PLD) , una computadora de cliente, una grabadora de video o similar, o una máquina receptora que tiene una tarjeta de gráficos y capacidades de encriptación tal como se describe en las modalidades ejemplares anteriormente se vuelve un aparato para practicar la invención. Cuando se implementa en un procesador de propósitos generales, el código del programa se combina con el procesador para proporcionar un aparato único que opera para invocar la funcionalidad de la presente invención. Adicionalmente, cualquier técnica de almacenamiento usado en relación con la presente invención puede invariablemente ser una combinación de hardware y software. Aunque la presente invención se ha descrito en relación con las modalidades preferidas de las distintas Figuras, se entenderá que otras modalidades similares se pueden usar o modificaciones y adiciones se pueden hacer a la modalidad descrita para realizar la misma función de la presente invención sin desviarse de la misma. Por ejemplo, mientras los ambientes de red ejemplares de la invención se describen en el contexto de un ambiente de red, tal como un ambiente de red de igual a igual, un experto en la técnica reconocerá que la presente invención no se limita a la misma, y que los métodos, como se describe en la presente solicitud pueden aplicarse a cualquier dispositivo de computación o ambiente, tal como una consola gaming, una computadora de mano, una computadora portátil, etcétera, ya sea alámbrica o inalámbrica, y puede ser aplicado a cualquier número de estos dispositivos de computación conectados via una red de comunicaciones, e interactuando a través de ka red. Además, deberá hacerse énfasis de que una variedad de plataformas de computadora, incluyendo sistemas operativos de dispositivos manuales y otros sistemas operativos específicos de aplicaciones se contemplan, especialmente conforme el número de dispositivos en red inalámbricos continúa proliferando . Todavía más, la presente invención se puede implementar en o a través de una pluralidad de chips de coprocesamiento o dispositivos, tal como un dispositivo que tiene una pluralidad de unidades de procesamiento de gráficos y de almacenamiento puede similarmente ser afectado a través de una pluralidad de dispositivos. Por lo tanto la presente invención no deberá limitarse a ninguna modalidad sola, sino deberá ser considerada en lo ancho y con el alcance de acuerdo con las reivindicaciones anexas .
Apéndice A. Cifradores de Flujo Contra Cifradores en Bloque Este apéndice detalla las diferencias entre los cifradores de flujo y los cifradores en bloque conforme se relacionan con el contenido de este documento.
Como regla, los cifradores de flujo son más rápidos y más simples de implementar que los cifradores de bloque. Como el nombre lo indica, los cifradores de flujo encriptan y desencriptan un flujo de bytes. Para desencriptar el N~é3imo byte en la corriente, el cifrador comienza en el inicio y avanza un byte a la vez hasta el desplazamiento deseado en la corriente. En cambio, los cifradores en bloque que funcionan en el modo de libro de códigos electrónicos pueden encriptar o desencriptar bloques arbitrarios en los datos, pero deben encriptar/desencriptar un bloque completo a la vez. El tamaño de un bloque típico es de 16 bytes. Los cifradores de flujo se usan de manera que los mismos datos nunca se encriptan dos veces, es decir, la clave usada para la encriptación y desencriptación se debe cambiar f ecuentemente. Cuando se usa para la reproducción de un video de premio, por ejemplo, el cambio de claves una vez por cuadro es suficiente. Como nota final, hay cifradores en bloque de buena calidad disponibles en el dominio público.

Claims (115)

REIVINDICACIONES
1. Un método para proteger criptográficamente contenido seguro en relación con un sistema de gráficos confiados de un dispositivo de computación, teniendo el sistema de gráficos confiado memoria de video, cuando menos una unidad de procesamiento de gráficos (GPU) y un dispositivo de procesamiento criptográfico comunicativamente acoplado a la cuando menos una unidad de procesamiento de gráficos, que comprende: solicitar, por uno entre una aplicación y un dispositivo, el sistema gráfico para realizar uno entre el procesamiento y la representación de contenido seguro, en donde la solicitud incluye transmitir por el uno entre la aplicación y el dispositivo una clave de sesión al sistema de gráficos y transmitir el contenido seguro a la cuando menos una porción encriptada de la memoria de video; desencriptar el contenido de la cuando menos una porción encriptada de la memoria de video mediante la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico; realizar uno entre el procesamiento y la representación del contenido desencriptado por la cuando menos una unidad de procesamiento de gráficos; y sacar el contenido de la cuando menos una unidad de procesamiento de gráficos.
2. Un método de acuerdo con la reivindicación 1, en donde si lo que sale de dicha salida es diferente al contenido seguro de la solicitud ajustada por cualquier procesamiento realizado sobre el contenido seguro por la cuando menos una unidad de procesamiento de gráficos, el uno de entre la aplicación y el dispositivo es alertado de la diferencia .
3. Un método de acuerdo con la reivindicación 1, en donde la transmisión incluye transmitir el contenido seguro a la cuando menos una superficie de traslape encriptado, la cual traslapa cuando menos una superficie primaria de la memoria de video.
4. Un método de acuerdo con la reivindicación 1, en donde la desencriptación del contenido de la cuando menos una porción encriptada de la memoria de video incluye desencriptar una fracción geométrica de una superficie primaria, mediante lo cual los pixeles distintos de la fracción geométrica no se desencriptan.
5. Un método de acuerdo con la reivindicación 1, en donde el procesador criptográfico está permanentemente unido a la tarjeta de gráficos, mediante uno de (A) añadir el procesador criptográfico a un chip existente y (B) añadir el procesador criptográfico como un chip separado a la tarjeta de gráficos, mediante lo cual la conexión física entre el procesador criptográfico y el resto de la tarjeta de gráficos no es accesible o no está expuesto.
6. Un método de acuerdo con la reivindicación 3, en donde la desencriptación incluye desencriptar la cuando menos una superficie de traslape encriptada mediante un mecanismo de desencriptación de dicha unidad de procesamiento de gráficos comunicativamente acoplada al dispositivo de procesamiento criptográfico.
7. Un método de acuerdo con la reivindicación 3, en donde la desencriptación incluye uno de (A) desencriptar la cuando menos una superficie de traslape encriptada sobre la marcha mediante hardware de conversión de digital en analógico (DAC) del sistema de gráficos conforme el contenido es sacado de acuerdo con dicha salida y (B) desencriptar la cuando menos una superficie de traslape encriptado sobre la marcha justo antes de que el contenido alcance el hardware de conversión de digital en analógico del sistema de gráficos.
8. Un método de acuerdo con la reivindicación 3, en donde la desencriptación incluye desencriptar la cuando menos una superficie de traslape encriptada antes de que el contenido alcance el hardware de conversión de digital en analógico del sistema de gráficos mediante un componente que no tiene canal de regreso hacia el sistema anfitrión.
9. Un método de acuerdo con la reivindicación 1, que además incluye: re-encriptar el contenido por la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico antes de dicha salida; y desencriptar el contenido re-encriptado por cuando menos un segundo dispositivo de procesamiento criptográfico de un dispositivo de computación externo.
10. Un método de acuerdo con la reivindicación 1, en donde el contenido se transmite en forma digital a un dispositivo externo que tiene un segundo dispositivo de procesamiento criptográfico y la desencriptación se presenta en el dispositivo externo.
11. Un método de acuerdo con la reivindicación 9, en donde el dispositivo de computación externo es uno de (A) un monitor, (B) una caja descodificadora y (C) un dispositivo de representación de procesamiento de señales digitales (DSP) .
12. Un método de acuerdo con la reivindicación 3, en donde la transmisión incluye transmitir el contenido seguro a uno de (A) un primer traslape confidencial encriptado para la representación básica del contenido seguro y (B) un segundo traslape protegido encriptado especificamente diseñado para presentar interfases de usuarios sensibles, (C) una primera región encriptada de una superficie primaria para la representación básica de contenido seguro y (D) una segunda región encriptada de una superficie primaria específicamente diseñada para presentar interfases de usuarios sensibles.
13. Un método de acuerdo con la reivindicación 1, en donde la desencriptación incluye calcular una síntesis criptográfica de los datos desencriptados , y el método además incluye : transmitir la síntesis criptográfica a uno de una aplicación y dispositivo para asegurar que los pixeles exhibidos son los pixeles enviados en relación con la solicitud por el uno entre la aplicación y el dispositivo.
14. Un método de acuerdo con la reivindicación 12, en donde el segundo traslape protegido encriptado siempre está en la parte superior y no oscurecíble y en donde el contenido del segundo traslape protegido encriptado se verifica por la cuando menos una unidad de procesamiento de gráficos .
15. Un método de acuerdo con la reivindicación 12, en donde la desencriptación incluye uno de (A) desencriptar con un primer componente de desencriptación cifrada en flujo el contenido del primer traslape confidencial encriptado, (B) desencriptar con un segundo componente de desencriptación cifrada en flujo el contenido del segundo traslape protegido encriptado, (C) desencriptar con un primer componente de desencriptación cifrado de flujo el contenido de la primera región encriptada de la superficie primaria y (D) desencriptar con un segundo componente de desencriptación cifrada de flujo el contenido de la segunda región encriptada de la superficie primaria.
16. Un método de acuerdo con la reivindicación 15, en donde cuando menos un bit de cada pixel en una superficie primaria se usa para determinar la membresia en una superficie protegida virtual para el pixel, en donde la tarjeta de gráficos selecciona una clave de desencriptación adecuada para el pixel basada en dicho cuando menos un bit.
17. Un método de acuerdo con la reivindicación 16, en donde si cuando menos el un bit contiene un valor cero, entonces la superficie protegida virtual asociada con el dicho cuando menos un bit se interpreta como una región que no se va a desencriptar.
18. Un método de acuerdo con la reivindicación 15, que además incluye en cuanto están disponibles los valores de pixel desencriptados, seleccionar mediante un componente de selección de pixel de dicha cuando menos una unidad de procesamiento de gráficos el valor del pixel de uno entre (A) el segundo traslape protegido encriptado, (B) el primer traslape confidencial encriptado y (3) una superficie primaria .
19. Un método de acuerdo con la reivindicación 12, en donde la solicitud incluye cuando menos uno entre (A) una caja de contorno de fuente y destino de la dicha cuando menos una superficie de traslape encriptado, (B) una clave de color de destino de la dicha superficie de traslape encriptado, (C) en el caso de el primer traslape confidencial encriptado, una especificación de un Indice de clave de encriptación del contenido de una memoria intermedia trasera de traslape a la cual los datos se van a invertir (D) en el caso del segundo traslape protegido encriptado, una especificación de un lugar de memoria en donde cuando menos uno de un código de redundancia cíclica (CRC) , una medida de integridad y un valor de síntesis del contenido del traslape desencriptado se va a escribir, (E) una caja de contorno de fuente y destino de cuando menos una superficie primaria encriptada, y (F) una clave de color de destino de la dicha cuando menos una superficie primaria encriptada.
20. Un método de acuerdo con la reivindicación 19, en donde uno entre una aplicación y un dispositivo calcula el cuando menos un código de redundancia cíclica, la medida de integridad y el valor de síntesis si la aplicación y el dispositivo se preocupan por la integridad del contenido.
21. Un método de acuerdo con la reivindicación 1, en donde cuando menos una memoria intermedia de comandos enviada a una unidad de descodificación de video de la cuando menos una unidad de procesamiento de gráficos incidente a dicha solicitud es encriptada por el cuando menos uno entre una aplicación y un dispositivo y es desencriptada por la unidad de descodificación de video en comunicación con la unidad de procesamiento criptográfico.
22. Un método de acuerdo con la reivindicación 21, que además comprende detectar relación de la cuando menos una memoria intermedia de comando uno de (A) usando dos pasos antes del consumo del cuando menos una memoria intermedia de comandos y (B) después de que la memoria intermedia de comandos ha sido consumida.
23. Al menos uno de un sistema de operación, un medio legible por computadora que tiene almacenada en el mismo una pluralidad de instrucciones ejecutables por computadora, un dispositivo de coprocesamiento , un dispositivo de computación y una señal de datos modulada que lleva instrucciones ejecutables por computadora para realizar el método de la reivindicación 1.
24. Un método para proteger criptográficamente contenido seguro en conexión con un sistema de gráficos confiado de un dispositivo de computación, el sistema de gráficos confiado tiene memoria de video, cuando menos una unidad de procesamiento de gráficos (GPU) y un dispositivo de procesamiento criptográfico comunicativamente acoplado a la cuando menos una unidad de procesamiento de gráficos, que comprende : solicitar, por uno entre una aplicación y un dispositivo, que el sistema gráfico realice uno entre el procesamiento y la representación de contenido seguro, en donde la solicitud incluye transmitir por uno entre una aplicación y un dispositivo una clave de sesión al sistema de gráficos para la verificación por el dispositivo de procesamiento criptográfico y transmitir el contenido seguro a la cuando menos una porción encriptada de la memoria de video desencriptar el contenido de la cuando menos una porción encriptada de la memoria de video por un mecanismo de desencriptación de una unidad entrada de la cuando menos una unidad de procesamiento de gráficos, en donde el mecanismo de desencriptación está en comunicación con el dispositivo de procesamiento criptográfico; realizar uno entre el procesamiento y la representación sobre el contenido desencriptado mediante la cuando menos una unidad de procesamiento de gráficos; encriptar el contenido con un mecanismo de encriptación/desencriptación de una unidad de salida de la cuando menos una unidad de procesamiento de gráficos; y sacar el contenido encriptado de la cuando menos una unidad de procesamiento de gráficos.
25. Un método de acuerdo con la reivindicación 24, en donde la unidad de entrada es una unidad de mapeo de texturas y la unidad de salida es una unidad de mezclado alfa, en donde la cuando menos una porción encriptada de la memoria de video es una superficie de textura encriptada.
26. Un método de acuerdo con la reivindicación 24, en donde el contenido seguro es uno entre datos de textura, texto llano y macrobloques de video.
27. Un método de acuerdo con la reivindicación 24, en donde la encriptación/desencriptación incluye encriptar y desencriptar usando cifradores en bloque, respectivamente.
28. Un método de acuerdo con la reivindicación 25, en donde el mecanismo de desencriptación de la unidad de mapeo de texturas desencripta sobre un llenado de linea caché y en donde el mecanismo de encriptación/desencriptación de la unidad de mezclado alfa se encripta antes de escribir.
29. Un método de acuerdo con la reivindicación 25, que además incluye desencriptar mediante el mecanismo de encriptación/desencriptación de la unidad de mezclado alfa cuando se lee una linea caché de la memoria intermedia de color en la memoria de video.
30. Un método de acuerdo con la reivindicación 24, que además incluye: invertir el contenido de salida encriptado de una superficie primaria trasera encriptada a una superficie primaria frontal encriptada de la memoria de video; segunda desencriptación del contenido de salida encriptado mediante un segundo mecanismo de desencriptación de la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico; y segunda salida del contenido de salida.
31. Un método de acuerdo con la reivindicación 24, en donde la salida incluye sacar el contenido encriptado a una cadena de inversión de traslape confidencial y el método además incluye: invertir el contenido de salida encriptado de una superficie confidencial tras ser encriptada a una superficie confidencial frontal encriptada mediante lo cual la encriptación mediante el mecanismo de encriptación/desencriptación incluye encriptar utilizando encriptación cifrada en flujo; y segunda desencriptación del contenido de salida encriptado mediante un mecanismo de desencriptación cifrado en flujo de la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico .
32. Un método de acuerdo con la reivindicación 31, que además comprende : antes de la encriptación, codificar un lugar dentro del contenido; y después de la segunda desencriptación, descodificar el lugar dentro del contenido, mediante lo cual el lugar es externamente inalcanzable preservando la integridad de un mapeo de texto llano-texto cifrado.
33. Un método de acuerdo con la reivindicación 24, en donde si lo que sale de la salida es diferente del contenido seguro de la solicitud ajustada para cualquier procesamiento realizado en el contenido seguro por la cuando menos una unidad de procesamiento de gráficos, uno entre la aplicación y el dispositivo es alertado sobre la diferencia.
34. Un método de acuerdo con la reivindicación 24, que además incluye: re-encriptar el contenido mediante la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico antes de la salida; y desencriptar el contenido re-encriptado mediante cuando menos un segundo dispositivo de procesamiento criptográfico de un dispositivo de computación externa.
35. Un método de acuerdo con la reivindicación 34, en donde el dispositivo de computación externo es uno entre (A) un monitor, (B) una caja descodificadora y (C) un dispositivo de representación de procesamiento de señales digitales (DSP) .
36. Un método de acuerdo con la reivindicación 24, en donde las texturas encriptadas y las superficies fuera de pantalla encriptadas entregadas por uno entre una aplicación y un dispositivo se codifican con cifradores en bloque, y el uno entre la aplicación y el dispositivo configuran los cifradores de bloque con un formato de configuración predefinido que convierte un lugar (x,y) en el contenido a un desfasamiento para cuando menos un YUV, RGB, YUY2 y formatos planos empacados.
37. Un método de acuerdo con la reivindicación 24, en donde cuando menos una memoria intermedia de comandos enviada a una unidad de descodificación de video de la cuando menos una unidad de procesamiento de gráficos incidente a dicha solicitud es encriptada por la cuando menos una entre una aplicación y un dispositivo y desencriptada por la unidad de descodificación de video en comunicación con la unidad de procesamiento criptográfico.
38. Un método de acuerdo con la reivindicación 24, que además comprende detección de intento de violación de la cuando menos una memoria intermedia de comandos uno de (A) usando dos pases antes del consumo de la cuando menos una memoria intermedia de comandos y (B) después de que la memoria intermedia de comandos ha sido consumida.
39. Al menos uno de un sistema de operación, un medio legible por computadora que tiene almacenado en el mismo una pluralidad de instrucciones ejecutables por computadora, un dispositivo de coprocesamiento, un dispositivo de computación y una señal de datos modulada que lleva instrucciones ejecutables por computadora para realizar el método de la reivindicación 24.
40. Al menos un medio legible por computadora que comprende módulos ejecutables por computadora que incluyen instrucciones ejecutables por computadora para proteger criptográficamente contenido seguro en conexión con un sistema de gráficos confiado de un dispositivo de computación, el sistema de gráficos confiado tiene memoria de video, cuando menos una unidad de procesamiento de gráficos (GPU) y un dispositivo de procesamiento criptográfico comunicativamente acoplado a la cuando menos una unidad de procesamiento de gráficos, comprendiendo los módulos ejecutables por computadora: medios para solicitar mediante uno entre una aplicación y un dispositivo que el sistema gráfico realice uno entre el procesamiento y la representación del contenido seguro, en donde el medio para solicitar incluye medios para transmitir mediante uno entre la aplicación y el dispositivo una clave de sesión al sistema gráfico y medios para transmitir el contenido seguro a la cuando menos una porción encriptada de la memoria de video; medios para desencriptar el contenido de la cuando menos una porción encriptada de la memoria de video mediante la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico; medios para realizar uno entre el procesamiento y la representación en el contenido desencriptado mediante la cuando menos una unidad de procesamiento de gráficos; y medios para sacar el contenido de la cuando menos una unidad de procesamiento de gráficos.
41. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 40, en donde si lo que sale de los medios para la salida es diferente del contenido seguro del medio para solicitar ajustado para cualquier procesamiento realizado sobre contenido seguro mediante la cuando menos una unidad de procesamiento de gráficos, el uno entre la aplicación y el dispositivo es alertado de la diferencia.
42. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 40, en donde el medio para transmitir incluye medios para transmitir el contenido seguro a la cuando menos una superficie de traslape encriptada, que traslapa cuando menos una superficie primaria de la memoria de video.
43. Cuando menos un medio legible po computadora de acuerdo con la reivindicación 40, en donde el medio para desencriptar el contenido de la cuando menos una porción encriptada de la memoria de video incluye medios para desencriptar una fracción geométrica de una superficie primaria, mediante lo cual los pixeles distintos de la fracción geométrica no se desencriptan .
44. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 40, en donde el procesador criptográfico está permanentemente unido a la tarjeta de gráficos, mediante uno de (A) añadir el procesador criptográfico a un chip existente y (B) añadir el procesador criptográfico como un chip separado a la tarjeta de gráficos, mediante lo cual la conexión física entre el procesador criptográfico y el resto de la tarjeta de gráficos no es accesible y no se expone.
45. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 42, en donde el medio para desencriptar incluye medios para desencriptar la cuando menos una superficie de traslape encriptada mediante un mecanismo de desencriptación de dicha unidad de procesamiento de gráficos comunicativamente acoplada al dispositivo de procesamiento criptográfico.
46. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 42, en donde el medio para desencriptar incluye uno de (A) medios para desencriptar la cuando menos una superficie de traslape encriptada sobre la marcha mediante hardware de conversión de digital en analógico (DAC) del sistema de gráficos conforme el contenido es sacado de acuerdo con la salida del medio para sacar y (B) medios para desencriptar la cuando menos una superficie de traslape encriptada sobre la marcha justo antes de que el contenido alcance el hardware de conversión de digital en analógico del sistema de gráficos.
47. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 42, en donde el medio para desencriptar incluye medios para desencriptar la cuando menos una superficie de traslape encriptada previa a que el contenido alcance el hardware de conversión de digital en analógico del sistema de gráficos por un componente que no tiene canal de regreso hacia el sistema anfitrión.
48. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 40, que además incluye: medios para re-encriptar el contenido mediante la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico antes de que salga mediante el medio de salida; y medios para desencriptar el contenido re-encriptado mediante cuando menos un segundo dispositivo de procesamiento criptográfico de un dispositivo de computación externo.
49. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 40, en donde el contenido se transmite en forma digital a un dispositivo externo que tiene un segundo dispositivo de procesamiento criptográfico y la desencriptación del medio para desencriptar se presenta en el dispositivo externo.
50. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 48, en donde el dispositivo de computación externo es uno de (A) un monitor, (B) una caja descodificadora y (C) un dispositivo de representación de procesamiento de señales digitales (DSP) .
51. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 42, en donde el medio para transmitir incluye medios para transmitir el contenido seguro a uno de (A) un primer traslape confidencial encriptado para la representación básica del contenido seguro y (B) un segundo traslape protegido encriptado específicamente diseñado para presentar interfases sensibles de usuario, (C) una primera región encriptada de una superficie primaria para la representación básica del contenido seguro y (D) una segunda región encriptada de una superficie primaria específicamente diseñada para presentar interfases sensibles al usuario.
52. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 40, en donde el medio para desencriptar incluye medios para calcular una síntesis criptográfica de los datos descritos, y los módulos ejecutables por computadora además incluyen: medios para transmitir la síntesis criptográfica a uno entre una aplicación y un dispositivo para asegurar que los pixeles exhibidos son los pixeles enviados en relación con la solicitud mediante el uno entre la aplicación y el dispositivo vía el medio para solicitar.
53. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 51, en donde el segundo traslape protegido encriptado siempre está en la parte superior y no oscurecible y en donde el contenido del segundo traslape protegido encriptado se verifica mediante la cuando menos una unidad de procesamiento de gráficos.
54. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 51, en donde el medio para desencriptar incluye uno de (A) medios para desencriptar con un primer componente de desencriptacion cifrada en flujo los contenidos del primer traslape confidencial encriptado, (B) medios para desencriptar con un segundo componente de desencriptación cifrada en flujo el contenido del segundo traslape protegido encriptado, (C) medios para desencriptar con un primer componente de desencriptación cifrado de flujo el contenido de la primera región encriptada de la superficie primaria y (D) medios para desencriptar con un segundo componente de desencriptación cifrada de flujo el contenido de la segunda región encriptada de la superficie primaria.
55. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 54, en donde cuando menos un bit de cada pixel en una superficie primaria se usa para determinar la membresia en una superficie protegida virtual para el pixel, en donde la tarjeta de gráficos selecciona una clave de desencriptación adecuada para el pixel basada en el cuando menos un bit.
56. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 55, en donde si el cuando menos un bit contiene un valor cero, entonces la superficie protegida virtual asociada con el dicho cuando menos un bit se interpreta como una región que no se va a desencriptar.
57. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 54, los módulos ejecutables de computadora además incluyen, medios para seleccionar, en cuanto los valores de pixel desencriptados están disponibles, mediante un componente de selección de pixel de dicha cuando menos una unidad de procesamiento de gráficos el valor del pixel de uno entre (A) el segundo traslape protegido encriptado, (B) el primer traslape confidencial encriptado y (3) una superficie primaria.
58. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 51, en donde la solicitud de los medios para solicitar incluyen cuando menos uno entre (A) una caja de contorno de fuente y destino de la cuando menos una superficie de traslape encriptada, (B) una clave de color de destino de la cuando menos una superficie de traslape encriptada, (C) en el caso del primer traslape confidencial encriptado, una especificación de un índice de clave de encriptación del contenido de una memoria intermedia trasera de traslape a la cual los datos van a ser invertidos (D) en el caso del segundo traslape protegido encriptado, una especificación de un lugar de memoria en donde cuando menos uno de un código de redundancia cíclica (CRC) , una medida de integridad y un valor de síntesis del contenido del traslape desencriptado se van a escribir, (E) una caja de contorno de fuente y destino de cuando menos una superficie primaria encriptada, y (F) una clave de color de destino de la cuando menos una superficie primaria encriptada.
59. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 58, en donde uno entre una aplicación y un dispositivo calcula el cuando menos uno del código de redundancia cíclica, la medida de integridad y el valor de síntesis si uno entre la aplicación y el dispositivo se preocupa por la integridad del contenido.
60. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 40, en donde cuando menos una memoria intermedia de comandos enviada a una unidad de descodificacíón de video de la cuando menos una unidad de procesamiento de gráficos incidente a dicha solicitud del medio para solicitar es encriptada mediante la cuando menos una entre una aplicación y un dispositivo y desencriptada por la unidad de descodificación de video en comunicación con la unidad de procesamiento criptográfico.
61. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 60, los módulos ejecutables por computadora que además comprende medios para detectar intento de violación en cuando menos una memoria intermedia de comandos uno de (A) usando dos pases antes del consumo de la cuando menos una memoria intermedia de comandos y (B) después de que la memoria intermedia de comandos ha sido consumida .
62. Cuando menos uno de un sistema operativo como un dispositivo de coprocesamiento, un dispositivo de computación y una señal de datos modulada que lleva instrucciones ejecutables por computadora, de los módulos ejecutables por computadora de cuando menos un medio legible por computadora de la reivindicación 40.
63. Cuando menos un medio legible por computadora que además comprende instrucciones ejecutables por computadora para proteger criptográficamente el contenido seguro en conexión con un sistema gráfico confiado de un dispositivo de computación, el sistema de gráficos confiado tiene memoria de video, cuando menos una unidad de procesamiento de gráficos ( GPU) y un dispositivo de procesamiento criptográfico comunicativamente acoplado a la cuando menos una unidad de procesamiento de gráficos, comprendiendo los módulos ejecutables por computadora: medios para solicitar, por uno de una aplicación y un dispositivo, que el sistema gráfico realice uno de procesamiento y representación de contenido seguro, en donde el medio para solicitar incluye medios para transmitir por uno entre una aplicación y un dispositivo una clave de sesión al sistema de gráficos para la verificación por el dispositivo de procesamiento criptográfico y transmitir el contenido seguro a la cuando menos una porción encriptada de la memoria de video ; medios para desencriptar el contenido de la cuando menos una porción encriptada de la memoria de video por un mecanismo de desencriptación de una unidad entrada de la cuando menos una unidad de procesamiento de gráficos, en donde el mecanismo de desencriptación está en comunicación con el dispositivo de procesamiento criptográfico; medios para realizar uno del procesamiento y representación sobre el contenido desencriptado mediante la cuando menos una unidad de procesamiento de gráficos; medios para encriptar el contenido con un mecanismo de encriptación/desencriptación de una unidad de salida de la cuando menos una unidad de procesamiento de gráficos; y medios para sacar el contenido encriptado de la cuando menos una unidad de procesamiento de gráficos.
64. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 63, en donde la unidad de entrada es una unidad de mapeo de texturas y la unidad de salida es una unidad de mezclado alfa, en donde la cuando menos una porción encriptada de la memoria de video es una superficie de textura encriptada.
65. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 63, en donde el contenido seguro es uno entre datos de textura, texto llano y macrobloques de video.
66. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 63, en donde el medio para encriptar y el medio para desencriptar incluye medio para encriptar y medio para desencriptar usando cifradores en bloque, respectivamente.
67. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 64, en donde el mecanismo de desencriptación de la unidad de mapeo de texturas desencripta en un llenado de linea caché y en donde el mecanismo de encriptación/desencriptación de la unidad de mezclado alfa encripta antes de escribir.
68. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 64, que además incluye medios para desencriptar mediante el mecanismo de encriptación/desencriptación de la unidad de mezclado alfa cuando se lee una linea caché a partir de la memoria intermedia de color en la memoria de video.
69. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 63, que además incluye: medios para invertir el contenido de salida encriptado de una superficie primaria tras ser encriptada a una superficie primaria frontal encriptada de la memoria de video ; segundos medios para desencriptar el contenido de salida encriptado mediante un segundo mecanismo de desencriptación de la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico; y segundo medio de salida del contenido de salida.
70. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 63, en donde el medio para la salida incluye medios para sacar el contenido encriptado a una cadena de inversión de traslape confidencial y los módulos ejecutables por computadora además incluyen: medios para invertir el contenido de salida encriptado de una superficie confidencial tras ser encriptada a una superficie confidencial frontal encriptada mediante lo cual la encriptación mediante el mecanismo de encriptación/desencriptación incluye medios para encriptar utilizando encriptación cifrada en flujo; y segundo medio para desencriptar el contenido de salida encriptado mediante un mecanismo de desencriptación cifrado en flujo de la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico.
71. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 70, los módulos ejecutables por computadora que además comprenden: medios para codificar un lugar dentro del contenido antes de la encriptación por los medios para encriptar; medios para descodificar el lugar dentro del contenido después de la desencriptación mediante el segundo medio para desencriptar, mediante lo cual el lugar es externamente inalcanzable preservando la integridad de un mapeo de texto llano-texto cifrado.
72. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 63, en donde si lo que sale del medio de salida es diferente del contenido seguro del medio de solicitud ajustada para cualquier procesamiento realizado en el contenido seguro por la cuando menos una unidad de procesamiento de gráficos, uno entre la aplicación y el dispositivo es alertado sobre la diferencia.
73. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 63, incluyendo además los módulos ejecutables por computadora: medios para re-encriptar el contenido mediante la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico antes de la salida mediante el medio de salida; y medios para desencriptar el contenido re-encriptado mediante cuando menos un segundo dispositivo de procesamiento criptográfico de un dispositivo de computación externo.
74. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 73, en donde el dispositivo de computación externo es uno entre (A) un monitor, (B) una caja descodificadora y (C) un dispositivo de representación de procesamiento de señales digitales (DSP) .
75. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 63, en donde las texturas encriptadas y las superficies fuera de pantalla encriptadas entregadas por uno entre una aplicación y un dispositivo se codifican con cifradores en bloque, y el uno entre la aplicación y el dispositivo configura los cifradores de bloque con un formato de configuración predefinido que convierte un lugar (x,y) en el contenido a un desfasamiento para cuando menos uno de YUV, RGB, YUY2 y formatos planos empacados .
76. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 63, en donde cuando menos una memoria intermedia de comandos enviada a una unidad de descodificación de video de la cuando menos una unidad de procesamiento de gráficos incidente a dicha solicitud del medio para solicitar es encriptada por la cuando menos una entre un aplicación y un dispositivo y desencriptada por la unidad de descodificación de video en comunicación con la unidad de procesamiento criptográfico.
77. Cuando menos un medio legible por computadora de acuerdo con la reivindicación 63, los módulos ejecutables por computadora que además comprenden medios para detectar intento de violación de la cuando menos una memoria intermedia de comandos uno de (A) usando dos pasos antes del consumo de la cuando menos una memoria intermedia de comandos y (B) después de que la memoria intermedia de comandos ha sido consumida.
78. Al menos uno de un sistema operativo, un dispositivo de coprocesamiento, un dispositivo de computación y una señal de datos modulada que lleva instrucciones ejecutables por computadora de los módulos ejecutables por computadora del cuando menos un medio legible por computadora de la reivindicación 63.
79. Un dispositivo de computación que comprende medios para proteger criptográ icamente contenido seguro en conexión con un sistema de gráficos confiado de un dispositivo de computación, el sistema de gráficos confiado tiene memoria de video, cuando menos una unidad de procesamiento de gráficos (GPU) y un dispositivo de procesamiento criptográfico comunicativamente acoplado a la cuando menos una unidad de procesamiento de gráficos, comprendiendo : medios para solicitar mediante uno entre una aplicación y un dispositivo que el sistema gráfico realice uno entre el procesamiento y la representación del contenido seguro, en donde el medio para solicitar incluye medios para transmitir mediante uno entre la aplicación y el dispositivo una clave de sesión al sistema gráfico y medios para transmitir el contenido seguro a la cuando menos una porción encriptada de la memoria de video; medios para desencriptar el contenido de la cuando menos una porción encriptada de la memoria de video mediante la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico; medios para realizar uno entre el procesamiento y la representación en el contenido desencriptado mediante la cuando menos una unidad de procesamiento de gráficos; y medios para sacar el contenido de la cuando menos una unidad de procesamiento de gráficos.
80. Un dispositivo de computación de acuerdo con la reivindicación 79, en donde si lo que sale de los medios para la salida es diferente del contenido seguro del medio para solicitar ajustado para cualquier procesamiento realizado sobre contenido seguro mediante la cuando menos una unidad de procesamiento de gráficos, el uno entre la aplicación y el dispositivo es alertado de la diferencia.
81. Un dispositivo de computación de acuerdo con la reivindicación 79, en donde el medio para la transmisión incluye medios para transmitir el contenido seguro a la cuando menos una superficie de traslape encriptada, la cual traslapa cuando menos una superficie primaria de la memoria de video.
82. Un dispositivo de computación de acuerdo con la reivindicación 79, en donde el medio de la desencriptación del contenido de la cuando menos una porción encriptada de la memoria de video incluye medios para desencriptar una fracción geométrica de una superficie primaria, mediante lo cual los pixeles distintos de la fracción geométrica no se desencriptan .
83. Un dispositivo de computación de acuerdo con la reivindicación 79, en donde el procesador criptográfico permanentemente está unido a la tarjeta de gráficos, por uno de (A) añadir el procesador criptográfico a un chip existente y (B) añadir el procesador criptográfico como un chip separado a la tarjeta de gráficos, mediante lo cual la conexión física entre el procesador criptográfico y el resto de la tarjeta de gráficos no es accesible y no está expuesta.
84. Un dispositivo de computación de acuerdo con la reivindicación 81, en donde el medio de desencriptación incluye medios para desencriptar la cuando menos una superficie de traslape encriptada mediante un mecanismo de desencriptación de dicha unidad de procesamiento de gráficos comunicativamente acoplada al dispositivo de procesamiento criptográfico .
85. Un dispositivo de computación de acuerdo con la reivindicación 81, en donde el medio de desencriptación incluye uno de (A) medios para desencriptar la cuando menos una superficie de traslape encriptada sobre la marcha mediante hardware de conversión de digital en analógico (DAC) del sistema de gráficos conforme el contenido es sacado de acuerdo con dicha salida del medio de salida y (B) medios para desencriptar la cuando menos una superficie de traslape encriptada sobre la marcha justo antes de que el contenido alcance el hardware de conversión de digital en analógico del sistema de gráficos.
86. Un dispositivo de computación de acuerdo con la reivindicación 81, en donde el medio de desencriptación incluye medios para desencriptar la cuando menos una superficie de traslape encriptada antes de que el contenido alcance el hardware de conversión de digital en analógico del sistema de gráficos mediante un componente que no tiene canal de regreso hacia el sistema anfitrión.
87. Un dispositivo de computación de acuerdo con la reivindicación 79, que además incluye: medios para re-encriptar el contenido mediante la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico antes de que salga mediante el medio de salida; y medios para desencriptar el contenido re-encriptado mediante cuando menos un segundo dispositivo de procesamiento criptográfico de un dispositivo de computación externo.
88. Un dispositivo de computación de acuerdo con la reivindicación 79, en donde el contenido se transmite en forma digital a un dispositivo externo que tiene un segundo dispositivo de procesamiento criptográfico y la desencriptación del medio para desencriptar se presenta en el dispositivo externo.
89. Un dispositivo de computación de acuerdo con la reivindicación 87, en donde el dispositivo de computación externo es uno de (A) un monitor, (B) una caja descodificadora y (C) un dispositivo de representación de procesamiento de señales digitales (DSP) .
90. Un dispositivo de computación de acuerdo con la reivindicación 81, en donde el medio para transmitir incluye medios para transmitir el contenido seguro a uno de (A) un primer traslape confidencial encriptado para la representación básica del contenido seguro y (B) un segundo traslape protegido encriptado específicamente diseñado para presentar interfases sensibles de usuario, (C) una primera región encriptada de una superficie primaria para la representación básica del contenido seguro y (D) una segunda región encriptada de una superficie primaria específicamente diseñada para presentar interfases sensibles al usuario.
91. Un dispositivo de computación de acuerdo con la reivindicación 79, en donde el medio para desencriptar incluye medios para calcular una síntesis criptográfica de los datos desencriptados , y el dispositivo de computación además incluye: medios para transmitir la síntesis criptográfica a uno entre una aplicación y un dispositivo para asegurar que los pixeles exhibidos son los pixeles enviados en relación con la solicitud mediante el uno entre la aplicación y el dispositivo via el medio para solicitar.
92. Un dispositivo de computación de acuerdo con la reivindicación 90, en donde el segundo traslape protegido encriptado siempre está en la parte superior y no oscurecible y en donde el contenido del segundo traslape protegido encriptado se verifica mediante la cuando menos una unidad de procesamiento de gráficos.
93. Un dispositivo de computación de acuerdo con la reivindicación 90, en donde el medio para desencriptar incluye uno de (A) medios para desencriptar con un primer componente de desencriptación cifrada en flujo los contenidos del primer traslape confidencial encriptado, (B) medios para desencriptar con un segundo componente de desencriptación cifrada en flujo el contenido del segundo traslape protegido encriptado, (C) medios para desencriptar con un primer componente de desencriptación cifrado de flujo el contenido de la primera región encriptada de la superficie primaria y (D) medios para desencriptar con un segundo componente de desencriptación cifrada de flujo el contenido de la segunda región encriptada de la superficie primaria.
94. Un dispositivo de computación de acuerdo con la reivindicación 93, en donde cuando menos un bit de cada pixel en una superficie primaria se usa para determinar la membresía en una superficie protegida virtual para el pixel, en donde la tarjeta de gráficos selecciona una clave de desencriptación adecuada para el pixel basada en el cuando menos un bit.
95. Un dispositivo de computación de acuerdo con la reivindicación 94, en donde si el cuando menos un bit contiene un valor cero, entonces la superficie protegida virtual asociada con el cuando menos un bit se interpreta como una región que no se va a desencriptar .
96. Un dispositivo de computación de acuerdo con la reivindicación 93, además incluye medios para seleccionar, en cuanto los valores de pixel desencriptados están disponibles, mediante un componente seleccionador de pixel de dicha cuando menos una unidad de procesamiento de gráficos el valor del pixel de uno entre (?) el segundo traslape protegido encriptado, (B) el primer traslape confidencial encriptado y (3) una superficie primaria.
97. Un dispositivo de computación de acuerdo con la reivindicación 90, en donde la solicitud de los medios para solicitar incluyen cuando menos uno entre (?) una caja de contorno de fuente y destino de la cuando menos una superficie de traslape encriptada, (B) una clave de color de destino de la cuando menos una superficie de traslape encriptada, (C) en el caso del primer traslape confidencial encriptado, una especificación de un Indice de clave de encriptación del contenido de una memoria intermedia trasera de traslape a la cual los datos van a ser invertidos (D) en el caso del segundo traslape protegido encriptado, una especificación de un lugar de memoria en donde cuando menos uno de un código de redundancia cíclica (CRC) , una medida de integridad y un valor de síntesis del contenido del traslape desencriptado se van a escribir, (E) una caja de contorno de fuente y destino de cuando menos una superficie primaria encriptada, y (F) una clave de color de destino de la cuando menos una superficie primaria encriptada.
98. Un dispositivo de computación de acuerdo con la reivindicación 97, en donde uno entre una aplicación y un dispositivo calcula el cuando menos uno del código de redundancia cíclica, la medida de integridad y el valor de síntesis si uno entre la aplicación y el dispositivo se han preocupado por la integridad del contenido.
99. Un dispositivo de computación de acuerdo con la reivindicación 79, en donde cuando menos una memoria intermedia de comandos enviada a una unidad de descodificación de video de la cuando menos una unidad de procesamiento de gráficos incidente a dicha solicitud del medio para solicitar es encriptada mediante la cuando menos una entre una aplicación y un dispositivo y desencriptada por la unidad de descodificación de video en comunicación con la unidad de procesamiento criptográfico.
100. Un dispositivo de computación de acuerdo con la reivindicación 99, que además comprende medios para detectar el intento de violación en cuando menos una memoria intermedia de comandos uno de (A) usando dos pases antes del consumo de la cuando menos una memoria intermedia de comandos y (B) después de que la memoria intermedia de comandos ha sido consumida.
101. Un dispositivo de computación con módulos ejecutables por computadora que además comprende instrucciones ejecutables por computadora para proteger criptográficamente contenido seguro en conexión con un sistema gráfico confiado de un dispositivo de computación, el sistema de gráficos confiado tiene memoria de video, cuando menos una unidad de procesamiento de gráficos (GPU) y un dispositivo de procesamiento criptográfico comunicativamente acoplado a la cuando menos una unidad de procesamiento de gráficos, que comprende: medios para solicitar, por uno de una aplicación y un dispositivo, que el sistema gráfico realice uno entre el procesamiento y la representación de contenido seguro, en donde el medio para la solicitud incluye medios para transmitir por uno entre una aplicación y un dispositivo una clave de sesión al sistema de gráficos para la verificación por el dispositivo de procesamiento criptográfico y transmitir el contenido seguro a la cuando menos una porción encriptada de la memoria de video; medios para desencriptar el contenido de la cuando menos una porción encriptada de la memoria de video por un mecanismo de desencriptación de una unidad de entrada de la cuando menos una unidad de procesamiento de gráficos, en donde el mecanismo de desencriptación está en comunicación con el dispositivo de procesamiento criptográfico; medios para realizar uno entre el procesamiento y la representación sobre el contenido desencriptado mediante la cuando menos una unidad de procesamiento de gráficos; medios para encriptar el contenido con un mecanismo de encriptación/desencriptación de una unidad de salida de la cuando menos una unidad de procesamiento de gráficos; y medios para sacar el contenido encriptado de la cuando menos una unidad de procesamiento de gráficos.
102. Un dispositivo de computación de acuerdo con la reivindicación 101, en donde la unidad de entrada es una unidad de raapeo de texturas y la unidad de salida es una unidad de mezclado alfa, en donde la cuando menos una porción encriptada de la memoria de video es una superficie de textura encriptada.
103. Un dispositivo de computación de acuerdo con la reivindicación 101, en donde el contenido seguro es uno entre datos de textura, texto llano y macrobloques de video.
104. Un dispositivo de computación de acuerdo con la reivindicación 101, en donde rl medio de encriptación y el medio de desencriptación incluye medio para encriptar y medio para desencriptar usando cifradores en bloque, respectivamente .
105. Un dispositivo de computación de acuerdo con la reivindicación 102, en donde el mecanismo de desencriptación de la unidad de mapeo de texturas desencripta en un llenado de linea caché y en donde el mecanismo de encriptación/desencriptación de la unidad de mezclado alfa encripta antes de escribir.
106. Un dispositivo de computación de acuerdo con la reivindicación 102, que además incluye medios para desencriptar mediante el mecanismo de encriptación/desencriptación de la unidad de mezclado alfa cuando se lee una linea caché a partir de la memoria intermedia de color en la memoria de video.
107. Un dispositivo de computación de acuerdo con la reivindicación 101, que además incluye: medios para invertir el contenido de salida encriptado de una superficie primaria tras ser encriptada a una superficie primaria frontal encriptada de la memoria de video; segundo medio de desencriptación del contenido de salida encriptado mediante un segundo mecanismo de desencriptación de la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico; y segundo medio de salida del contenido de salida.
108. Un dispositivo de computación de acuerdo con la reivindicación 101, en donde el medio de salida incluye sacar el contenido encriptado a una cadena de inversión de traslape confidencial y los módulos ejecutables por computadora además incluyen: medios para invertir el contenido de salida encriptado de una superficie confidencial tras ser encriptada a una superficie confidencial frontal encriptada mediante lo cual la encriptación mediante el mecanismo de encriptación/desencriptación incluye medios para encriptar utilizando encriptación cifrada en flujo; y segundo medio de desencriptación del contenido de salida encriptado mediante un mecanismo de desencriptación cifrado en flujo de la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico.
109. Un dispositivo de computación de acuerdo con la reivindicación 108, que además comprende: medios para codificar un lugar dentro del contenido antes de la encriptación mediante el medio para encriptar; y medios para descodificar el lugar dentro del contenido después déla desencriptación por el segundo medio para desencriptar , mediante lo cual el lugar es externamente inalcanzable preservando la integridad de un mapeo de texto llano-texto cifrado.
110. Un dispositivo de computación de acuerdo con la reivindicación 101, en donde si lo que sale de la salida es diferente del contenido seguro de la solicitud ajustada para cualquier procesamiento realizado en el contenido seguro por la cuando menos una unidad de procesamiento de gráficos, uno entre la aplicación y el dispositivo es alertado sobre la diferencia .
111. Un dispositivo de computación de acuerdo con la reivindicación 101, los módulos ejecutables por computadora además incluyen: medios para re-encriptar el contenido mediante la cuando menos una unidad de procesamiento de gráficos en comunicación con el dispositivo de procesamiento criptográfico antes de la salida por los medios para la salida; y medios para desencriptar el contenido re-encriptado mediante cuando menos un segundo dispositivo de procesamiento criptográfico de un dispositivo de computación externo.
112. Un dispositivo de computación de acuerdo con la reivindicación 111, en donde el dispositivo de computación externo es uno entre (A) un monitor, (B) una caja descodificadora y (C) un dispositivo de representación de procesamiento de señales digitales (DSP) .
113. Un dispositivo de computación de acuerdo con la reivindicación 101, en donde las texturas encriptadas y las superficies fuera de pantalla encriptadas entregadas por uno entre una aplicación y un dispositivo se codifican con cifradores en bloque, y el uno entre la aplicación y el dispositivo configuran los cifradores de bloque con un formato de configuración predefinido que convierte un lugar (x,y) en el contenido a un desf samiento para cuando menos un YUV, RGB, YUY2 y formatos planos empacados.
114. Un dispositivo de computación de acuerdo con la reivindicación 101, en donde cuando menos una memoria intermedia de comandos enviada una unidad de descodificación de video de la cuando menos una unidad de procesamiento de gráficos incidente a dicha solicitud del medio para solicitar es encriptada por la cuando menos una entre un aplicación y un dispositivo y desencriptada por la unidad de descodificación de video en comunicación con la unidad de procesamiento criptográfico.
115. Un dispositivo de computación de acuerdo con la reivindicación 101, los módulos ejecutables por computadora además comprenden medios para detectar el intento de violación de la cuando menos una memoria intermedia de comandos uno de (A) usando dos pases antes del consumo de la cuando menos una memoria intermedia de comandos y (B) después de que la memoria intermedia de comandos ha sido consumida.
MXPA03002376A 2001-12-04 2002-12-03 Metodos y sistema para proteger criptograficamente contenido seguro. MXPA03002376A (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US33761701P 2001-12-04 2001-12-04
US33914301P 2001-12-10 2001-12-10
US10/124,922 US7203310B2 (en) 2001-12-04 2002-04-18 Methods and systems for cryptographically protecting secure content
PCT/US2002/038827 WO2003048939A1 (en) 2001-12-04 2002-12-03 Methods and systems for cryptographically protecting secure content

Publications (1)

Publication Number Publication Date
MXPA03002376A true MXPA03002376A (es) 2003-07-28

Family

ID=27383184

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA03002376A MXPA03002376A (es) 2001-12-04 2002-12-03 Metodos y sistema para proteger criptograficamente contenido seguro.

Country Status (12)

Country Link
US (1) US7203310B2 (es)
EP (1) EP1343321B1 (es)
JP (1) JP4522645B2 (es)
CN (2) CN101008967B (es)
AR (1) AR037628A1 (es)
AT (1) ATE420533T1 (es)
AU (1) AU2002359611A1 (es)
CA (1) CA2434328C (es)
DE (1) DE60230716D1 (es)
MX (1) MXPA03002376A (es)
TW (1) TWI269169B (es)
WO (1) WO2003048939A1 (es)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6966837B1 (en) 2001-05-10 2005-11-22 Best Robert M Linked portable and video game systems
GB2379299B (en) * 2001-09-04 2006-02-08 Imagination Tech Ltd A texturing system
US20060075507A1 (en) * 2001-09-06 2006-04-06 Sonic Solutions Secure protocols for use with microsoft directshow filters
US7840803B2 (en) 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
GB0212308D0 (en) * 2002-05-28 2002-07-10 Symbian Ltd Trusted user interface for a secure mobile wireless device
US20030226029A1 (en) * 2002-05-29 2003-12-04 Porter Allen J.C. System for protecting security registers and method thereof
CN1679322A (zh) * 2002-08-28 2005-10-05 皇家飞利浦电子股份有限公司 水印检测的方法和装置
JP2004133087A (ja) * 2002-10-09 2004-04-30 Sony Corp ブロック暗号方法およびブロック暗号回路
US8131649B2 (en) 2003-02-07 2012-03-06 Igware, Inc. Static-or-dynamic and limited-or-unlimited content rights
US20100017627A1 (en) 2003-02-07 2010-01-21 Broadon Communications Corp. Ensuring authenticity in a closed content distribution system
US7370319B2 (en) * 2003-02-11 2008-05-06 V.I. Laboratories, Inc. System and method for regulating execution of computer software
US8225290B2 (en) * 2003-02-11 2012-07-17 V. i. Laboratories, Inc. Systems and methods for regulating execution of computer software
US20040264927A1 (en) * 2003-06-30 2004-12-30 Microsoft Corporation Modular architecture to unify the playback of DVD technologies
US7949132B2 (en) 2003-07-01 2011-05-24 Microsoft Corporation Modular architecture to unify the playback of DVD technologies
US20090011828A1 (en) * 2003-07-04 2009-01-08 Koninklijke Philips Electronics N.V. Device for running copy-protected software
US7703141B2 (en) * 2004-03-11 2010-04-20 Microsoft Corporation Methods and systems for protecting media content
JP4698982B2 (ja) * 2004-04-06 2011-06-08 株式会社日立製作所 暗号処理を行うストレージシステム
US20060242406A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US9264265B1 (en) * 2004-09-30 2016-02-16 Nvidia Corporation System and method of generating white noise for use in graphics and image processing
US8804609B2 (en) * 2004-11-02 2014-08-12 Apple Inc. Systems and methods for use with orthogonal frequency division multiplexing
WO2006071380A2 (en) * 2004-11-12 2006-07-06 Pufco, Inc. Securely field configurable device
US20060184785A1 (en) * 2005-02-16 2006-08-17 David Carroll Challener Apparatus, system, and method for securing I/O communications between a blade and a peripheral interface device of a blade-based computer system
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US9363481B2 (en) * 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US8249140B2 (en) 2005-12-30 2012-08-21 Intel Corporation Direct macroblock mode techniques for high performance hardware motion compensation
EP1977511B1 (en) 2006-01-24 2011-04-06 Verayo, Inc. Signal generator based device security
US7916864B2 (en) * 2006-02-08 2011-03-29 Nvidia Corporation Graphics processing unit used for cryptographic processing
US7746350B1 (en) * 2006-06-15 2010-06-29 Nvidia Corporation Cryptographic computations on general purpose graphics processing units
US7890747B2 (en) * 2006-07-06 2011-02-15 Accenture Global Services Limited Display of decrypted data by a graphics processing unit
US20080097971A1 (en) * 2006-10-18 2008-04-24 Telcordia Applied Research Center Taiwan Company Peer-to-peer based secondary key search method and system for cluster database
EP2137662A1 (en) 2007-03-13 2009-12-30 Nxp B.V. Encryption and decryption of a dataset in at least two dimensions
US8538015B2 (en) 2007-03-28 2013-09-17 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US20080263366A1 (en) * 2007-04-19 2008-10-23 Microsoft Corporation Self-verifying software to prevent reverse engineering and piracy
US8594322B2 (en) * 2007-07-10 2013-11-26 Stmicroelectronics S.R.L. Encoding/decoding apparatus
US8924309B2 (en) 2007-08-08 2014-12-30 Imation Corp. Method of providing assured transactions by watermarked file display verification
US20090067629A1 (en) * 2007-09-06 2009-03-12 Paltronics, Inc. Table-based encryption/decryption techniques for gaming networks, and gaming networks incorporating the same
CN101796837B (zh) * 2007-09-11 2012-12-19 Lg电子株式会社 安全签名方法、安全认证方法和iptv系统
WO2009079050A2 (en) * 2007-09-19 2009-06-25 Verayo, Inc. Authentication with physical unclonable functions
US20090079746A1 (en) * 2007-09-20 2009-03-26 Apple Inc. Switching between graphics sources to facilitate power management and/or security
AU2008314461A1 (en) 2007-10-19 2009-04-23 Imation Corp. Method of providing assured transactions using secure transaction appliance and watermark verification
US20100262991A1 (en) * 2007-11-01 2010-10-14 Lg Electronics Inc. Method for processing data and iptv receiving device
US9307179B1 (en) * 2007-11-13 2016-04-05 Nvidia Corporation Method and system for protecting content in graphics memory
US8478959B1 (en) 2007-11-13 2013-07-02 Nvidia Corporation Method and system for protecting content in graphics memory
US9069990B2 (en) * 2007-11-28 2015-06-30 Nvidia Corporation Secure information storage system and method
JP5052367B2 (ja) * 2008-02-20 2012-10-17 株式会社リコー 画像処理装置、認証パッケージインストール方法、認証パッケージインストールプログラム、及び記録媒体
US8646052B2 (en) * 2008-03-31 2014-02-04 Intel Corporation Method and apparatus for providing a secure display window inside the primary display
US8156565B2 (en) * 2008-04-28 2012-04-10 Microsoft Corporation Hardware-based protection of secure data
US8393008B2 (en) * 2008-05-21 2013-03-05 Microsoft Corporation Hardware-based output protection of multiple video streams
US9817680B1 (en) 2008-08-04 2017-11-14 Open Invention Network, Llc Application configuration tool
US8736626B2 (en) * 2008-08-26 2014-05-27 Matrox Graphics Inc. Method and system for cryptographically securing a graphics system
US9240927B2 (en) 2009-02-26 2016-01-19 Qualcomm Incorporated Methods and apparatus for enhanced overlay state maintenance
US8521821B2 (en) * 2009-03-17 2013-08-27 Brigham Young University Encrypted email based upon trusted overlays
TW201040678A (en) * 2009-05-13 2010-11-16 Acrosser Technology Co Ltd Multi-point universal encryption transmission interface apparatus
JP5018919B2 (ja) * 2010-03-19 2012-09-05 コニカミノルタビジネステクノロジーズ株式会社 情報処理装置、コンテンツ管理方法およびコンテンツ管理プログラム
US8886935B2 (en) * 2010-04-30 2014-11-11 Kabushiki Kaisha Toshiba Key management device, system and method having a rekey mechanism
CN102385760A (zh) * 2010-08-27 2012-03-21 国际商业机器公司 用于保护模型数据的方法及系统
FR2971599B1 (fr) * 2011-02-11 2013-03-15 Jean Luc Leleu Procede de transaction securisee a partir d'un terminal non securise
US8560453B2 (en) * 2011-06-30 2013-10-15 Intel Corporation Method and apparatus for dynamic, real-time ad insertion based on meta-data within a hardware based root of trust
CN102238360B (zh) * 2011-07-15 2013-11-13 深圳市环球数码科技有限公司 一种用于防止盗版视频的方法和设备
US9262166B2 (en) 2011-11-30 2016-02-16 Intel Corporation Efficient implementation of RSA using GPU/CPU architecture
GB2511668A (en) * 2012-04-12 2014-09-10 Supercell Oy System and method for controlling technical processes
US20140012704A1 (en) 2012-07-05 2014-01-09 Google Inc. Selecting a preferred payment instrument based on a merchant category
US20140090033A1 (en) * 2012-09-21 2014-03-27 Amazon Technologies, Inc. Context Aware Content Distribution
US9092767B1 (en) 2013-03-04 2015-07-28 Google Inc. Selecting a preferred payment instrument
US9111123B2 (en) 2013-06-28 2015-08-18 International Business Machines Corporation Firmware for protecting data from software threats
US9507961B2 (en) * 2013-07-01 2016-11-29 Qualcomm Incorporated System and method for providing secure access control to a graphics processing unit
US9501668B2 (en) 2013-09-25 2016-11-22 Intel Corporation Secure video ouput path
US10038553B2 (en) * 2013-12-30 2018-07-31 Empire Technology Development Llc Information rendering scheme
EP2891997A1 (en) * 2014-01-06 2015-07-08 Fujitsu Limited Methods and apparatus for including a confidential structural component in a third party remote product simulation
US9858572B2 (en) 2014-02-06 2018-01-02 Google Llc Dynamic alteration of track data
US9318221B2 (en) 2014-04-03 2016-04-19 Winbound Electronics Corporation Memory device with secure test mode
KR102218202B1 (ko) 2014-08-01 2021-02-23 삼성전자주식회사 반도체 장치
US11443072B2 (en) * 2018-06-29 2022-09-13 Microsoft Technology Licensing, Llc Peripheral device with resource isolation
US11126757B2 (en) 2018-10-19 2021-09-21 Microsoft Technology Licensing, Llc Peripheral device
CN109589608A (zh) * 2018-12-19 2019-04-09 网易(杭州)网络有限公司 保护游戏数据的方法和装置
US11281251B2 (en) 2019-01-04 2022-03-22 Baidu Usa Llc Data processing accelerator having a local time unit to generate timestamps
US11693970B2 (en) 2019-01-04 2023-07-04 Baidu Usa Llc Method and system for managing memory of data processing accelerators
CN112236972B (zh) 2019-01-04 2023-06-16 百度时代网络技术(北京)有限公司 用于导出会话密钥以确保主机系统和数据处理加速器之间的信息交换信道的方法和系统
US11409534B2 (en) 2019-01-04 2022-08-09 Baidu Usa Llc Attestation protocol between a host system and a data processing accelerator
CN112262546B (zh) * 2019-01-04 2024-04-23 百度时代网络技术(北京)有限公司 用于数据处理加速器的密钥分配和交换的方法和系统
US11609766B2 (en) 2019-01-04 2023-03-21 Baidu Usa Llc Method and system for protecting data processed by data processing accelerators
US11616651B2 (en) * 2019-01-04 2023-03-28 Baidu Usa Llc Method for establishing a secure information exchange channel between a host system and a data processing accelerator
US11328075B2 (en) 2019-01-04 2022-05-10 Baidu Usa Llc Method and system for providing secure communications between a host system and a data processing accelerator
EP3794477B1 (en) 2019-01-04 2023-05-10 Baidu.com Times Technology (Beijing) Co., Ltd. Method and system for validating kernel objects to be executed by a data processing accelerator of a host system
EP3794772A4 (en) 2019-01-04 2021-12-29 Baidu.com Times Technology (Beijing) Co., Ltd. Data processing accelerator having security unit to provide root trust services
JP7300845B2 (ja) 2019-02-15 2023-06-30 三菱重工業株式会社 制御装置、産業用制御システムおよび暗号鍵寿命延長方法
US11496314B2 (en) * 2019-12-18 2022-11-08 Intel Corporation Integrity protected command buffer execution
CN113127034B (zh) * 2021-04-09 2024-02-09 山东英信计算机技术有限公司 一种基于bmc对板卡进行更新的方法、系统、设备及介质
FR3129747A1 (fr) 2021-11-29 2023-06-02 Commissariat A L'energie Atomique Et Aux Energies Alternatives Dispositif d’affichage a dechiffrement local des donnees numeriques

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5175830A (en) * 1989-06-16 1992-12-29 International Business Machines Corporation Method for executing overlays in an expanded memory data processing system
DE69029065T2 (de) 1989-07-28 1997-03-06 Texas Instruments Inc Logische Schaltung und Verfahren zum Wiederordnen für einen graphischen Videoanzeigespeicher
EP0610581A3 (en) * 1993-01-29 1994-12-28 Ibm Process for displaying flow data, produced by a parallel processing computer.
US6101276A (en) * 1996-06-21 2000-08-08 Compaq Computer Corporation Method and apparatus for performing two pass quality video compression through pipelining and buffer management
US5825879A (en) * 1996-09-30 1998-10-20 Intel Corporation System and method for copy-protecting distributed video content
US5920861A (en) 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
US5898779A (en) * 1997-04-14 1999-04-27 Eastman Kodak Company Photograhic system with selected area image authentication
US6167136A (en) * 1997-05-16 2000-12-26 Software Security, Inc. Method for preventing copying of digital video disks
JP4273535B2 (ja) * 1998-05-12 2009-06-03 ソニー株式会社 データ伝送制御方法、データ伝送システム、データ受信装置及びデータ送信装置
US6330624B1 (en) 1999-02-09 2001-12-11 International Business Machines Corporation Access limiting to only a planar by storing a device public key only within the planar and a planar public key only within the device
JP2000279637A (ja) 1999-03-30 2000-10-10 Square Co Ltd ゲーム装置、ゲーム表示制御方法、およびコンピュータ読取り可能な記録媒体
US6289455B1 (en) 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
JP2001103280A (ja) * 1999-09-30 2001-04-13 Canon Inc 情報処理方法とその装置
US6449719B1 (en) * 1999-11-09 2002-09-10 Widevine Technologies, Inc. Process and streaming server for encrypting a data stream
US6704868B1 (en) * 1999-11-12 2004-03-09 International Business Machines Corporation Method for associating a pass phase with a secured public/private key pair
EP1133190A1 (en) 2000-03-06 2001-09-12 Canon Kabushiki Kaisha Moving image generation apparatus, moving image playback apparatus, their control method, and storage medium
JP2001333425A (ja) * 2000-05-18 2001-11-30 Canon Inc 動画像出力装置、動画像再生装置、携帯端末、及びそれらの制御方法並びに記憶媒体
US20030079222A1 (en) * 2000-10-06 2003-04-24 Boykin Patrick Oscar System and method for distributing perceptually encrypted encoded files of music and movies
US6957340B1 (en) * 2000-11-28 2005-10-18 Xilinx, Inc. Encryption key for multi-key encryption in programmable logic device
US7184546B2 (en) 2001-02-13 2007-02-27 Arkion S.L. Method based on an algorithm capable of being graphically implemented to be used for the generation of filtering of data sequences and crytographic applications
US20020150248A1 (en) * 2001-03-06 2002-10-17 Kovacevic Branko D. System for digital stream reception via memory buffer and method thereof
US7218739B2 (en) 2001-03-09 2007-05-15 Microsoft Corporation Multiple user authentication for online console-based gaming
US7055038B2 (en) 2001-05-07 2006-05-30 Ati International Srl Method and apparatus for maintaining secure and nonsecure data in a shared memory system

Also Published As

Publication number Publication date
CA2434328A1 (en) 2003-06-12
US7203310B2 (en) 2007-04-10
CN1650268A (zh) 2005-08-03
AU2002359611A1 (en) 2003-06-17
JP4522645B2 (ja) 2010-08-11
CN101008967B (zh) 2012-08-29
TW200301857A (en) 2003-07-16
DE60230716D1 (de) 2009-02-26
CN101008967A (zh) 2007-08-01
JP2003284024A (ja) 2003-10-03
ATE420533T1 (de) 2009-01-15
WO2003048939A1 (en) 2003-06-12
EP1343321A1 (en) 2003-09-10
CN100595736C (zh) 2010-03-24
TWI269169B (en) 2006-12-21
CA2434328C (en) 2011-04-19
AR037628A1 (es) 2004-11-17
US20030140241A1 (en) 2003-07-24
EP1343321B1 (en) 2009-01-07

Similar Documents

Publication Publication Date Title
MXPA03002376A (es) Metodos y sistema para proteger criptograficamente contenido seguro.
KR101030354B1 (ko) 그래픽 시스템에서 컴포넌트들의 인증을 위한 방법, 시스템, 컴퓨팅 디바이스, 및 컴퓨터 판독가능 매체
CN101661544B (zh) 在主显示器内提供安全显示窗口的方法和设备
CA2771038C (en) Secure media path methods, systems, and architecture
RU2327215C2 (ru) Системы и способы для защиты выходного сигнала видеоплаты
RU2308077C2 (ru) Способы и системы для криптографической защиты охраняемого содержимого

Legal Events

Date Code Title Description
FG Grant or registration