BRPI0205818B1 - Method, medium and device to cryptographically protect security content - Google Patents

Method, medium and device to cryptographically protect security content Download PDF

Info

Publication number
BRPI0205818B1
BRPI0205818B1 BRPI0205818-9A BR0205818A BRPI0205818B1 BR PI0205818 B1 BRPI0205818 B1 BR PI0205818B1 BR 0205818 A BR0205818 A BR 0205818A BR PI0205818 B1 BRPI0205818 B1 BR PI0205818B1
Authority
BR
Brazil
Prior art keywords
encrypted
content
gpu
computing device
decrypting
Prior art date
Application number
BRPI0205818-9A
Other languages
Portuguese (pt)
Other versions
BR0205818A (en
Inventor
Paul England
Marcus Peinado
Nicholas P Wilt
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
Priority claimed from US10/125,170 external-priority patent/US7380130B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority claimed from PCT/US2002/038827 external-priority patent/WO2003048939A1/en
Publication of BR0205818A publication Critical patent/BR0205818A/en
Publication of BRPI0205818B1 publication Critical patent/BRPI0205818B1/en

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

Description

"MÉTODO, MEIO E DISPOSITIVO PARA CRIPTOGRAFICAMENTE PROTEGER CONTEÚDO DE SEGURANÇA" REFERÊNCIA RECÍPROCA AOS PEDIDOS DE PATENTE RELACIONADOS"METHOD, METHOD AND DEVICE FOR CRYPTOGRAPHICALLY PROTECTING SAFETY CONTENT" REFERENCE TO RELATED PATENT APPLICATIONS

Este pedido de patente reivindica o beneficio dos pedidos de patente provisórios números de série 60/337.617 depositado em 4 de dezembro de 2001 e 60/339.143 depositado em 10 de dezembro de 2001 e está relacionado ao Pedido de Patente U.S. copendente de designação comum n.° 10/125.170 depositado em 18 de abril de 2002. AVISO DOS DIREITOS AUTORAIS E PERMISSÃO: Uma parte da divulgação deste documento de patente pode conter material gue é submetido à proteção dos direitos autorais. O proprietário dos direitos autorais não tem nenhuma objeção à reprodução de fac-simile por gualguer pessoa do documento de patente ou divulgação da patente, visto gue aparece nos arguivos ou registros de patentes Patent and Trademark Office, mas do contrário reserva todos e guaisguer direitos autorais. O aviso a seguir deve aplicar-se a este documento: Copyright © 2001, Microsoft Corp.This patent application claims the benefit of provisional patent applications serial numbers 60 / 337,617 filed December 4, 2001 and 60 / 339,143 filed December 10, 2001 and is related to commonly assigned copending US Patent Application no. No. 10 / 125,170 filed April 18, 2002. COPYRIGHT NOTICE AND PERMISSION: Part of the disclosure of this patent document may contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by any person of the patent document or patent disclosure, as it appears in the patent and patent filings, but otherwise reserves all and guaisguer copyright . The following notice should apply to this document: Copyright © 2001, Microsoft Corp.

CAMPO DA INVENÇÃO A presente invenção diz respeito aos métodos e sistemas para criptograficamente proteger conteúdo de segurança. Mais particularmente, a presente invenção diz respeito às técnicas para criptograficamente proteger o conteúdo de segurança enviado por canal confidencial de gráficos, fornecendo tanto confiabilidade guanto proteção à falsificação com respeito ao conteúdo. FUNDAMENTO DA INVENÇÃO: A Internet e muitas outras fontes e aplicações a-gora fornecem uma vasta disposição de meios de fluxo e fixos ou outro conteúdo para ouvir, ver, processar, armazenar e, do contrário, transmitir. No entanto, atualmente não há uma forma prática de capturar, gravar ou transmitir os meios ou conteúdo de fluxo ou fixo de uma maneira protegida contra cópia de modo que um pirata não pode interceptar o fluxo em algum ponto ao longo do canal confidencial, ou à medida que o conteúdo está sendo processado ou enquanto o conteúdo está sendo transmitido, e toma posse de uma cópia ou altera o conteúdo. Este problema existiu com relação aos dispositivos de transmissão ou gravação de meios no passado, por exemplo, VCRs para conteúdo de televisão, ou gravadores de fita para sinais de áudio, mas com pelo menos uma diferença fundamental. Uma vez o conteúdo dos meios digitais podem ser gravados, virtualmente, sem nenhuma perda de sinal, isto expõe um "risco" para os proprietários dos direitos autorais que seus trabalhos serão livremente compartilhados (pirateados) sem compensação. Com VCRs e gravadores de fita, o(s) dispositivo (s) e meios de transmissão atraem ruído ou corrupção dos dados dentro do processo de gravação. Com meios digitais de fluxo ou fixos, não há nenhuma razão porque conversões e retransmissões virtualmente com menos perda não podem ser afetadas, pelo menos nos limites das capacidades do ouvido ou olho humano, e não há nenhuma razão porque os dados digitais não adulterados não podem ser armazenados e livremente distribuídos. Assim, pode ser desejável impedir redistribuição não restringida de dados digitais porque existe pouca diferença entre o que os proprietários de direitos autorais podem fornecer por uma remuneração e o que um pirata pode fornecer de grátis. Além do mais, com respeito às comunicações que são desejados ser confidenciais, tais como transações e-commerce, é importante para o usuário manter-se no diálogo de modo que nenhum terceiro possa estar a par das transações. Assim, com respeito ao conteúdo de uma fonte confiável, atualmente não há nenhuma forma prática para os dados ser 11 seguramente" processados ou transmitidos em um computador do usuário sem evitar pirataria, ou corrupção.FIELD OF THE INVENTION The present invention relates to methods and systems for cryptographically protecting security content. More particularly, the present invention relates to techniques for cryptographically protecting security content sent over a confidential graphics channel, providing both reliability and protection against forgery with respect to content. BACKGROUND OF THE INVENTION: The Internet and many other sources and applications now provide a wide array of streaming and fixed media or other content for listening, viewing, processing, storing and otherwise transmitting. However, there is currently no practical way to capture, record or transmit streaming or fixed media or content in a copy protected manner so that a pirate cannot intercept the stream at any point along the confidential channel, or at any time. as the content is being processed or while the content is being transmitted, and takes possession of a copy or changes the content. This problem has existed with respect to media transmission or recording devices in the past, for example, VCRs for television content, or tape recorders for audio signals, but with at least one fundamental difference. Since digital media content can be recorded virtually without any loss of signal, this poses a "risk" to copyright owners that their works will be freely shared (pirated) without compensation. With VCRs and tape recorders, the device (s) and transmission media attract noise or data corruption within the recording process. With streaming or fixed digital media, there is no reason why virtually less lossy conversions and retransmissions cannot be affected, at least within the limits of the capabilities of the human ear or eye, and there is no reason why unadulterated digital data cannot be stored and freely distributed. Thus, it may be desirable to prevent unrestricted redistribution of digital data because there is little difference between what copyright owners can provide for a fee and what a pirate can provide for free. In addition, with respect to communications that are desired to be confidential, such as e-commerce transactions, it is important for the user to stay in dialogue so that no third party can be aware of the transactions. Thus, with respect to content from a trusted source, there is currently no practical way for data to be safely processed or transmitted on a user's computer without preventing piracy or corruption.

Em particular, uma vez o conteúdo é transmitido em canal confidencial entre um sistema de computação hospedeiro, uma ou mais unidades de processamento de gráficos (GPUs), e um dispositivo de apresentação, por exemplo, um monitor, existem várias oportunidades para um pirata ou outra terceira parte não autorizada acampar em uma linha ou sinal, e piratear ou corromper o sinal. Além do mais, à medida que os diálogos do usuário tornam-se mais sofisticados através dos serviços de envio de mensagens e teleconferência de vídeo, fornecendo um canal confidente para conteúdo de segurança de onde quer que originou torna-se o mais importante avanço.In particular, once content is transmitted over a confidential channel between a host computer system, one or more graphics processing units (GPUs), and a display device, for example, a monitor, there are several opportunities for a hacker or another unauthorized third party camping on a line or signal, and pirating or corrupting the signal. What's more, as user dialogues become more sophisticated through messaging and video teleconferencing services, providing a trusted channel for secure content from wherever it originates becomes the most important advance.

Além do mais, é óbvio que gerações futuras de sistemas de operação, dispositivos de computação e aplicações utilizarão mais força computacional das GPUs para aplicações de comércio, ao contrário de extrair grande parte da força computacional das CPUs como nos computadores pessoais (PCs) de hoje. Desse modo, garantindo que o conteúdo que é enviado para as GPUs através de aplicações de "gráficos confiáveis" será uma característica fundamental para os dispositivos de computação do futuro, e não adequadamente direcionado pelos presentes sistemas de computação.What's more, it is obvious that future generations of operating systems, computing devices, and applications will use more computing power from GPUs for commerce applications, as opposed to drawing much of the computing power from CPUs like today's personal computers (PCs). . In this way, ensuring that content that is sent to GPUs through "reliable graphics" applications will be a key feature of tomorrow's computing devices, and not properly targeted by present computing systems.

Este problema de fornecer um canal confidente para conteúdo confiável pode ser considerado como sendo duplo: (1) deve-se garantir que o conteúdo confiável não pode ser copiado ou inspecionado em algum ponto fraco durante o canal confidente (confiabilidade) e (2) deve-se assegurar que o canal confidente evita corrupção não autorizada de dados no canal confidente (protegido). No contexto de segurança de sistema, complexidade é um risco porque torna-se mais difícil comprovar uma segurança de sistema. Quanto um aeroporto ou outro cenário de segurança, quanto mais pontos de entrada e saída existem no sistema, mais difícil torna-se garantir segurança. Com este respeito, atualmente não há nenhum meio pelo qual o volume de funcionalidade da GPU e o(s) aciona-dor(es) de apresentação podem ser confiáveis em termos de tanto confiabilidade quanto capacidade de proteção. Assim, pode ser desejável implementar um ambiente de gráficos confiável com relação a um dispositivo de computação que recebe conteúdo de uma fonte confiável, de modo que um usuário do dispositivo possa ser assegurado que o conteúdo não pode ser copiado sem autorização e não pode ser falsificado ou alterado por uma terceira parte.This problem of providing a trusted channel for trusted content can be considered to be twofold: (1) one must ensure that trusted content cannot be copied or inspected at any weak point during the trusted channel (reliability) and (2) must Ensure that the confidant channel prevents unauthorized corruption of data on the confidant (protected) channel. In the context of system security, complexity is a risk because proving system security becomes more difficult. As an airport or other security scenario, the more entry and exit points there are in the system, the harder it becomes to ensure security. In this regard, there is currently no means by which the GPU's volume of functionality and presentation driver (s) can be reliable in terms of both reliability and protection capability. Thus, it may be desirable to implement a reliable graphics environment with respect to a computing device that receives content from a trusted source, so that a user of the device can be assured that the content cannot be copied without authorization and cannot be falsified. or amended by a third party.

SUMÁRIO DA INVENÇÃOSUMMARY OF THE INVENTION

Em vista do anterior, a presente invenção fornece métodos e sistemas para criptograficamente proteger conteúdo de segurança com relação a um subsistema de gráficos de um dispositivo de computação. As técnicas são implementadas para criptografar os conteúdos de memória de vídeo de modo que software não autorizado não pode ganhar acesso significativo a ele, assim satisfazendo o objetivo de confidência. Além disso, um mecanismo para detecção de falsificação é fornecido de modo que há uma ciência quando os dados tiverem sido alterados de alguma forma, assim satisfazendo o objetivo de proteção. Em várias modalidades, a invenção descreve como criptografar os conteúdos de superfícies de sobreposição e/ou armazenamento temporários de comando, e/ou descreve como permitir a GPU operar em conteúdo criptografado ao mesmo tempo impedindo sua disponibilidade a terceiros, dispositivos ou software não confiáveis.In view of the foregoing, the present invention provides methods and systems for cryptographically protecting security content with respect to a graphics subsystem of a computing device. Techniques are implemented to encrypt video memory contents so that unauthorized software cannot gain meaningful access to it, thereby fulfilling the purpose of confidentiality. In addition, a mechanism for counterfeiting detection is provided so that there is a science when data has been altered in some way, thus fulfilling the protection objective. In various embodiments, the invention describes how to encrypt the contents of temporary command overlay and / or storage surfaces, and / or describes how to enable the GPU to operate on encrypted content while preventing its availability to untrusted third parties, devices or software.

Os métodos da invenção diferentemente incluem técnicas para criptograficamente proteger conteúdo de segurança com relação a um sistema de gráficos confiável tendo memória de vídeo, unidade(s) de processamento de gráficos (GPU(s)) e um dispositivo de processamento criptográfico comunicativa-mente acoplado à(s) GPU(s), compreendendo solicitar, por uma aplicação ou dispositivo, o sistema de gráficos para executar o processamento ou transmissão do conteúdo de segurança, em que o requisito inclui transmitir pela aplicação ou dispositivo uma chave da sessão para o sistema de gráficos e transmitir o conteúdo de segurança para a(s) parte(s) crip- tografada(s) da memória de vídeo que decifra o conteúdo da(s) parte(s) criptografada(s) da memória de vídeo pela(s) GPU(s) em comunicação com o dispositivo de processamento criptográfico, executando o processamento ou transmissão do conteúdo decriptografado pela(s) GPU(s) e dando saída do conteúdo da(s) GPU(s). Métodos similares da invenção diferentemente incluem solicitar, por uma aplicação ou dispositivo, o sistema de gráficos para executar o processamento ou transmissão do conteúdo de segurança, em que o requisito inclui transmitir pela aplicação ou dispositivo uma chave da sessão para o sistema de gráficos para verificação pelo dispositivo de processamento criptográfico e transmitir o conteúdo de segurança para a(s) parte(s) criptografada(s) da memória de vídeo decifrando o conteúdo da(s) parte(s) criptografada(s) da memória de vídeo por um mecanismo de decriptografia de uma unidade de entrada da(s) GPU(s), em que o mecanismo de de-criptografia está em comunicação com o dispositivo de processamento criptográfico, executando o processamento ou transmissão do conteúdo decriptografado pela(s) GPU(s), en-criptando o conteúdo com um mecanismo de criptografi-a/decriptografia de uma unidade de saída da(s) GPU(s) e dando saída do conteúdo decriptografado da(s) GPU(s).The methods of the invention differently include techniques for cryptographically protecting security content with respect to a reliable graphics system having video memory, graphics processing unit (s) (GPU) and a communicatively coupled cryptographic processing device. GPU (s), comprising requesting, by an application or device, the graphics system to perform the processing or transmission of security content, wherein the requirement includes transmitting a session key to the system or application graphics and transmit the security content to the encrypted portion (s) of the video memory which decrypts the content of the encrypted portion (s) of the video memory by the ) GPU (s) communicating with the cryptographic processing device, processing or transmitting the decrypted content by the GPU (s) and outputting the content of the GPU (s). Similar methods of the invention differently include requesting, by an application or device, the graphics system to perform the processing or transmission of security content, wherein the requirement includes transmitting by the application or device a session key to the graphics system for verification. by the cryptographic processing device and transmitting the security content to the encrypted portion (s) of the video memory by decrypting the content of the encrypted portion (s) of the video memory by a mechanism decryption of an input unit of the GPU (s), wherein the decryption mechanism is in communication with the cryptographic processing device, performing the processing or transmission of the decrypted content by the GPU (s) by encrypting the content with an encryption / decryption mechanism of an output unit of the GPU (s) and outputting the decrypted content of the GPU (s) (s).

Outras características e modalidades da presente invenção estão descritas abaixo. BREVE DESCRIÇÃO DOS DESENHOS: Os métodos e sistemas para criptograficamente proteger conteúdo de segurança de acordo com a presente inven- ção são também descritos com referência aos desenhos em anexo em que: A Figura IA é um diagrama de bloco que representa um ambiente de rede exemplar tendo uma variedade de dispositivos de computação em que a presente invenção pode ser implementada; A Figura lb é um diagrama de bloco que representa um dispositivo de computação não limitativo exemplar em que a presente invenção pode ser implementada; A Figura 2 é um diagrama de fluxo que ilustra partes não protegidas de um canal confidente de gráficos que são protegidas de acordo com a invenção;Other features and embodiments of the present invention are described below. BRIEF DESCRIPTION OF THE DRAWINGS: Methods and systems for cryptographically protecting security content according to the present invention are also described with reference to the accompanying drawings in which: Figure 1A is a block diagram representing an exemplary network environment. having a variety of computing devices in which the present invention may be implemented; Figure 1b is a block diagram representing an exemplary non-limiting computing device in which the present invention may be implemented; Figure 2 is a flowchart illustrating unprotected portions of a graphical confidant channel that are protected according to the invention;

As Figuras 3A e 3B são diagramas de bloco que i-lustram aspectos exemplares de uma primeira camada de segurança de acordo com a invenção;Figures 3A and 3B are block diagrams illustrating exemplary aspects of a first security layer according to the invention;

As Figuras 4A a 4C são diagramas de bloco que i-lustram aspectos exemplares de uma segunda camada de segurança de acordo com a invenção;Figures 4A to 4C are block diagrams illustrating exemplary aspects of a second security layer according to the invention;

As Figuras 5A a 5B ilustram arranjo exemplar de um formato AYUV/ARGB de acordo com a invenção;Figures 5A to 5B illustrate exemplary arrangement of an AYUV / ARGB format according to the invention;

As Figuras 6A a 6B ilustram arranjo exemplar de um formato YUY2 de acordo com a invenção;Figures 6A-6B illustrate exemplary arrangement of a YUY2 format according to the invention;

As Figuras 7A a 7B ilustram arranjo exemplar de um formato plano compactado de acordo com a invenção;Figures 7A to 7B illustrate an exemplary arrangement of a compacted flat shape according to the invention;

As Figuras 8A e 8B são diagramas de bloco que i-lustram aspectos exemplares de uma terceira camada de segurança de acordo com a invenção; e As Figuras 9A e 9B são diagramas de bloco que i-lustram técnicas de criptografia exemplares que podem ser aplicadas para a saída de uma unidade de processamento de gráficos de acordo com a invenção.Figures 8A and 8B are block diagrams illustrating exemplary aspects of a third security layer according to the invention; and Figures 9A and 9B are block diagrams illustrating exemplary encryption techniques that may be applied to the output of a graphics processing unit according to the invention.

DESCRIÇÃO DETALHADA DA INVENÇÃODETAILED DESCRIPTION OF THE INVENTION

VISÃO GERALOVERVIEW

Esta presente invenção fornece sistema e técnicas para ampliar um sistema de operação, ou outro intermediário entre o conteúdo de uma fonte confiável e um sistema de gráficos para processar e/ou transmitir o conteúdo para permitir aplicações de "gráficos confiáveis", tais como resistente à falsificação, diálogos confidenciais e o reprodução de conteúdo prêmio que é resistente à duplicação não autorizada. Uma forma de visualizar a invenção é que ela fornece três 'níveis' de segurança: (1) criptografia dos conteúdos de superfícies de sobreposição (2) permitir a GPU, ou outro dispositivo de co-processamento, operar no conteúdo criptografado sem torná-lo disponível a partes não confiáveis e (3) permitir armazenamento temporários de comando ser criptografados .This invention provides system and techniques for extending an operating system, or other intermediary between the content of a trusted source, and a graphics system for processing and / or transmitting the content to enable "reliable graphics" applications such as spoofing, confidential dialogue, and the reproduction of premium content that is resistant to unauthorized duplication. One way to view the invention is that it provides three 'levels' of security: (1) encryption of overlapping surface contents (2) allowing the GPU, or other co-processing device, to operate on the encrypted content without rendering it available to untrusted parties and (3) allow temporary command storage to be encrypted.

Como mencionado, no contexto de segurança de sistema, a complexidade é um risco porque ela torna difícil comprovar uma segurança de sistema. Como um resultado, a invenção inicia considerando que o volume de funcionalidade de GPU e o(s) acionador(es) de exibição devem ser considerados não confiáveis. A invenção então aplica as técnicas que aumentam as chances de uma implementação correta em termos de confiabilidade e capacidade de proteção limitando o escopo do hardware que pode ser implementado para satisfazer os critérios de segurança.As mentioned, in the context of system security, complexity is a risk because it makes it difficult to prove system security. As a result, the invention begins by considering that the GPU functionality volume and display trigger (s) should be considered unreliable. The invention then applies techniques that increase the chances of correct implementation in terms of reliability and protectability by limiting the scope of hardware that can be implemented to meet security criteria.

Alguma terminologia de acordo com a invenção já foi debatida acima. Porém, para clareza, alguns termos serão agora enfatizados. O termo confidencial refere-se ao impedimento de uma terceira parte não confiável, tal como um dispositivo ou software da terceira parte, de obter acesso à informação de conteúdo confiável. Um exemplo de tal confiabilidade inclui prevenir uma terceira parte não confiável de obter acesso à reprodução do conteúdo de vídeo prêmio criptografado onde quer que seja ao longo do canal confidente de gráficos. O termo protegido refere-se à prevenção de uma terceira parte não confiável, tal como um dispositivo ou software da terceira parte, de obter acesso ou alterar a informação de conteúdo confiável sem ser detectado. Um exemplo de tal capacidade de proteção inclui impedir uma terceira parte não confiável de obter acesso ou alterar o display de um diálogo segura que deve ocorrer durante uma transação de e-commerce.Some terminology according to the invention has already been discussed above. However, for clarity, some terms will now be emphasized. The term confidential refers to the failure of an unreliable third party, such as a third party device or software, to gain access to information of reliable content. An example of such reliability includes preventing an unreliable third party from gaining access to playback of encrypted premium video content wherever it is along the graphics confidant channel. The term protected refers to preventing an unreliable third party, such as a third party device or software, from gaining access to or altering trusted content information undetected. An example of such protection capability includes preventing an untrusted third party from gaining access or changing the display of a secure dialog that must occur during an e-commerce transaction.

Com este respeito, a invenção considera janelas de sobreposição, por exemplo, uma interface do usuário no topo de um fluxo de vídeo de conteúdo prêmio, bem como janelas não inobscurecíveis, que deve estar presentes durante um diálogo de e-commerce.In this regard, the invention considers overlay windows, for example, a user interface on top of a premium content video stream, as well as non-erasable windows, which must be present during an e-commerce dialogue.

AMBIENTES DE REDE EXEMPLARESEXAMPLE NETWORK ENVIRONMENTS

Alguém de habilidade na técnica pode apreciar que um computador ou outro cliente ou dispositivo servidor pode ser disposto como parte de uma rede de computadores, ou em um ambiente de computação distribuída. Com esta consideração, a presente invenção diz respeito a um sistema de computador tendo qualquer número de unidades de memória ou armazenamento, e qualquer número de aplicações e processos ocorrendo ao longo de qualquer número de unidades ou volumes de armazenamento, que pode implicar o regime de gráficos confiável da invenção. A presente invenção pode aplicar-se a um ambiente com computadores servidores e computadores clientes dispostos em um ambiente de rede ou ambientes de computação distribuída, tendo armazenamento remoto ou local. A presente invenção pode também ser aplicada a dispositivos de computação isolados, tendo funcionalidade de linguagem de programação, interpretação e execução de capacidades para gerar, receber e transmitir informação em conexão com serviços remotos ou locais.One skilled in the art may appreciate that a computer or other client or server device may be deployed as part of a computer network, or in a distributed computing environment. With this in mind, the present invention relates to a computer system having any number of memory or storage units, and any number of applications and processes occurring over any number of storage units or volumes, which may imply the storage regime. Reliable graphics of the invention. The present invention may apply to an environment with server computers and client computers arranged in a network environment or distributed computing environments having remote or local storage. The present invention may also be applied to isolated computing devices having programming language functionality, interpretation and execution capabilities for generating, receiving and transmitting information in connection with remote or local services.

Computação distribuída facilita o compartilhamento de recursos e serviços do computador pela troca direta entre os dispositivos e sistemas de computação. Estes recursos e serviços incluem a troca de informação, armazenamento de cache e armazenamento de discos para arquivos. Computação distribuída leva vantagem de conectividade em rede, permitindo os clientes alavancar sua força coletiva para beneficiar toda a empresa. Com este respeito, uma variedade de dispositivos pode ter aplicações, objetos ou recursos que podem interagir para implicar canal(is) de gráficos confiável(eis) da presente invenção. A Fig. IA fornece um diagrama esquemático de um ambiente em rede ou de computação distribuída. 0 ambiente de computação distribuída compreende objetos de computação 10a, 10b, etc. e objetos ou dispositivos de computação 110a, 110b, 110c, etc. Estes objetos podem compreender programas, métodos, armazenamentos de dados, lógica programável, etc. Os objetos podem compreender partes do mesmo dispositivo ou diferentes tais como PDAs, televisões, reprodutor de MP3, televisões, computadores pessoais, etc. Cada objeto pode comunicar com o outro objeto na forma da rede de comunicações 14. Esta rede pode em si compreender outros objetos de computação e dispositivos de computação que fornecem serviços ao sistema da Fig. IA. De acordo com um aspecto da invenção, cada objeto 10 ou 110 pode conter uma aplicação que deve solicitar recursos de gráficos confiáveis.Distributed computing facilitates the sharing of computer resources and services through direct exchange between computing devices and systems. These features and services include information exchange, cache storage and disk storage for files. Distributed computing takes advantage of network connectivity, enabling customers to leverage their collective strength to benefit the entire enterprise. In this regard, a variety of devices may have applications, objects or features that may interact to imply reliable graphics channel (s) of the present invention. Fig. 1A provides a schematic diagram of a networked or distributed computing environment. The distributed computing environment comprises computing objects 10a, 10b, etc. and computing objects or devices 110a, 110b, 110c, etc. These objects may comprise programs, methods, data stores, programmable logic, etc. Objects may comprise parts of the same or different device such as PDAs, televisions, MP3 players, televisions, personal computers, etc. Each object may communicate with the other object in the form of communication network 14. This network may itself comprise other computing objects and computing devices that provide services to the system of Fig. 1A. According to one aspect of the invention, each object 10 or 110 may contain an application that must request reliable graphics resources.

Pode também ser apreciado que um objeto, tal como 110c, pode ser hospedado em outro dispositivo de computação 10 ou 110. Assim, embora o ambiente físico descrito possa apresentar os dispositivos conectados como computadores, tal ilustração é meramente exemplar e o ambiente físico pode alternativamente ser representado ou descrito compreendendo vários dispositivos digitais tais como PDAs, televisões, reprodutor de MP3, etc. objetos de software tais como interfaces, objetos de COM e outros. Há uma variedade de sistemas, componentes e configurações de rede que suportam ambientes de computação distribuída. Por exemplo, os sistemas de computações podem ser conectados um ao outro por sistema de fio ou sem fio, por redes locais ou redes amplamente distribuídas. Atualmente, muitas das redes são acopladas à Internet, as quais fornecem a infraestrutura para computação amplamente distribuída e abrange muitas diferentes redes.It may also be appreciated that an object, such as 110c, may be hosted on another computing device 10 or 110. Thus, while the physical environment described may present the connected devices as computers, such an illustration is merely exemplary and the physical environment may alternatively be depicted or described comprising various digital devices such as PDAs, televisions, MP3 players, etc. software objects such as interfaces, COM objects, and others. There are a variety of systems, components, and network configurations that support distributed computing environments. For example, computer systems can be connected to each other by wired or wireless system, local area networks or widely distributed networks. Today, many of the networks are attached to the Internet, which provides the infrastructure for widely distributed computing and spans many different networks.

Em ambientes de rede doméstica, existem pelo menos quatro meios de transporte de rede diversos que podem cada um suportar um protocolo único como linha de Força, dados (ambos com e sem fio), voz (por exemplo, telefone) e meios de entretenimento. A maioria dos dispositivos de controle domésticos como interruptores de luz e aplicações e utensílios podem usar linha de força para conectividade. Os Serviços de Dados podem entrar no lar como banda larga (por exemplo, ou DSL ou Cable modem) e são acessíveis dentro de casa usando ou conectividade sem fio (por exemplo, HomeRF ou 802.11b) ou com fio (HomerPNA, Cat 5, até mesmo linha de força elétrica). 0 tráfico de voz pode entrar em cada ou como com fio (por exemplo, Cat 3) ou sem fio (por exemplo, telefones celulares( e pode ser distribuído dentro de cada u-sando instalação elétrica de Cat 3. Os meios de entretenimento podem entrar em casa ou através de satélite ou cabo e é tipicamente distribuído na casa usando cabo coaxial. IEEE 1394 e DVI também estão emergindo como interconectores digitais para grupos de dispositivos de meios. Todos destes ambientes de rede e outros que pode emergir como padrões de protocolo podem ser interconectados para formar uma intranet que pode ser conectada ao mundo exterior na forma da Internet. Em resumo, uma variedade de fontes distinta existe para o armazenamento e transmissão de dados, e consequentemente, avançando, dispositivos de computação requererão formas de conteúdo de proteção em todas as partes do canal seguro de processamento de dados. A Internet comumente refere-se à coleção de redes e gateways que utilizam o conjunto de protocolos TCP/IP, que são bem conhecidos na técnica de formação de rede de computador. TCP/IP é um acrônimo para "Protocolo de Controle de Transmissão/Programa de Interface". A Internet pode ser descrita como um sistema de redes de computadores remotos geograficamente distribuídos interconectadas por computadores executando protocolos de rede que permitem aos usuários interagir e compartilhar informação por meio das redes. Por causa de tal compartilhamento de informação bem difundida, redes remotas tais como a Internet têm assim geralmente desenvolvido muito adentro um sistema aberto para cujos criadores podem elaborar aplicações de software para executar operações ou serviços especializados, essencialmente sem restrição.In home network environments, there are at least four diverse network transport modes that can each support a single protocol such as power line, data (both wired and wireless), voice (eg, telephone), and entertainment. Most home control devices such as light switches and applications and appliances can use power line for connectivity. Data Services can come in the home as broadband (eg, DSL or Cable modem) and are accessible indoors using either wireless (eg HomeRF or 802.11b) or wired (HomerPNA, Cat 5, even electric power line). Voice traffic may come in either as wired (eg Cat 3) or wireless (eg cell phones (and may be distributed within each Cat 3 wiring). come into the home or via satellite or cable and is typically distributed in the home using coaxial cable.IEEE 1394 and DVI are also emerging as digital interconnectors for media device groups.all of these network environments and others that may emerge as protocol standards can be interconnected to form an intranet that can be connected to the outside world in the form of the Internet In short, a variety of different sources exist for data storage and transmission, and as a result, computing devices will require forms of protection content. throughout the secure data processing channel. The Internet commonly refers to the collection of networks and gateways that use the TCP / IP protocols, which are well known in the art of computer networking. TCP / IP is an acronym for "Transmission Control Protocol / Interface Program". The Internet can be described as a system of geographically distributed remote computer networks interconnected by computers running network protocols that allow users to interact and share information across networks. Because of such widespread information sharing, remote networks such as the Internet have thus often developed far into an open system for whose creators can design software applications to perform specialized operations or services, essentially without restriction.

Desse modo, a inf raestrutura de rede permite um hospedeiro de topologias de rede tais como arquiteturas cli-ente/servidor, não hierarquizadas ou híbridas. 0 "cliente" é um membro de uma classe ou grupo que usa os serviços de outra classe ou grupo ao qual ele não está relacionado. Assim, na computação, um cliente é um processo, isto é, aproximadamente uma série de instruções ou tarefas, que requer um serviço fornecido por outro programa. 0 processo do cliente u-tiliza o serviço requerido sem ter que "saber" quaisquer detalhes de funcionamento sobre o outro programa ou o serviço em si. Em uma arquitetura de cliente/servidor, particular- mente um sistema em rede, um cliente é usualmente um computador que acessa recursos em rede compartilhada por outro computador, por exemplo, um servidor. No exemplo da Fig. IA, os computadores 110a, 110b, etc. podem ser considerados como clientes e os computadores 10a , 10b, etc, podem ser considerados como o servidor onde o servidor 10a, 10b, etc. mantém os dados que são depois replicados nos computadores dos clientes 110a, 110b, etc.Thus, the network infrastructure allows a host of network topologies such as client / server, unhierarchical or hybrid architectures. The "client" is a member of a class or group that uses the services of another class or group to which it is not related. Thus, in computing, a client is a process, that is, roughly a series of instructions or tasks, which requires a service provided by another program. The client process uses the required service without having to "know" any operating details about the other program or the service itself. In a client / server architecture, particularly a networked system, a client is usually a computer that accesses network resources shared by another computer, for example, a server. In the example of Fig. 1A, computers 110a, 110b, etc. can be considered as clients and computers 10a, 10b, etc. can be considered as the server where server 10a, 10b, etc. keeps data that is later replicated on client computers 110a, 110b, etc.

Um servidor é tipicamente um sistema de computador remoto acessível em uma rede remota tal como a Internet. O processo do cliente pode ser ativado em um primeiro sistema de computador, e o processo do servidor pode ser ativado em um segundo sistema de computador, comunicando um com o outro em um meio de comunicações, assim fornecendo funcionalidade distribuída e permitindo clientes múltiplos levar vantagem das capacidades de colher informação do servidor. 0 cliente e o servidor comunicam um com o outro utilizando a funcionalidade fornecida por uma camada de protocolo. Por exemplo, Protocolo de Transferência de Hipertexto (HTTP) é um protocolo comum que é usado em conjunção com World Wild Web (WWW) . Tipicamente, um endereço da rede de computadores como um Localizador Universal de Recursos (URL) ou um endereço de Protocolo da Internet (IP) é usado para identificar os computadores do servidor ou cliente um com o outro. 0 endereço da rede pode ser referido como um endereço de Localizador Universal de Recursos. Por exemplo, a comunicação pode ser fornecida em um meio de comunicações. Em particular, o cliente e o servidor podem ser acoplados um ao outro através de conexões de TCP/IP para comunicação de alta capacidade.A server is typically a remote computer system accessible on a remote network such as the Internet. Client process can be activated on a first computer system, and server process can be activated on a second computer system, communicating with one another in a communications medium, thus providing distributed functionality and allowing multiple clients to take advantage. of the ability to gather information from the server. The client and server communicate with each other using functionality provided by a protocol layer. For example, Hypertext Transfer Protocol (HTTP) is a common protocol that is used in conjunction with World Wild Web (WWW). Typically, a computer network address such as a Universal Resource Locator (URL) or an Internet Protocol (IP) address is used to identify the server or client computers with each other. The network address may be referred to as a Universal Resource Locator address. For example, communication may be provided on a communications medium. In particular, the client and server can be coupled together through TCP / IP connections for high capacity communication.

Assim, a Fig. IA ilustra um ambiente de rede ou distribuído exemplar, com um servidor em comunicação com computadores do cliente através de uma rede/barramento, em que a presente invenção pode ser empregada. Em mais detalhes, vários servidores 10a, 10b, etc, estão interconectados através de uma rede/barramento de comunicações 14, que pode ser uma LAN, WAN, intranet, a Internet, etc., com vários dispositivos remotos do cliente ou de computação 110a, 110b, 110c, HOd, HOe, etc, tal como um computador portátil, computador de bolso, cliente fraco, instrumento em rede, ou outro dispositivo, tal como um VCR, TV, forno, luz, aquecedor e outros de acordo com a presente invenção. É assim contemplado que a presente invenção pode aplicar-se a qualquer dispositivo de computação com relação a isto é desejável processar, armazenar ou transmitir conteúdo de segurança de uma fonte confiável.Thus, Fig. 1A illustrates an exemplary network or distributed environment, with a server communicating with client computers over a network / bus, wherein the present invention may be employed. In more detail, various servers 10a, 10b, etc. are interconnected via a communications network / bus 14, which may be a LAN, WAN, intranet, the Internet, etc., with various remote client or computing devices 110a. 110b, 110c, HOd, HOe, etc., such as a laptop, pocket computer, weak client, networked instrument, or other device, such as a VCR, TV, oven, light, heater, and others according to present invention. It is thus contemplated that the present invention may apply to any computing device with respect to which it is desirable to process, store or transmit security content from a reliable source.

Em um ambiente de rede em que a rede/barramento de comunicações 14 é a Internet, por exemplo, os servidores 10 podem ser servidores da rede com o quais os clientes 110a, 110b, 110c, HOd, HOe, etc. comunicam através de qualquer um de uma variedade de protocolos conhecidos como HTTP. Os servidores 10 podem também servir como clientes 110, como podem ser características de um ambiente de computação distribuída. As comunicações podem ser com ou sem fio, onde a-propriado. Os dispositivos do cliente 110 podem ou não comunicar através de rede/barramento de comunicações 14, e podem ter comunicações independentes a eles associadas. Por exemplo, no caso de uma TV ou VCR, onde pode ou não ser um aspecto de rede para o controle deste. Cada computador cliente 110 e computador servidor 10 podem ser equipados com vários módulos ou objetos de programa de aplicação 135 e com conexões ou acesso a vários tipos de elementos ou objetos de armazenamento, por meio destes arquivos podem ser armazenados em cuja(s) parte(s) podem ser baixados ou migrados. Assim, a presente invenção pode também ser utilizada em um ambiente de rede de computadores tendo computadores clientes 110a, 110b, etc que podem acessar e interagir com uma re-de/barramento de computadores 14 e computadores servidores 10a, 10b, etc. que podem interagir com computadores clientes 110a, 110b, etc, e outros dispositivos 111 e bancos de dados 20.In a network environment where communications network / bus 14 is the Internet, for example, servers 10 may be servers on the network with which clients 110a, 110b, 110c, HOd, HOe, and so on. communicate over any of a variety of protocols known as HTTP. Servers 10 may also serve as clients 110, as may be characteristic of a distributed computing environment. Communications can be wired or wireless where self-propelled. Client devices 110 may or may not communicate over network / communications bus 14, and may have independent communications associated with them. For example, in the case of a TV or VCR, where it may or may not be a network aspect to control it. Each client computer 110 and server computer 10 may be equipped with various application program modules or objects 135 and with connections or access to various types of storage elements or objects by means of which these files may be stored in their part ( s) can be downloaded or migrated. Thus, the present invention may also be used in a computer network environment having client computers 110a, 110b, etc. which can access and interact with a computer network 14 and server computers 10a, 10b, etc. which can interact with client computers 110a, 110b, etc., and other devices 111 and databases 20.

DISPOSITIVO DE COMPUTAÇÃO EXEMPLAR A Fig. 1B e o debate a seguir são intencionados a fornecer uma descrição geral breve de uma ambiente de computação adequado em que a invenção pode ser implementada. Deve ser entendido, porém, que dispositivos de bolso, portáteis e outros de computação e objetos de computação de todos os tipos são contemplados para o uso com relação à presente invenção. Embora um computador de propósito geral seja descrito abaixo, este é um exemplo, e a presente invenção pode ser implementada com um cliente fraco tendo interoperatividade e interação de rede/barramento. Assim, a presente invenção pode ser implementada em um ambiente de serviços hospedados em rede em que muito pouco ou recursos de cliente mínimos estão implicados, por exemplo, um ambiente em rede em que o dispositivo cliente serve meramente como uma interface para a re-de/barramento, tal como um objeto colocado em um instrumento. Em essência, em qualquer lugar que aqueles dados podem ser armazenados ou a partir daqueles dados podem ser buscados ou transmitidos é um ambiente desejável, ou adequado, para a operação da proteção criptográfica do conteúdo de segurança da invenção.EXAMPLE COMPUTER DEVICE Fig. 1B and the following discussion are intended to provide a brief overview of a suitable computing environment in which the invention may be implemented. It should be understood, however, that handheld, portable and other computing devices and computing objects of all types are contemplated for use with respect to the present invention. Although a general purpose computer is described below, this is an example, and the present invention may be implemented with a weak client having interoperability and network / bus interaction. Thus, the present invention may be implemented in a network hosted services environment where very little or minimal client resources are implied, for example, a networked environment in which the client device merely serves as an interface for the network. / bus, such as an object placed on an instrument. In essence, wherever such data may be stored or from that data may be fetched or transmitted is a desirable or suitable environment for the operation of the cryptographic protection of the security content of the invention.

Embora não requerido, a invenção pode ser implementada através de um sistema de operação, interface de programação de aplicação (API) e/ou incluída dentro de software de aplicação que realiza interfaces com o conteúdo confiável. Em várias modalidades, a invenção também se aplica ao hardware que se conforma à realização de interface, e técnicas de criptografia abaixo descritas. Software pode ser descrito no contexto geral de instruções executáveis por computador, tais como módulos de programa, sendo executado por um ou mais computadores, tais como estações de trabalho de cliente, servidores ou outros dispositivos. Em geral, os módulos de programa incluem rotinas, programas, objetos, componentes, estruturas de dados e outros e que executam tarefas particulares ou implementam tipos de dados abstratos particulares. Tipicamente, a funcionalidade dos módulos de programa pode ser combinada ou distribuída como desejado em várias modalidades. Além do mais, aqueles de habilidade na técnica apreciarão que a invenção pode ser praticada com outras configurações do sistema de computador. Outros sistemas de computação bem conhecidos, ambientes e/ou configurações que podem ser adequados para o uso com a invenção incluem, mas não são limitados a computadores pessoais (PCs), máquinas de caixa de banco automatizadas, computadores servidores, dispositivos portáteis ou laptop, sistemas de processadores múltiplos, sistemas com base em microprocessador, eletrônicos programáveis pelo consumidor, PCs de rede, instrumentos, luzes, elementos de controle de ambientes, minicom-putadores, computadores principais e outros. A invenção pode também ser praticada em ambientes de computação distribuída onde as tarefas são executadas por dispositivos de processamento remotos que são ligados através de uma rede/barramento de comunicações ou outro meio de transmissão de dados. Em um ambiente de computação distribuída, os módulos de programa podem estar localizados em ambos meios de armazenamento de computador locais ou remotos incluindo dispositivos de armazenamento de memória, e nodos de cliente podem por sua vez comportar-se como nodos de servidor. A Fig. 1B, assim, ilustra um exemplo de um ambiente de sistema de computação adequado 100 em que a invenção pode ser implementada, embora como tornado claro acima, o ambiente de sistema de computação 100 é apenas um exemplo de um ambiente de computação adequado e não é intencionado sugerir qualquer limitação ao escopo de uso ou funcionalidade da invenção. Nem deve o ambiente de computação 100 ser interpretado como tendo qualquer dependência ou requerimento relacionado a qualquer um ou combinação de componentes ilustrados no ambiente de operação exemplar 100.Although not required, the invention may be implemented through an operating system, application programming interface (API) and / or included within application software that interfaces with trusted content. In various embodiments, the invention also applies to hardware conforming to the interface embodiment, and encryption techniques described below. Software may be described in the general context of computer executable instructions, such as program modules, being executed by one or more computers, such as client workstations, servers, or other devices. In general, program modules include routines, programs, objects, components, data structures, and others that perform particular tasks or implement particular abstract data types. Typically, the functionality of program modules may be combined or distributed as desired in various embodiments. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations. Other well-known computing systems, environments and / or configurations that may be suitable for use with the invention include, but are not limited to personal computers (PCs), automated teller machines, server computers, portable devices or laptops, multiple processor systems, microprocessor based systems, consumer programmable electronics, network PCs, instruments, lights, room control elements, mini-computers, main computers, and more. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are connected via a communication bus / network or other data transmission medium. In a distributed computing environment, program modules may be located on both local or remote computer storage media including memory storage devices, and client nodes may in turn behave as server nodes. Fig. 1B thus illustrates an example of a suitable computing system environment 100 in which the invention can be implemented, although as made clear above, computing system environment 100 is only an example of a suitable computing environment. and it is not intended to suggest any limitation on the scope of use or functionality of the invention. Neither should the computing environment 100 be construed as having any dependency or requirement related to any or combination of components illustrated in the exemplary operating environment 100.

Com referência à Fig. 1B, um sistema exemplar para implementar a invenção inclui um dispositivo de computação de propósito geral na forma de um computador 110. Os componentes do computador 110 podem incluir, mas não são limitados a, uma unidade de processamento 120, uma memória do sistema 13 0 e um barramento do sistema 121 que acopla vários componentes do sistema incluindo a memória do sistema à unidade de processamento 120. O barramento do sistema 121 pode ser qualquer um dos vários tipos de estruturas de barramento incluindo barramento de memória ou controlador de memória, um barramento periférico e um barramento local usando qualquer uma de uma variedade de arquiteturas de barramento. Na forma de exemplo, e não limitação, tais estruturas inclui barramento de Arquitetura Industrial Padrão (ISA), barramento de Arquitetura de Micro Canal (MCA), barramento de ISA Intensificada (EISA), barramento local de Associação de Padrões de Eletrônicos de Vídeo (VESA) e barramento de Inteco-nector de Componente Periférico (PCI) (também conhecido como barramento de Mezanino). O computador 110 tipicamente inclui uma variedade de meios legíveis por computador. Os meios legíveis por computador podem ser quaisquer meios disponíveis que podem ser acessados pelo computador 110 e inclui tanto meios voláteis quanto não voláteis, meios removíveis quanto não removíveis, na forma de exemplo, e não limitação, os meios legíveis por computador podem compreender meios de armazenamento de computador e meios de comunicação. Os meios de armazenamento de computador incluem tanto meios voláteis quanto não voláteis, removíveis quanto não removíveis implementados em qualquer método ou tecnologia para armazenagem de informação tal como instruções legíveis por computador, estruturas de dados, módulos de programa ou outros dados. Os meios de armazenagem de computador incluem, mas não são limitados a RAM, ROM, EEPROM, memória rápida ou outra tecnologia de memória, CDROM, discos versáveis digitais (DVD) ou outro armazenamento em disco óptico, cassetes magnéticos, fita magnética, armazenagem em disco magnético ou outros dispositivos magnéticos de armazenagem, ou outro meio que pode ser usado para armazenar a informação desejada e que pode ser acessado pelo computador 110. Os meios de comunicação tipicamente incorporam instruções legíveis por computador, estruturas de dados, módulos de programa ou outros dados em um sinal de dados modulados tal como uma onda portadora ou outro mecanismo de transporte e inclui quaisquer meios de liberação de informação. O termo "sinal de dados modulados" significa um sinal que tem um ou mais de suas características determinadas ou alteradas de uma tal forma para codificar a informação no sinal. Na forma de exemplo, e não limitação, os meios de comunicação incluem meios com fio tais como rede com fio ou conexão com fio direta, e meios sem fio tais como acústico, RF, infravermelho ou outros meios sem fio. As combinações de qualquer um dos acima devem ser também incluídas dentro do escopo de meios legíveis por computador. A memória do sistema 130 inclui meios de armazenamento de computador na forma de memória volátil e/ou não volátil tal como memória apenas de leitura (ROM) 131 e memória de acesso aleatório (RAM) 132. Um sistema de entrada/saída básico 133 (BIOS), contendo as rotinas básicas que ajudam a transferir informação entre os elementos dentro do computador 110, tais como durante inicialização, é tipicamente armazenado em ROM 131. RAM 132 tipicamente contém módulos de dados e/ou programa que são imediatamente acessíveis e/ou presentemente sendo operados por uma unidade de processamento 12 0. Na forma de exemplo, e não limitação, a Fig. 1B i-lustra o sistema de operação 134, programas de aplicação 135, outros módulos de programa 136 e dados de programa 137. O computador 110 pode também incluir outros meios de armazenamento de computador removíveis/não removíveis, voláteis/não voláteis. Na forma de exemplo, a Fig. 1B ilustra um acionador de disco rígido 141 que lê ou escreve para os meios magnéticos não removíveis, não voláteis, um acionador de disco magnético 151 que lê ou escreve para um disco magnético removível, não volátil, e um acionador de disco óptico 155 que lê ou escreve para um disco óptico removível, não volátil 156, tal como um CD ROM ou outro meio óptico, outros meios de armazenamento de computador removíveis/não removíveis, voláteis/não voláteis que podem ser usados no ambiente de operação exemplar incluem, mas não são limitados a cassetes de fita magnética, cartões de memória rápida, discos versáteis digitais, fita de vídeo digital, RAM de estado sólido, ROM de estado sólido e outros. O acionador de disco rígido 141 é tipicamente conectado ao barramento do sistema 121 através de uma interface de memória não removível tal como interface 140, e o acionador de disco magnético 151 e o acionador de disco óptico 155 são tipicamente conectados ao barramento do sistema 121 por uma interface de memória removível, tal como interface 150.Referring to Fig. 1B, an exemplary system for implementing the invention includes a general purpose computing device in the form of a computer 110. Computer components 110 may include, but are not limited to, a processing unit 120, a system memory 130 and a system bus 121 that couples various system components including system memory to the processing unit 120. system bus 121 can be any of several types of bus structures including memory bus or controller memory, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such structures include Standard Industrial Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Intensified ISA bus (EISA), Video Electronics Standards Association local bus ( VESA) and Peripheral Component Interconnect (PCI) bus (also known as the Mezzanine bus). Computer 110 typically includes a variety of computer readable media. Computer readable media may be any available media accessible by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media, by way of example, and not limitation, computer readable media may comprise media. computer storage and media. Computer storage media includes both volatile and non-volatile removable and non-removable media implemented in any method or technology for storing information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to RAM, ROM, EEPROM, fast memory or other memory technology, CDROM, digital versatile discs (DVDs) or other optical disc storage, magnetic cassettes, magnetic tape, hard disk storage. magnetic disk or other magnetic storage devices, or other means that can be used to store the desired information that can be accessed by the computer 110. The media typically incorporates computer readable instructions, data structures, program modules or the like. data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information release means. The term "modulated data signal" means a signal that has one or more of its characteristics determined or altered in such a way as to encode the information in the signal. By way of example, and not limitation, the media includes wired media such as wired network or direct wired connection, and wireless media such as acoustic, RF, infrared or other wireless media. Combinations of any of the above should also be included within the scope of computer readable media. System memory 130 includes computer storage media in the form of volatile and / or nonvolatile memory such as read-only memory (ROM) 131 and random access memory (RAM) 132. A basic input / output system 133 ( BIOS), containing the basic routines that help transfer information between elements within computer 110, such as during startup, is typically stored in ROM 131. RAM 132 typically contains data and / or program modules that are immediately accessible and / or currently being operated by a processing unit 12 0. By way of example, and not limitation, Fig. 1B illustrates operating system 134, application programs 135, other program modules 136, and program data 137. Computer 110 may also include other removable / non-removable, volatile / non-volatile computer storage media. By way of example, Fig. 1B illustrates a hard disk drive 141 reading or writing to non-removable, non-volatile magnetic media, a magnetic disk drive 151 reading or writing to a non-volatile removable magnetic disk, and an optical disk drive 155 that reads or writes to a removable, nonvolatile optical disc 156, such as a CD ROM or other optical medium, other removable / non-removable, volatile / nonvolatile computer storage media that may be used in the Exemplary operating environments include, but are not limited to, magnetic tape cassettes, fast memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and others. Hard disk drive 141 is typically connected to system bus 121 via a non-removable memory interface such as interface 140, and magnetic disk drive 151 and optical disk drive 155 are typically connected to system bus 121 by a removable memory interface such as interface 150.

Os acionadores e seus meios de armazenamento de computador associados acima debatidos e ilustrados na Fig. 1B fornecem armazenamento de instruções legíveis de computador, estruturas de dados, módulos de programa e outros dados para o computador 110. Na Fig. 1B, por exemplo, o acionador de disco rígido 141 é ilustrado como sistema de operação de armazenamento 144, programas de aplicação 145, outros módulos de programa 146 e dados de programa 147. Observe que estes componentes ou podem ser os mesmos ou diferentes do sistema de operação 134, programas de aplicação 135, outros módulos de programa 136 e dados de programa 137. 0 sistema de operação 144, programas de aplicação 145, outros módulos de programa 146 e dados de programa 147 são dados diferentes números aqui para ilustrar que, em um mínimo, eles são copias diferentes. Um usuário pode entrar comandos e informação dentro do computador 110 através dos dispositivos de entrada tal como um teclado 162 e dispositivo de apontamento 161, comu-mente referido como um mouse, bola de rota seguida ou suporte de toque. Outros dispositivos de entrada (não mostrados) podem incluir um microfone, manete, suporte de jogos, disco satélite, scanner ou outros. Estes e outros dispositivos de entrada são freqüentemente conectados à unidade de processamento 120 através de uma interface de entrada do usuário 160 que é acoplada ao barramento do sistema 121, mas pode ser conectado por outras estruturas de interface e barramento, tal como uma porta paralela, porta de jogo ou um barramento serial universal (USB). Uma interface de gráficos 182, como Northbridge, pode também ser conectada ao barramento do sistema 121. Northbridge é um grupo de chips que comunica com a CPU, ou unidade de processamento hospedeira 120, e assume responsabilidade para comunicações de porta de gráficos aceleradas (AGP). Uma ou mais unidades de processamento de gráficos (GPUs) 184 podem comunicar com a interface de gráficos 182. Com este respeito, GPUs 184 em geral incluem armazenamento de memória on-chip, tal como armazenamento de registro e GPUs 184 comunicam com uma memória de vídeo 186. GPUs 184, porém, são um exemplo de um co-processador e assim uma variedade de dispositivos de co-processamento podem ser incluídos no computador 110.Um monitor 191 ou outro tipo de dispositivo de exibição está também conectado ao barramento do sistema 121 através de uma interface, tal como uma interface de vídeo 190, que pode por sua vez comunica com a memória de vídeo 186. Em geral, é esta parte de um dispositivo de computação que é vulnerável, e conseqüentemente a presente invenção fornece proteção e confiabilidade dos dados sendo processados ou transmitidos incidente a este. Além do monitor 191, os computadores podem também incluir outros dispositivos periféricos de saída como auto-falantes 197 e impressora 196, que podem ser conectados através de uma interface periférica de saída 195. 0 computador 110 pode operar em um ambiente em rede ou distribuído usando conexões lógicas a um ou mais computadores remotos, tal como um computador remoto 180. 0 com- putador remoto 180 pode ser um computador pessoal, um servidor, um encaminhador, um PC de rede, um dispositivo de equiparação ou outros nodos de rede comum, e tipicamente inclui muitos ou todos dos elementos acima descritos relativos ao computador 110, embora apenas um dispositivo de armazenamento de memória 181 tenha sido ilustrado na Fig. 1B. As conexões lógicas descritas na Fig. 1B incluem uma rede de área local (LAN) 171 e uma rede de área vasta (WAN) 173, mas pode também incluir outras redes/barramentos. Tais ambientes de formação de rede são comuns em casas, escritórios, redes de computadores de âmbito empresarial, intranets e a Internet.The drivers and their associated computer storage media discussed above and illustrated in Fig. 1B provide storage of computer readable instructions, data structures, program modules, and other data for computer 110. In Fig. 1B, for example, the hard drive 141 is illustrated as storage operating system 144, application programs 145, other program modules 146, and program data 147. Note that these components may either be the same or different from operating system 134, application programs, and 135, other program modules 136, and program data 137. Operating system 144, application programs 145, other program modules 146, and program data 147 are given different numbers here to illustrate that, at a minimum, they are different copies. A user may enter commands and information within computer 110 through input devices such as a keyboard 162 and pointing device 161, commonly referred to as a mouse, trackball or touch pad. Other input devices (not shown) may include a microphone, joystick, game stand, satellite disc, scanner, or others. These and other input devices are often connected to processing unit 120 via a user input interface 160 that is coupled to system bus 121, but can be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A graphics interface 182, such as Northbridge, may also be connected to system bus 121. Northbridge is a chip group that communicates with the CPU, or host processing unit 120, and assumes responsibility for accelerated graphics port (AGP) communications. ). One or more graphics processing units (GPUs) 184 may communicate with the graphics interface 182. In this regard, GPUs 184 generally include on-chip memory storage, such as record storage, and GPUs 184 communicate with a memory of 186. GPUs 184, however, are an example of a coprocessor and so a variety of coprocessing devices can be included in computer 110. A monitor 191 or other type of display device is also connected to the system bus. 121 through an interface, such as a video interface 190, which may in turn communicate with video memory 186. In general, it is this part of a computing device that is vulnerable, and therefore the present invention provides protection and reliability of the data being processed or transmitted incident to it. In addition to monitor 191, computers may also include other peripheral output devices such as speakers 197 and printer 196, which may be connected through a peripheral output interface 195. Computer 110 may operate in a networked or distributed environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, a server, a router, a network PC, an equalizer, or other common network nodes, and typically includes many or all of the above described elements relating to computer 110, although only one memory storage device 181 has been illustrated in Fig. 1B. The logical connections described in Fig. 1B include a local area network (LAN) 171 and a wide area network (WAN) 173, but may also include other networks / buses. Such networking environments are common in homes, offices, enterprise-wide computer networks, intranets, and the Internet.

Quando usado em um ambiente de rede LAN, o computador 110 é conectado à LAN 171 através de uma interface de rede ou adaptador 170. Quando usado em um ambiente de rede WAN, o computador 110 tipicamente inclui um modem 172 ou outros meios para estabelecer comunicações pela WAN 173, tal como a Internet. O modem 172, que pode ser interno ou externo, pode ser conectado ao barramento do sistema 121 através da interface de entrada do usuário 160, ou outro mecanismo apropriado. Em um ambiente em rede, os módulos de programa descritos relativo ao computador 110, ou partes destes, podem ser armazenados no dispositivo de armazenamento de memória remoto. Na forma de exemplo, e não limitação, a Fig. 1B ilustra os programas de aplicação remotos 185 que residem no dispositivo de memória 181. Será apreciado que as conexões de rede mostradas são exemplares e outros meios de estabelecer ligações de comunicações entre os computadores podem ser usados.When used in a LAN network environment, computer 110 is connected to LAN 171 through a network interface or adapter 170. When used in a WAN network environment, computer 110 typically includes a modem 172 or other means for establishing communications. WAN 173, just like the Internet. Modem 172, which may be internal or external, may be connected to system bus 121 via user input interface 160, or another appropriate mechanism. In a networked environment, the program modules described for computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation, Fig. 1B illustrates remote application programs 185 residing in memory device 181. It will be appreciated that the network connections shown are exemplary and other means of establishing communication links between computers may be be used.

ESTRUTURAS OU ARQUITETURAS DE COMPUTAÇÃO DISTRIBUÍDA EXEMPLARES Várias estruturas de computação distribuída foram e têm sido desenvolvidas em consideração à convergência de computação pessoal e a Internet. Indivíduos e usuários comerciais semelhantes são fornecidos com uma interface inte-roperável ininterruptamente e habilitada para rede para a-plicações e dispositivos de computação, tornando as atividades de computação altamente de navegador da rede ou orientada para rede.EXEMPLARY DISTRIBUTED COMPUTER STRUCTURES OR ARCHITECTURES Several distributed computing structures have been and have been developed in consideration of the convergence of personal computing and the Internet. Similar individuals and business users are provided with an uninterrupted, network-enabled interoperable interface for computing applications and devices, making the network browser or network-oriented computing activities highly.

Por exemplo, a plataforma da MICROSOFT®1s.Net inclui servidores, serviços de bloco de construção, como armazenamento de dados com base na rede e software de dispositivo capazes de ser baixados. De forma geral falando, a plataforma .Net fornece (1) a capacidade de fazer a gama inteira de dispositivos de computação trabalharem juntos e ter informação do usuário automaticamente atualizada e sincronizada em todos eles, (2) capacidade interativa aumentada para sites da rede, permitido por uso maior de XML que HTML, (3) serviços on-line que caracterizam acesso personalizado e liberação de produtos e serviços ao usuário de um ponto de início central para o gerencialmente de várias aplicações, como e-mail, por exemplo, ou software, como Office .Net, (4) armazenamento de dados centralizado, que aumentará a eficácia e facilidade de acessar à informação, bem como sincronização de informação entre usuários e dispositivos, (5) a capacidade de integrar vários meios de comunicação, tal como e-mail, faxes e telefones, (6) para criadores, a capacidade de criar módulos reusáveis, assim aumentando a produtividade e reduzindo o número de erros de programação e (7) também muitas outras características de integração de plataformas cruzadas .For example, the MICROSOFT®1s.Net platform includes servers, building block services such as network-based data storage and downloadable device software. Generally speaking, the .Net platform provides (1) the ability to get the full range of computing devices to work together and have user information automatically updated and synchronized across all of them, (2) increased interactive capability for web sites, allowed by greater use of XML than HTML, (3) online services featuring personalized access and release of products and services to the user from a central starting point to the managerial of various applications, such as email, or (4) centralized data storage, which will increase the effectiveness and ease of access to information, as well as information synchronization between users and devices, (5) the ability to integrate various media such as (6) for creators, the ability to create reusable modules, thereby increasing productivity and reducing the number of programming errors, and (7) also many other cross platform integration features.

Embora as modalidades exemplares aqui são em geral descritas com relação aos métodos implementados por software residindo em um dispositivo de computação, uma ou mais partes da invenção podem ser também implementadas através de um sistema de operação, interface de programação de aplicação (API) ou um objeto "homem intermediário" entre um co-processador e um conteúdo inviolado, de modo que os serviços de conteúdo confiável possam ser executados, suportados ou acessados através de todas das linguagens e serviços da .NET's, e em outras estruturas de computação distribuída também. Além do mais, pode ser apreciado que uma ou mais técnicas descritas de acordo com a invenção podem implicar alterações no hardware, como alterações na GPU para adequa-dar às técnicas. CRIPTOGRAFICAMENTE PROTEGENDO CONTEÚDO DE SEGURAM- ÇA A presente invenção assim fornece métodos e sistemas para ampliar um sistema de operação, ou qualquer plataforma, para permitir aplicações de "gráficos confiáveis", como resistentes à falsificação, diálogos confidenciais e para permitir reprodução do conteúdo de uma forma resistente à duplicação não autorizada. O problema solucionado pela presente invenção é ilustrado pela Fig. 2 em que o conteúdo prêmio criptografado 200 está sendo mostrado passado ou ge- rado por uma aplicação de software confiável TS. Incidente ao uso do software confiável TS, o conteúdo 200 pode implicar a funcionalidade da GPU 265 antes da transmissão (o outro uso) do conteúdo 200 através de um dispositivo de transmissão 295. Tal teor 200 será passado da memória do sistema ou hospedeiro 230 para a memória de vídeo 260 para processamento pelo GPU 265. A linha pontilhada na Fig. 2 ilustra onde o problema de segurança encontra-se. Conforme relacionado no fundamento, nenhum sistema hoje em dia apropriadamente assegura liberação protegida e confidencial de conteúdo a-través dos elementos circundados pela linha pontilhada. Do ponto de vista do software confiável TS, o primeiro problema é se ou não os componentes dentro da linha pontilhada podem ser confiáveis com o conteúdo antes de manusear o conteúdo para a GPU. Assumindo que o software confiável TS pode autenticar os componentes dento da linha pontilhada adequadamente, o segundo problema do ponto de vista do software confiável TS é que o software confiável TS deve ser razoavelmente seguro que, uma vez os dados são manuseados dentro da linha pontilhada, os dados não serão alterados. A presente invenção se dirige a ambos tipos de problemas em várias modalidades abaixo descritas. Em várias formas, os métodos e sistemas são implementados (1) encriptando os conteúdos das superfícies de sobreposição (2) permitindo a GPU operar no conteúdo criptografado sem torná-lo disponível às aplicações ou partes não confiáveis ou e (3) encriptando o conteúdo de armazenamento temporários de comando.While exemplary embodiments herein are generally described with respect to software implemented methods residing in a computing device, one or more parts of the invention may also be implemented via an operating system, application programming interface (API) or "man intermediate" object between a coprocessor and tampered content, so that trusted content services can be executed, supported or accessed through all of .NET's languages and services, and other distributed computing frameworks as well. Furthermore, it may be appreciated that one or more techniques described in accordance with the invention may entail hardware changes, such as GPU changes to suit the techniques. Cryptographically Protecting Security Content The present invention thus provides methods and systems for extending an operating system, or any platform, to enable "reliable graphics" applications such as tamper-resistant, confidential dialogs and to allow reproduction of the contents of a resistant to unauthorized duplication. The problem solved by the present invention is illustrated by Fig. 2 wherein the encrypted premium content 200 is being shown passed or generated by a trusted TS software application. Incident to the use of trusted TS software, 200 content may imply functionality of the GPU 265 prior to transmission (the other use) of 200 content through a 295 transmission device. Such 200 content will be passed from system or host memory 230 to video memory 260 for processing by GPU 265. The dotted line in Fig. 2 illustrates where the security problem lies. As listed in the background, no system today properly ensures secure and confidential release of content through the elements surrounded by the dotted line. From the standpoint of trusted TS software, the first problem is whether or not components within the dotted line can be trusted with content before handling content to the GPU. Assuming that TS trusted software can properly authenticate components within the dotted line, the second problem from the TS trusted software standpoint is that TS trusted software must be reasonably secure that once data is handled within the dotted line, the data will not be changed. The present invention addresses both types of problems in various embodiments described below. In many ways, the methods and systems are implemented (1) by encrypting the contents of the overlay surfaces (2) by allowing the GPU to operate on the encrypted content without making it available to untrusted applications or parts or (3) by encrypting the content of the overlay surfaces. temporary storage of command.

Um primeiro aspecto ao problema de processamento e renderização de gráficos confiáveis direcionado pela invenção diz respeito ao fornecimento de um processador criptográfico (algumas vezes referido como 'cripto') e gerenciamento de chave indexada. 0 Pedido de Patente U. S. Copenden-te comumente designado n.° AAA/BBB.CCC (o pedido de patente 'CCC), depositado em DD de Mês, YYYY, intitulado "Methods and Systems for Autentication of Components im a Graphics System" ensina as técnicas para autenticar o(s) componente (s) com relação a um sistema de gráficos, como abaixo descrito. É para ser entendido, no entanto, que a invenção presume que a autenticação ocorreu e assim quaisquer técnicas de autenticação podem ser alavancadas para fornecer uma plataforma de gráficos confiável como descrito nas várias modalidades da invenção abaixo.A first aspect of the invention-driven rendering and rendering problem of reliable graphics concerns the provision of a cryptographic processor (sometimes referred to as 'crypto') and indexed key management. US Patent Application commonly referred to as AAA / BBB.CCC (the 'CCC patent application), filed in DD of Month, YYYY, entitled "Methods and Systems for Authentication of Components in Graphics System" teaches the techniques for authenticating the component (s) against a graphics system as described below. It is to be understood, however, that the invention assumes that authentication has occurred and thus any authentication techniques can be leveraged to provide a reliable graphics platform as described in the various embodiments of the invention below.

AUTENTICAÇÃO EXEMPLAREXAMPLE AUTHENTICATION

Com este respeito, os cartões de gráficos seguros deves ser capazes de si autenticarem como tais. Em particular, o software confiável deve ser capaz de distinguir um placa gráfica seguro de um placa gráfica tradicional ou um dispositivo de invasão, como uma fraude. Além disso, o software confiável deve ser capaz de relevar chaves criptográficas ao placa gráfica e se capaz de verificar que o receptor das chaves é de fato um placa gráfica seguro. Para este propósito, os cartões de gráficos seguros são equipados com um processador cripto, de acordo com a invenção, que executa as tarefas criptográficas de autenticação e transportam as chaves .In this regard, secure graphics cards should be able to authenticate themselves as such. In particular, reliable software must be able to distinguish a secure graphics card from a traditional graphics card or an intrusion device such as a scam. In addition, reliable software should be able to reveal cryptographic keys to the graphics card and be able to verify that the key receiver is indeed a secure graphics card. For this purpose, secure graphics cards are equipped with a crypto processor according to the invention which performs the cryptographic authentication tasks and carries the keys.

Com respeito ap hardware, os processadores de cripto são fornecidos de acordo com a invenção, que são individualizados e certificados durante a fabricação. Cada criptoprocessador contém uma chave de descrição privativa única Kpriv. Embora muitos diferentes algoritmos de criptografia e decriptografia sejam contemplados de acordo com a invenção e conhecidos a aqueles nas técnicas criptográficas, para contexto, o algoritmo aqui descrito é RSA e a extensão da chave é 1024 bits, ambas escolhas de modelo não limitati-vas, que podem ser trabalhadas de acordo com o intercâmbio dependendo da aplicação e do(s) nível(eis) de segurança desejados .With respect to hardware, crypto processors are provided according to the invention, which are individualized and certified during manufacture. Each cryptoprocessor contains a unique Kpriv private description key. Although many different encryption and decryption algorithms are contemplated according to the invention and known to those in the cryptographic techniques, for context, the algorithm described herein is RSA and the key length is 1024 bits, both non-limiting model choices, which can be worked on according to the exchange depending on the application and the desired level (s) of security.

Com este respeito, o criptoprocessador é permanentemente ligado ao placa gráfica, ou adicionando-o a um chip existente ou adicionando-o como um chip separado ao cartão. O criptoprocessador implementa um criptoalgoritmo de chave pública, conforme descrito em mais detalhes abaixo e oculta uma chave privativa única. Quanto a isto, um tal criptoprocessador pode executar uma decriptografia de chave pública rapidamente com as tecnologias de silício atuais. Porém, o criptoprocessador pode também incluir um acelerado de chave pública e pode implementar uma cifra simétrica (AES) e alguma lógica de controle.In this regard, the cryptoprocessor is permanently attached to the graphics card either by adding it to an existing chip or by adding it as a separate chip to the card. The cryptoprocessor implements a public key crypto algorithm as described in more detail below and hides a unique private key. In this regard, such a cryptoprocessor can perform public key decryption quickly with current silicon technologies. However, the cryptoprocessor may also include an accelerated public key and may implement a symmetric cipher (AES) and some control logic.

Em uma modalidade não limitativa exemplar, o criptoprocessador inclui os registros voláteis a seguir: (1) um registro S de 256 bits para a chave da sessão. 0 tempo de vida desta chave é tipicamente o tempo de operação do software confiável e (2) um arranjo de uma pluralidade de chaves de indexação. Cada chave pode ser de 128 bits de extensão, embora outras escolhas possam ser adequadas., cada chave está associada com uma janela particular e é usada para o placa gráfica para decriptografar seu conteúdo. 0 tempo de vida de cada chave é governado pelas instruções do software confiável .In an exemplary non-limiting embodiment, the cryptoprocessor includes the following volatile registers: (1) a 256-bit S register for the session key. The lifetime of this key is typically the reliable software operating time and (2) an array of a plurality of index keys. Each key can be 128 bits long, although other choices may be appropriate. Each key is associated with a particular window and is used by the graphics card to decrypt its contents. The lifetime of each key is governed by trusted software instructions.

Como mencionado, o criptoprocessador da invenção está permanentemente ligado ao placa gráfica. Assim, é requerido um meio para seguramente realizar interface com o criptoprocessador para fazer uso de sua funcionalidade. Quanto à realização de interface com o processo de cripto, a presente invenção considera pelo menos duas técnicas: (a) uma interface externa para o software confiável TS e (b) uma interface para a GPU 265. Esta interface - pelo menos no seu aspecto criptográfico - deve ser padronizada. Aquela interface pode ser específica na implementação, mas deve aderir às normas gerais abaixo expostas.As mentioned, the cryptoprocessor of the invention is permanently attached to the graphics card. Thus, a means is required to safely interface with the cryptoprocessor to make use of its functionality. Regarding the interface with the crypto process, the present invention considers at least two techniques: (a) an external interface for the reliable TS software and (b) an interface for the GPU 265. This interface - at least in its aspect cryptographic - should be standardized. That interface may be implementation specific, but must adhere to the general rules outlined below.

Com respeito à implementação da interface externa, a interface externa usa um protocolo de criptografia de chave privativa (PK) para autenticação e transporta da chave. Sob este protocolo, o software confiável TS decifra uma chave de sessão com a chave pública do criptoprocessador. 0 criptoprocessador recebe o criptobolb resultante e o decifra com sua chave privativa, assim obtendo a chave de sessão. Agora, o software confiável e o criptoprocessador compartilham um sigilo. 0 software confiável pode suar esta chave de sessão para enviar as instruções para o criptoprocessador.With respect to the implementation of the external interface, the external interface uses a private key encryption protocol (PK) for authentication and key transports. Under this protocol, trusted TS software decrypts a session key with the cryptoprocessor public key. The cryptoprocessor receives the resulting cryptobolb and decrypts it with its private key, thus obtaining the session key. Reliable software and the cryptoprocessor now share secrecy. Reliable software can use this session key to send instructions to the cryptoprocessor.

Em uma modalidade não limitativa, a interface externa é exposta através das funções a seguir pelo criptopro-cessador: A função SetSessionKey() executa a etapa de autenticação inicial e o transporte de chave. Ela é a única função que acessa a funcionalidade da chave pública do cripto-processador. Assim, em uma modalidade, a presente invenção contempla chamar esta função uma vez a cada boot. O peseudo-código exemplar a seguir representa uma implementação não limitativa da SetSessionKey(): SetSessionKey( criptoblob ) { PKDcrypt(privateKey, cryptoblob, ssesionKey ); } Após conclusão com sucesso da operação, o registro sessionKey contém uma chave, como uma chave de 256 bits, do criptoblob. 0 algoritmo de chave pública pode ser, por exemplo, RSA de 1024 bits.In a non-limiting embodiment, the external interface is exposed through the following functions by the cryptoprocessor: The SetSessionKey () function performs the initial authentication step and key transport. It is the only function that accesses crypto-processor public key functionality. Thus, in one embodiment, the present invention contemplates calling this function once each boot. The following exemplary peseudo code represents a non-limiting implementation of SetSessionKey (): SetSessionKey (cryptoblob) {PKDcrypt (privateKey, cryptoblob, ssesionKey); } Upon successful completion of the operation, the sessionKey record contains a cryptoblob key, such as a 256-bit key. The public key algorithm may be, for example, 1024 bit RSA.

Uma vez a chave de sessão simétrica K tenha sido estabelecida entre o software confiável e o criptoprocessa-dor, esta chave pode ser usada para assegurar toda comunicação adicional para e do criptoprocessador. O software confiável e o criptoprocessador podem comunicar-se por meio de métodos simples de Get and Set, cujos parâmetros são cripto-graficamente protegidos para confiabilidade e integridade. Em particular, o bloco de parâmetro B de cada chamada pode ser processado da seguinte forma não limitativa: AES ( M | HMAC( M,kl ), K2 ) , onde: Kl é a primeira metade de K (bits 0 a 127) K2 é a segunda metade de K (bits 128 a 255) AES(M,K) é o resultado de criptografar a mensagem M sob a chave K com AES no modo CBCOnce the symmetric session key K has been established between trusted software and the cryptoprocessor, this key can be used to ensure all additional communication to and from the cryptoprocessor. Reliable software and the cryptoprocessor can communicate using simple Get and Set methods whose parameters are crypto-protected for reliability and integrity. In particular, the parameter block B of each call can be processed as non-limiting as follows: AES (M | HMAC (M, kl), K2), where: Kl is the first half of K (bits 0 to 127) K2 is the second half of K (bits 128 through 255) AES (M, K) is the result of encrypting message M under the K key with AES in CBC mode.

HMAC(Μ,K) ê o resultado de computar um HMAC durante uma função de verificação apropriada na mensagem M com a chave K A | B é o resultado de concatenar A e B.HMAC (Μ, K) is the result of computing an HMAC during an appropriate verification function in message M with the key K A | B is the result of concatenating A and B.

Este formato pode ser usado para os parâmetros de entrada e para os parâmetros das seguintes funções: Set([IN] BOOL needsAck, [IN] BITS128 nonce, [IN] ENUM propertylD, [IN] BYTESEQUENCE propertyParamters, [OUT] BYTESEQUENCE ack ) onde: needsAcl é um valor boleano, que permite o software confiável indicar, se uma confirmação for requerida.This format can be used for input parameters and for the parameters of the following functions: Set ([IN] BOOL needsAck, [IN] BITS128 nonce, [IN] ENUM propertylD, [IN] BYTESEQUENCE propertyParamters, [OUT] BYTESEQUENCE ack) where: needsAcl is a boolean value, which allows trusted software to indicate if a confirmation is required.

Nouce é um valor de 128 bits selecionado pelo software confiável. O nonce pode ser usado na confirmação, se uma confirmação fosse solicitada.Nouce is a 128-bit value selected by trusted software. Nonce can be used in confirmation if a confirmation is requested.

PropertylD identifica a propriedade, que esta sendo determinada. Uma lista exemplar de propriedades suportadas é dada abaixo na Tabela 1.PropertylD identifies the property being determined. An exemplary list of supported properties is given below in Table 1.

PropertyParamters é uma seqüência de parâmetros, que é específica para cada propertylD.PropertyParamters is a sequence of parameters, which is specific to each propertylD.

Por fim, Ack é a confirmação da operação. 0 crip-toprocessador produz ack se e apenas se needsAck foi determinada. Ack é composta do nouce seguido por uma mensagem, que é específica para cada propertylD. TABELA 1 - LISTA DE PROPERTY IDs PARA OBTER A FUNÇÃO Com respeito à property ID Index key, este método escreve uma nova chave e etiqueta de propósito dentro do registro da chave identificada pelo índice.Finally, Ack is the confirmation of the operation. The cripoprocessor produces ack if and only if needsAck has been determined. Ack is composed of nouce followed by a message, which is specific to each propertylD. TABLE 1 - LIST OF PROPERTY IDS TO OBTAIN THE FUNCTION With respect to the property ID Index key, this method writes a new purpose key and tag into the key register identified by the index.

Quanto à property ID Output lock, este método determina a bandeira de trava de saída. Quando esta bandeira é determinada, a geometria da tela (largura, altura, intensidade de cor, taxa de restauração) bem como a saída do placa gráfica (VGA, DVI) não podem ser alteradas. Em particular, o placa gráfica não executa instruções para alterar estes a-justes enquanto a bandeira de trava de saída é determinada.For property ID Output lock, this method determines the output lock flag. When this flag is set, the screen geometry (width, height, color depth, restore rate) as well as the graphics card output (VGA, DVI) cannot be changed. In particular, the graphics card does not execute instructions to change these junctions while the output lock flag is determined.

Com respeito à property ID L2KeyMgmt, este método ajusta a freqüência de renovação da chave sob a segunda camada de proteção descrita de acordo com a invenção, isto é, en-criptando entrada e saída descritas em mais detalhes abaixo.With respect to property ID L2KeyMgmt, this method adjusts the key renewal frequency under the second protection layer described in accordance with the invention, that is, by encrypting input and output described in more detail below.

Similarmente, a função Get é proposta como segue: Get([IN] BITS128 nonce, [IN] ENUM propertylD, [IN} BYTESEQUENCE propertyParamters, [OUT] BYTESEQUENCE resposta ) onde: nonce é um valor de 12 8 bits selecionado pelo software confiável a ser usado na resposta.Similarly, the Get function is proposed as follows: Get ([IN] BITS128 nonce, [IN] ENUM propertylD, [IN} BYTESEQUENCE propertyParamters, [OUT] BYTESEQUENCE response) where: nonce is a 12-bit value selected by trusted software to be used in the answer.

PropertylD identifica a propriedade, que esta sendo determinada. A lista de propriedades suportadas é dada abaixo na Tabela 2.PropertylD identifies the property being determined. The list of supported properties is given below in Table 2.

PropertyParamters é uma seqüência de parâmetros, que é específica para cada propertylD. A resposta contém o resultado da operação. A resposta é composta do nonce seguido por uma mensagem, que é específica a cada propertylD.PropertyParamters is a sequence of parameters, which is specific to each propertylD. The response contains the result of the operation. The response consists of nonce followed by a message, which is specific to each propertylD.

TABELA 2 - LISTA DE PROPERTY IDs PARA FUNÇÃO SETTABLE 2 - LIST OF PROPERTY IDs FOR SET FUNCTION

Com respeito às Portas de Saída, este método retorna o ajuste das saídas do placa gráfica, por exemplo, VGA, DVI, etc.With respect to Output Ports, this method returns the setting of the graphics card outputs, eg VGA, DVI, etc.

Com respeito ao Código de autenticação, este método retorna a verificação dos conteúdos de uma janela segundo à primeira camada de proteção descrita de acordo com a invenção, isto é, criptografia de sobreposições.With respect to the Authentication Code, this method returns the verification of the contents of a second window to the first protection layer described in accordance with the invention, ie overlay encryption.

Com respeito à versão de DX-SEC, este método retorna a versão de DX-SEC suportada pelo placa gráfica.With respect to the DX-SEC version, this method returns the DX-SEC version supported by the graphics card.

Com respeito à Conta de superfície segura, este método retorna o número de superfícies seguras suportadas pelo placa gráfica.With respect to Safe Surface Account, this method returns the number of safe surfaces supported by the graphics card.

Com respeito à Conta de superfície de sobreposição, este método retorna o número de superfícies seguras de sobreposição suportadas pelo placa gráfica.With respect to the Overlay Surface Account, this method returns the number of secure overlay surfaces supported by the graphics card.

Com respeito ao Tipo primário, este método retorna 1, e fornece flexibilidade futura.With respect to the Primary Type, this method returns 1, and provides future flexibility.

Com respeito à Geometria, este método retorna a largura, altura, taxa de restauração e intensidade de cor da superfície primária. A função Set ainda pode incluir também um método que determina o local ou tamanho de uma sobreposição de região protegida, ou o local e tamanho de uma fração de uma superfície principal (primária) que deve ser decriptografa-da.With respect to geometry, this method returns the width, height, restoration rate and color intensity of the primary surface. The Set function can also further include a method that determines the location or size of a protected region overlay, or the location and size of a fraction of a primary (primary) surface that must be decrypted.

Assim, a SetSessionKey acima, função Get and Set diz respeito às modalidades não limitativas de uma interface externa. 0 termo "interface interna" refere-se à interface entre o criptoprocessador e o resto do placa gráfica. Os detalhes deste tipo de interface de acordo com a invenção estão até a implementação de cada placa gráfica individual, sujeitos às restrições a seguir: (1) o criptoprocessador deve ser permanentemente preso ao placa gráfica e (2) a conexão entre o criptoprocessador e o resto do placa gráfica não deve ser exposta.Thus, the above SetSessionKey Get and Set function concerns the non-limiting modalities of an external interface. The term "internal interface" refers to the interface between the cryptoprocessor and the rest of the graphics card. The details of this type of interface according to the invention are up to the implementation of each individual graphics card, subject to the following restrictions: (1) the cryptoprocessor must be permanently attached to the graphics card and (2) the connection between the cryptoprocessor and the rest of the graphics card should not be exposed.

Nesta consideração, a remoção do criptoprocessador do placa gráfica não deve ser trivial. Se o criptoprocessador for implementado como um chip separado, esta é principalmente uma restrição na interface mecânica que liga o criptoprocessador ao placa gráfica. Tipicamente, o criptoprocessador deve ser soldado no placa gráfica. Alternativamente, o criptoprocessador pode residir no mesmo chip como a GPU principal. 0 uso de interfaces mecânicas padronizadas que permitem o criptoprocessador ser removido, por exemplo, leitoras de cartão inteligentes, suportes de tomada e outros, não é aceitável.In this regard, removing the cryptoprocessor from the graphics card should not be trivial. If the cryptoprocessor is implemented as a separate chip, this is mainly a constraint on the mechanical interface that connects the cryptoprocessor to the graphics card. Typically, the cryptoprocessor should be soldered to the graphics card. Alternatively, the cryptoprocessor may reside on the same chip as the main GPU. The use of standard mechanical interfaces that allow the cryptoprocessor to be removed, for example smart card readers, socket holders and others, is not acceptable.

Além disso, a conexão física entre o criptoprocessador e o resto do placa gráfica não deve ser acessível e não deve ser exposta por interfaces padrões. Por exemplo, um conector de USB neste barramento não é aceitável de acordo com a invenção.Also, the physical connection between the cryptoprocessor and the rest of the graphics card should not be accessible and should not be exposed by standard interfaces. For example, a USB connector on this bus is not acceptable according to the invention.

Com respeito às regras para gerenciamento de chave, cada chave de índice pode ser usada apenas conforme seu parâmetro de propósito associado. Em uma modalidade, os valores do parâmetro de propósito têm os significados a seguir: L1STREAM: Esta chave apenas pode ser usada com a cifra de fluxo de DX-SEC descrita abaixo com relação à primeira camada de segurança fornecida pela invenção, isto é, a criptografia de sobreposições. L2BL0CK: Esta chave apenas pode ser usada com o cifra de bloco no modo ECB da segunda camada de segurança fornecida pela invenção, isto é, entradas e saídas de criptografia, abaixo descritas. A cifra do bloco no modo ECB é usada para decriptografar os blocos de textura, que foram escritos pelo software confiável.With respect to the key management rules, each index key may only be used according to its associated purpose parameter. In one embodiment, the purpose parameter values have the following meanings: L1STREAM: This switch can only be used with the DX-SEC stream cipher described below with respect to the first security layer provided by the invention, ie the overlay encryption. L2BL0CK: This key can only be used with the ECB mode block cipher of the second security layer provided by the invention, ie encryption inputs and outputs, described below. The block cipher in ECB mode is used to decrypt the texture blocks, which were written by trusted software.

Nesta consideração, não deve ser mantida nenhuma cópia das chaves, quando o índice tiver sido cheio com um novo valor.In this regard, no copy of the keys should be kept when the index has been filled with a new value.

PRIMEIRA CAMADA DE SEGURANÇA - SOBREPOSIÇÕES CRIPTOGRAFADASFIRST SECURITY LAYER - ENCRYPTED OVERLAYS

Uma vez que a memória de vídeo pode ser mapeada e lida por software não confiáveis operando na CPU, a memória de vídeo não pode conter informação na forma texto puro. A memória de vídeo sujeito a esta exigência inclui a memória de vídeo usada para restaurar o display. Uma implementação inicial de um sistema que satisfaz este critério de acordo com a invenção encripta os conteúdos de uma superfície de sobreposição. A sobreposição pode então ser decriptografada em movimento pelo hardware DAC, ou quase antes de alcançar o hardware DAC, enquanto a imagem é enviada para o display. A Fig. 3A ilustra uma implementação exemplar de uma tal técnica. 0 conteúdo prêmio criptografado 200, donde quer que encontrado ou gerado incidente à aplicação do soft- ware confiável 210, é recebido através de aplicação confiável 210. Uma troca de autenticação com o criptoprocessador 220 resulta, como o(s) procedimento(s) de troca de autenticação acima descrito(s) nas modalidades exemplares ou por qualquer outra técnica para liberação de chave segura, ou criptográfica ou por uma rota protegida por outros meios. O conteúdo 200 passa da memória do sistema 230 para uma superfície de sobreposição criptografada 240, que sobrepõe a superfície primária 270 da memória de vídeo 260. Junto com o criptoprocessador 220, uma parte de decriptografia 250 da GPU 265 decifra a camada de criptografia fornecida pela sobreposição criptografada 24 0 e passa o conteúdo para pixel selecionado 280 para saída para interface de vídeo digital (DVI)/conversor analógico para digital (DAC) 290 para saída para um dispositivo de transmissão, como um monitor. Porém, o sistema exposto na Fig. 3A não satisfaz todos os critérios descritos acima, uma vez que há apenas uma sobreposição. Para satisfazer o barramento mínimo de funcionalidade necessária para um ambiente confiável, como janelas confiáveis, a invenção permite duas sobreposições em uma modalidade alternativa. A primeira sobreposição "confidencial" é basicamente uma sobreposição que existe nas plataformas hoje, principal-mente para reproduzir vídeo, ampliado tal que seus conteúdos podem ser criptografados. A segunda sobreposição é especificamente elaborada para apresentar a interface do usuário sensível como diálogos de e-commerce. Esta "sobreposição protegida" está sempre no topo e não ocultável, isto é, nenhum chaveamento de cor e tem precedência sobre a primeira sobreposição. A segunda sobreposição pode ser submetida a certas limitações para minimizar o custo. Por exemplo, a segunda sobreposição pode ser fornecida de modo que os dados estejam no mesmo formato de pixel como a primária e não seja capaz de ser esticada ou multi-armazenada temporariamente. Além disso, os conteúdos da sobreposição protegida podem ser verificados pelo hardware. A Tabela 3 resume as diferenças exemplares entre a sobreposição confidencial e a sobreposição protegida.Since video memory can be mapped and read by unreliable software operating on the CPU, video memory cannot contain information in plain text form. Video memory subject to this requirement includes video memory used to restore the display. An initial implementation of a system meeting this criterion according to the invention encrypts the contents of an overlay surface. The overlay can then be decrypted on the move by the DAC hardware, or almost before reaching the DAC hardware, while the image is sent to the display. Fig. 3A illustrates an exemplary implementation of such a technique. The encrypted premium content 200, wherever found or generated incident to the trusted software application 210, is received via trusted application 210. An authentication exchange with the cryptoprocessor 220 results, as the procedure (s) of exchange of authentication described above in exemplary embodiments or by any other technique for secure or cryptographic key release or by a route protected by other means. Content 200 passes from system memory 230 to an encrypted overlay surface 240, which overlaps primary surface 270 of video memory 260. Along with cryptoprocessor 220, a decryption portion 250 of GPU 265 decrypts the encryption layer provided by encrypted overlay 240 and outputs the selected pixel content 280 to digital video interface (DVI) / analog to digital converter (DAC) output 290 to output to a transmitting device, such as a monitor. However, the system set forth in Fig. 3A does not meet all the criteria described above, since there is only one overlap. To satisfy the minimum functionality bus required for a reliable environment, such as reliable windows, the invention allows two overlaps in an alternative embodiment. The first "confidential" overlay is basically an overlay that exists on platforms today, primarily for video playback, expanded so that its contents can be encrypted. The second overlay is specifically designed to present the responsive user interface as e-commerce dialogs. This "protected overlay" is always on top and not concealable, ie no color switching and takes precedence over the first overlay. The second overlap may be subject to certain limitations to minimize cost. For example, the second overlay may be provided so that the data is in the same pixel format as the primary and is not capable of being temporarily stretched or multi-stored. In addition, the contents of the protected overlay can be verified by the hardware. Table 3 summarizes the exemplary differences between confidential overlap and protected overlap.

TABELA 3 . COMPARAÇÃO DE SOBREPOSIÇÕES CONFIDENCIAIS E PROTEGIDAS A Fig. 3B mostra um sistema que inclui tanto sobreposição confidencial, por exemplo, sobreposições 310a, 310b e 310c da cadeia de alternação de sobreposições confidenciais 310, quanto sobreposição protegida 320. Quando pos- sível, as cifras de fluxo são usadas para criptografia de superfície seguro porque elas são mais rápidas e mais simples de implementar que as cifras de blocos (ver Apêndice A para mais detalhes) . Cifras de fluxo encriptam o banco de dados na "posição do byte no fluxo". Assim, o primeiro nível de segurança da invenção inicializa a cifra de fluxo com a chave de criptografia de pixel no canto esquerdo superior da superfície. A cifra de fluxo é avançada para cada pixel contido dentro da superfície de sobreposição independente se o pixel será exibido. 0 sistema proposto contém dois componentes de decriptografia de cifra de fluxo 300a e 300b, um para a sobreposição confidencial e um para a sobreposição protegida, respectivamente. Uma vez os valores de pixel decriptograf ados estão disponíveis, o hardware 280 seleciona o valor de pixel da sobreposição protegida 320, sobreposição confidencial 310 (se a primária 270 for igual à chave de cor e/ou se o chaveamento de cor for permitido) ou primária 270 e envia o valor de pixel para o display do hardware através de DVI/DAC 290. É observado que um adversário pode obter acesso às sobreposições por qualquer número de meios, e assim ou torna a imagem exibida invisível ou substitui o conteúdo de segurança pelo conteúdo ruidoso, uma vez os dados escritos pelo adversário serão também decriptografados. Embora a invenção não diretamente defende contra estes ataques, a invenção não fornece uma avaliação de integridade para garantir que o conteúdo esperado fosse apresentado ao usuário final. Assim, se a saída é alguma coisa diferente da entrada, o usuário ou software confiável 210 pode ser alertado que houve falsificação do conteúdo.TABLE 3 COMPARISON OF CONFIDENTIAL AND PROTECTED OVERLAYS Fig. 3B shows a system that includes both confidential overlays, for example, overlays 310a, 310b, and 310c of the alternate overlays alternating chain 310, as well as protected overlays 320. When possible, Stream ciphers are used for secure surface encryption because they are faster and simpler to implement than block ciphers (see Appendix A for more details). Stream ciphers encrypt the database at "byte position in stream". Thus, the first security level of the invention initializes the stream cipher with the pixel encryption key in the upper left corner of the surface. The stream cipher is advanced for each pixel contained within the overlay surface regardless of whether the pixel will be displayed. The proposed system contains two stream cipher decryption components 300a and 300b, one for the confidential overlay and one for the protected overlay, respectively. Once decrypted pixel values are available, hardware 280 selects the pixel value of protected overlay 320, confidential overlay 310 (if primary 270 is equal to color key and / or if color keying is allowed) or 270 and sends the pixel value to the hardware display via DVI / DAC 290. It is noted that an opponent can gain access to overlays by any number of means, and thus either make the displayed image invisible or overwrite security content. noisy content, since the data written by the opponent will also be decrypted. Although the invention does not directly defend against these attacks, the invention does not provide an integrity assessment to ensure that expected content is presented to the end user. Thus, if the output is anything other than the input, the trusted user or software 210 may be warned that the content has been falsified.

Com respeito a uma interface de software para as sobreposições, além da informação de sobreposição habitual, como a caixa de amarração de fonte e destino, chave de cor de destinação, etc., a sobreposição confidencial 310 mantém que o índice da chave de criptografia seja especificado e a sobreposição protegida 320 adicionalmente mantém que uma localização de memória seja especificada onde o código de redundância cíclica (CRC) dos conteúdos de sobreposição de-criptografados deve ser escrito. A interface de sobreposição confidencial é similar às sobreposições existentes, exceto que o método de alterna-ção especifica o índice da chave de criptografia dos conteúdos do armazenamento temporário de retorno da sobreposição 310a, isto é, o armazenamento temporário para o qual os dados estão sendo alternados. A interface de sobreposição protegida é mais simples e fornece condição para um CRC da superfície a ser enviada para um local da memória após ela ter sido exibida pela primeira vez. A interface de hardware padronizada controla a localização da sobreposição, e torna o CRC disponível ao software interessado em uma base de interrogação. Por e-xemplo, um registro pode indicar se o CRC está disponível, e outro pode permitir o CRC ser lido. Por exemplo, o pseudocó-digo exemplar a seguir pode ser utilizado com respeito à interface de sobreposição protegida: HRESULT UpdateOverlay( LPPOINT ppntUL ); onde : ppntUL especifica o canto esquerdo superior da sobreposição protegida.With respect to a software interface for overlays, in addition to the usual overlay information such as source and destination mooring box, destination color key, etc., confidential overlay 310 maintains that the encryption key index is specified and protected overlay 320 additionally maintains that a memory location is specified where the cyclic redundancy code (CRC) of the decrypted overlay contents must be written. The confidential overlay interface is similar to existing overlays except that the toggle method specifies the encryption key index of the overlay 310a return staging contents, that is, the temporary storage for which the data is being transferred. alternate. The protected overlay interface is simpler and provides a condition for a surface CRC to be sent to a memory location after it is first displayed. The standardized hardware interface controls the location of the overlay, and makes the CRC available to interested software on an interrogation basis. For example, one record may indicate if the CRC is available, and another may allow the CRC to be read. For example, the following exemplary pseudocode may be used with respect to the protected overlay interface: HRESULT UpdateOverlay (LPPOINT ppntUL); where: ppntUL specifies the upper left corner of the protected overlay.

Quanto a isto, o software 210 calcula o valor de CRC que se espera estar relacionado com a integridade.In this regard, software 210 calculates the CRC value expected to be related to integrity.

SEGUNDA CAMADA DE SEGURANÇA - ENTRADAS E SAÍDAS CRIPTOGRAFADASSECOND LAYER OF SECURITY - ENCRYPTED INPUTS AND OUTPUTS

De acordo com a invenção, para aumentar a GPU 265 para controlar o conteúdo criptografado como entrada e emitir conteúdo criptografado como saída, a criptografia e hardware de decriptografia é adicionado à unidade de mapeamento de textura (no lado de entrada) e a unidade de combina alfa (no lado de saída), e os designers de hardware cooperam para seguir algumas regras implementando esta funcionalidade. Uma vez que as cifras de fluxo não permitem acesso aleatório aos dados criptografados, o sistema usa as cifras de bloco, encriptando os dados, por exemplo, 128 bits em um momento. A unidade de mapeamento de textura decifra em um enchimento de linha de cache e a unidade de combina alfa decifra ao ler uma linha de cache do armazenamento temporário de cor e encripta antes de escrever. As chaves de criptografia usadas nestas operações podem ser diferentes.According to the invention, to augment GPU 265 to control encrypted content as input and output encrypted content as output, encryption and decryption hardware is added to the texture mapping unit (on the input side) and the matching unit. alpha (on the output side), and hardware designers cooperate to follow some rules implementing this functionality. Since stream ciphers do not allow random access to encrypted data, the system uses block ciphers, encrypting the data, for example 128 bits at a time. The texture mapping unit decrypts in a cache line fill and the alpha blending unit decrypts when reading a cache cache from color and encrypts before writing. The encryption keys used in these operations may differ.

As tarefas computacionais diferentes de transmissão 3D, como decodificação de vídeo, são extensões diretas do paradigma já descrito. Em vez de texturas, macroblocos de vídeo servem como a entrada criptografada; e em vez de um armazenamento temporário de cor, a estrutura de saída sendo decodificada serve como a sais criptografada. Se o conteúdo for protegido enquanto ele é liberado em-faixa no fluxo de comando para a GPU 265, como o armazenamento temporário de comando pode ser criptografado também é descrito abaixo.The different computational tasks of 3D transmission, such as video decoding, are direct extensions of the paradigm already described. Instead of textures, video macroblocks serve as the encrypted input; and instead of temporary color storage, the output structure being decoded serves as the encrypted salts. If content is protected while it is released in-band in the command stream to the GPU 265, how command temporary storage can be encrypted is also described below.

Fig. 4A descreve o sistema já descrito que executa uma operação terminal frontal, considerando uma superfície criptografada 420 como entrada e emitindo uma superfície criptografada como saída, isto é, a extremidade frontal da textura criptografada e técnicas de armazenamento temporário de cor, por meio do componente de criptografia e decripto-grafia 440. A invenção também fornece textura criptografada 400a, onde a textura 400b pode ser textura típica da memória de vídeo 260. A textura criptografada 400a sai para o componente de decriptografia 450 da GPU 265, que trabalha junto com o criptoprocessador 220 para decriptografar a textura e aplicar os algoritmos de gráficos, como sombreamento, etc. aos dados decriptografados do componente 440 com o componente 430a.Fig. 4A depicts the described system which performs a front end operation, considering an encrypted surface 420 as input and emitting an encrypted surface as output, i.e. the front end of the encrypted texture and temporary color storage techniques by means of encryption and decryption component 440. The invention also provides encrypted texture 400a, where texture 400b may be typical texture of video memory 260. Encrypted texture 400a exits to decryption component 450 of GPU 265, which works in conjunction with cryptoprocessor 220 to decrypt texture and apply graphics algorithms such as shading, etc. decrypted data of component 440 with component 430a.

Antecipando a disposição de um desktop de alterna-ção de páginas de compósitos, o sistema da Fig. 4A já descrito pode proteger o todo do desktop, contanto que o hardware DAC possa decriptografar a primária 270 como também as superfícies de sobreposição 310 e 320 acima descritas. É observado que o hardware DAC decifra usando uma cifra de bloco no lugar de uma cifra de fluxo em um tal caso. Um tal sistema permite um número arbitrário de superfícies confidenciais para participar no desktop, com ordenamento de Z arbitrário, combinando, ou até mesmo 3D ou outros efeitos aplicados a eles sem segurança compromitente. As superfícies de sobreposição protegida 320, que deve estar sempre no topo e cujos conteúdos devem ser verificáveis, reside em superfícies separadas. A sobreposição confidencial 310 acima descrita permanece até que ela possa ser emulada em software pela desktop de alternação de página segura, ou plataforma.Anticipating the arrangement of a composite page swapping desktop, the system of Fig. 4A already described can protect the entire desktop as long as the DAC hardware can decrypt the primary 270 as well as the overlapping surfaces 310 and 320 above. described. It is observed that the DAC hardware decrypts using a block cipher in place of a stream cipher in such a case. Such a system allows an arbitrary number of confidential surfaces to participate in the desktop, with arbitrary Z-ordering, matching, or even 3D or other effects applied to them without compromising security. Protected overlapping surfaces 320, which should always be on top and whose contents must be verifiable, reside on separate surfaces. The confidential overlay 310 described above remains until it can be emulated in software by the secure page switching desktop, or platform.

Em uma modalidade, além de poder decriptografar a primário 270, o sistema requer que a GPU 265 seja capaz de criptografar texto puro de aplicações de computador de mesa usual também, como processadores de textos confiáveis, assim eles também podem participar no desktop. A Fig. 4B ilustra um tal cenário em que a cadeia de alternação primária 510, incluindo para frente 510b e de retorno 510a, é criptografada. Assim, as superfícies primárias podem ser operadas por um compositor de desktop 430, protegido pelo componente de criptografia/decriptografia 440a para saída dele/entrada nele, respectivamente. Em comunicação com o criptoprocessador 220, um componente de decriptografia 500 decifra a superfície dianteira 510b para saída para DVI/DAC 290. Isto expõe o sistema a certos tipos de ataque que é detalhado abaixo com respeito a assegurar a segurança onde são debatidas algumas estratégias para defender contra estes ataques.In one embodiment, in addition to being able to decrypt the primary 270, the system requires the GPU 265 to be able to encrypt plain text from usual desktop applications as well, such as reliable word processors, so they can also participate on the desktop. Fig. 4B illustrates such a scenario in which primary alternating chain 510, including forward 510b and return 510a, are encrypted. Thus, the primary surfaces may be operated by a desktop composer 430 protected by the encryption / decryption component 440a for its output / input thereon, respectively. In communication with the cryptoprocessor 220, a decryption component 500 decrypts the front surface 510b for output to DVI / DAC 290. This exposes the system to certain types of attacks which are detailed below with respect to ensuring security where some strategies for debating are discussed. defend against these attacks.

Fig. 4C descreve uma alternativa para a Fig. 4B, em que a transcrição para a cadeia de alternação de sobreposição confidencial 310 é efetuada. Assim, como uma alternativa para criptografar a primária 270, de acordo com a invenção, o hardware pode permitir criptografia da cifra de fluxo para consumo pelo hardware de sobreposição confidenci- al 3 00a que pode decriptografar os dados da cifra de fluxo junto com criptoprocessador 220. Este mecanismo de apresentação pode ser menos caro que criptografar a primária com uma cifra de bloco, mas pode não ser como escalável ou flexível, como um intercâmbio planejado. Uma vez a sobreposição confidencial 310 usos uma cifra de fluxo para criptografia, uma operação razoável para suportar neste contexto é uma o-peração de 'cópia' na qual a entrada é decriptografada através do componente de decriptograf ia 44 0b que usa a cifra de bloco da superfície de entrada 510a e re-criptografada pelo componente 440b que usa a sobreposição da cifra de fluxo. Estas modalidades, e várias combinações destes, são úteis, por exemplo, onde uma entrada criptografada de uma vez é suficiente, desde que qualquer número de entradas de texto puro possa ser combinado com a entrada criptografada para gerar saída criptografada.Fig. 4C depicts an alternative to Fig. 4B, wherein transcription to the confidential overlap alternating chain 310 is effected. Thus, as an alternative to encrypting the primary 270 according to the invention, the hardware may allow for consumer stream encryption encryption by the confidential overlay hardware 300a which may decrypt the stream encryption data along with cryptoprocessor 220. This presentation mechanism may be less expensive than encrypting the primary with a block cipher, but may not be as scalable or flexible as a planned exchange. Since confidential override 310 uses a stream cipher for encryption, a reasonable operation to support in this context is a 'copy' operation in which the entry is decrypted via decryption component 440b which uses block cipher. from the input surface 510a and re-encrypted by component 440b using the stream cipher overlay. These embodiments, and various combinations thereof, are useful, for example, where one encrypted entry at a time is sufficient as long as any number of plaintext entries can be combined with the encrypted entry to generate encrypted output.

Com respeitos em garantir a segurança, há várias medidas que podem ser implementadas de acordo com a invenção. Primeiro, a segunda camada acima de segurança descrita conta com a idéia que texto puro não pode ser vazado da GPU 265 uma vez que ele foi decriptografado. Por exemplo, nenhum registro de depuração ou outras instalações existe que permite o texto puro ser lido fora do chip pela unidade de processo central (CPU) do hospedeiro. Além de tomar cuidado de elaborar o hardware para evitar tais vazamentos, a série de instruções da GPU 265 é projetado de forma que seja impossível permitir decriptografia da entrada sem também permitir criptografia da saída. Além disso, o hardware evita vazamen- to de dados de texto puro, quer por um acionador fraudulento, por código adverso ou por acidente.With respect to ensuring safety, there are several measures that can be implemented according to the invention. First, the second security layer described above has the idea that plain text cannot be leaked from GPU 265 once it has been decrypted. For example, no debug log or other facilities exist that allow plain text to be read off the chip by the host central processing unit (CPU). In addition to taking care of hardware design to prevent such leaks, the GPU 265's instruction series is designed so that it is impossible to allow input decryption without also allowing output encryption. In addition, the hardware avoids the leakage of plain text data, either by a fraudulent trigger, by adverse code or by accident.

Além disso, o hardware pode não vazar as chaves. Uma vez as chaves são liberadas para a GPU 265 pelo protocolo criptográfico descrito de acordo com a troca de autenticação, elas apenas estão disponíveis para os componentes de criptografia e de decriptografia.Also, the hardware may not leak the keys. Once keys are released to the GPU 265 by the cryptographic protocol described in accordance with the authentication exchange, they are only available for the encryption and decryption components.

Como acima debatido, se a GPU 2 65 for capaz de criptografar o texto puro para exibição na primária 270, esta facilidade é considerada uma vulnerabilidade no sistema uma vez que esta facilidade de criptografia é o único mecanismo descrito no qual um adversário pode ter o texto puro e o texto de cifra correspondente ao mesmo tempo disponível. Mapeando a superfície primária de modo que ela seja examiná-vel pela CPU e criando uma janela que deve ser criptografada, o adversário pode construir um subconjunto dos blocos de texto de cifra que correspondem a blocos de texto puro conhecidos. Estes assim denominados "ataques de dicionário" trabalham melhor quando o número de blocos que são "interessantes" for pequeno. Por exemplo, para exibição de caixas de diálogo preto-e-branco em um modo de exibição 32bpp, uma vez que existem 4 pixels por bloco, apenas 16 blocos são necessários para exibir um tal diálogo. Uma possível avenida para um adversário que descobriu os 16 blocos de texto de cifra seria falsificar um diálogo para o usuário de fim criando conteúdo que é significativo mesmo após a decriptografia pela GPU 265. Por esta razão, a sobreposição protegida é melhor adequada para diálogos resistentes à falsificação por que ela permite aplicações detectar quando o usuário final não viu o que era esperado. Há duas boas estratégias assim para frustrar os adversários que desejam criar dicionários. Primeiro, uma vez que os dicionários apenas são bons para uma determinada chave, mudando a chave e re-encriptando o conteúdo força o adversário recomeçar com um novo dicionário. Além disso, para criptografia da primária, a chave não necessita ser posta disponível ao software - ela pode ser enrolada no hardware e o software apenas necessita ser notificado que a chave mudou. Considerando que a chave anterior ainda está disponível, o software pode usar a chave anterior para decriptogra-far e recriptografar as partes da primária que não mudaram. Conseqüentemente, o criptoprocessador 220 periodicamente enrola a chave de criptografia para a primária 270 e de um tal modo que a chave anterior ainda encontra-se disponível, por exemplo, uma ação de armazenamento temporário dupla dos índices de chave de criptografia, e de uma forma que notifique o software que a chave foi enrolada.As discussed above, if the GPU 2 65 is able to encrypt the plaintext for display on primary 270, this feature is considered a system vulnerability since this encryption facility is the only mechanism described in which an adversary can have the text. and the corresponding cipher text available at the same time. By mapping the primary surface so that it can be scanned by the CPU and creating a window to encrypt, the adversary can construct a subset of the ciphertext blocks that correspond to known plaintext blocks. These so-called "dictionary attacks" work best when the number of blocks that are "interesting" is small. For example, for displaying black and white dialog boxes in a 32bpp view, since there are 4 pixels per block, only 16 blocks are required to display such a dialog. One possible avenue for an opponent who discovered the 16 ciphertext blocks would be to fake an end-user dialog by creating content that is meaningful even after decryption by the GPU 265. For this reason, protected overlap is best suited for tough dialogs. counterfeiting because it allows applications to detect when the end user has not seen what was expected. There are two good strategies to frustrate opponents who want to create dictionaries. First, since dictionaries are only good for a given key, changing the key and re-encrypting the content forces the opponent to start over with a new dictionary. Also, for primary encryption, the key does not need to be made available to the software - it can be wrapped around the hardware and the software only needs to be notified that the key has changed. Since the previous key is still available, the software can use the previous key to decrypt and re-encrypt the unchanged parts of the primary. Consequently, cryptoprocessor 220 periodically rolls up the encryption key for primary 270 and such that the previous key is still available, for example, a dual temporary storage action of encryption key indices, and in a manner notify the software that the key has been rolled up.

Outra estratégia envolve a codificação do local dentro da imagem antes da criptografia. Por exemplo, o local de pixel (x,y) na imagem (ou algum valor derivado, como a deslocamento de imagem) pode ser exclusivo or-ed (XOR'd) nos dados de pixel antes de encriptá-lo; a operação pode ser desfeita depois após a decriptografia. Como resultado, os blocos para pixels em áreas diferentes da superfície são criptografados diferentemente, e o mapeamento texto puro- texto de cifra apenas é significante para uma determinada posição na superfície que está indisponível a um assaltante. A presente invenção também fornece formatos arranjados predefinidos. Considerando que texturas e superfícies de tela preta requerem acesso aleatório, elas devem ser criptografadas com cifra de blocos. Há boa sinergia entre o tamanho do bloco típico para uma cifra de bloco e o tamanho de linha de cache típico para um acelerador moderno 3D, por exemplo, se a linha de cache e o tamanho de bloco foram ambos 128 bits, então criptografia e decriptografia eficazes podem ser implementadas no hardware. Até mesmo se houver diferenças suaves (por exemplo, tamanho de bloco de 128 bits e tamanho de linha de cache de 256 bits) a implementação de hardware é igualmente para ser eficaz.Another strategy involves coding the location within the image before encryption. For example, the pixel location (x, y) in the image (or some derived value such as image shift) may be unique or-ed (XOR'd) in the pixel data before encrypting it; The operation can be undone later after decryption. As a result, blocks for pixels in different areas of the surface are encrypted differently, and plaintext ciphertext mapping is only significant for a given surface position that is unavailable to a burglar. The present invention also provides predefined arranged formats. Since black screen textures and surfaces require random access, they should be block cipher encrypted. There is good synergy between the typical block size for a block cipher and the typical cache line size for a modern 3D accelerator, for example if the cache line and block size were both 128 bits, then encryption and decryption Effective tools can be implemented in hardware. Even if there are slight differences (eg, 128-bit block size and 256-bit cache line size) the hardware implementation is equally effective.

Um problema com os dados de textura criptografados é que um esquema de criptografia de bloco requer que um bloco adjacente de bytes esteja disponível antes de poder ser criptografado ou decriptografado; e um enchimento de linha de cache requer que os dados de pixel sejam 'arranjados', isto é, que a tradução de uma posição (X,Y) na imagem para um endereço seja formada tal que o enchimento de linha de cache dê uma região 2D de pixels. Até agora, os vendedores de hardware expuseram ostensivamente formatos de superfície lineares ao mesmo tempo dados de imagem de arranjo sem o conhecimento da aplicação. Uma vez o software confiável estará emitindo os dados de textura criptografados, porém, o software tem que ter um conhecimento de priori do esquema de arranjo de modo que ele possa criptografar os blocos adjacen- tes de dados e pode preservar a localidade 2D. Em resposta, a invenção define um dicionário de formatos de imagem arranjada, incluindo YUV 4:4:4, 4:2:2 e 4:2:0 como também formatos RGB, para uso pela aplicação. O desempenho destes formatos pode não ser totalmente tão alto quanto se as imagens fossem arranjadas em um formato hardware-específico, mas a criptografia vale uma degradação de desempenho leve, isto é, segurança em troca de velocidade.One problem with encrypted texture data is that a block encryption scheme requires that an adjacent block of bytes be available before it can be encrypted or decrypted; and a cache line fill requires that the pixel data be 'arranged', that is, translation of a position (X, Y) in the image to an address is formed such that the cache line fill gives a region. 2D of pixels. So far, hardware vendors have ostensibly exposed linear surface formats while arranging image data without application knowledge. Once reliable software will be emitting the encrypted texture data, however, the software must have a priori knowledge of the arrangement scheme so that it can encrypt adjacent blocks of data and can preserve 2D location. In response, the invention defines a dictionary of arranged image formats including YUV 4: 4: 4, 4: 2: 2 and 4: 2: 0 as well as RGB formats for use by the application. The performance of these formats may not be quite as high as if the images were arranged in a hardware-specific format, but the encryption is worth a slight performance degradation, ie security for speed.

Com respeito a AYUV/ARGB (32bpp, compactado), este formato de superfície de 32 bpp contém um canal alfa além dos canais de cor de 8 bits para as amostras de luminância (Y) e cromaticidade (U e V) . Alternativamente, pode conter um padrão ARGB 32bpp, desde que ambos formatos sejam 32bpp e compactados. 0 debate a seguir assume AYUV. O layout linear encontra-se como na Fig. 5A. O deslocamento de pixel (X,Y) na imagem é como segue : Deslocamento=Y*Pitch+X*4 Assumindo um tamanho de bloco de criptografia de 128 bits e tamanho de linha de cache, 4 pixels podem ajustar-se em um único bloco. Intercalando o mínimo de bits significativos de X e Y antes de gerar o endereço resultará em localidade 2D melhorada em um enchimento de linha de cache. Estes blocos são colocados linearmente, de acordo com o formato . 0 layout da imagem resultante está ilustrado pela Fig. 5B. Cada retângulo numerado é um pixel e os retângulos em negrito são blocos criptografados. Peseudocódigo exemplar para a função de arranjo da invenção para este formato que converte uma localização (x,y) na imagem para um deslocamento é como segue: DWORDWith respect to AYUV / ARGB (32bpp, compressed), this 32bpp surface format contains an alpha channel in addition to the 8-bit color channels for the luminance (Y) and chromaticity (U and V) samples. Alternatively, it may contain an ARGB 32bpp standard, provided both formats are 32bpp and compressed. The following discussion assumes AYUV. The linear layout is as in Fig. 5A. The pixel offset (X, Y) in the image is as follows: Offset = Y * Pitch + X * 4 Assuming a 128-bit encryption block size and cache line size, 4 pixels can fit into a single block. Interleaving the minimum of significant bits of X and Y before generating the address will result in improved 2D locale in a cache line fill. These blocks are placed linearly according to the format. The resulting image layout is illustrated by Fig. 5B. Each numbered rectangle is a pixel and the bold rectangles are encrypted blocks. Exemplary peseudocode for the arrangement function of the invention for this format which converts a location (x, y) in the image to an offset is as follows: DWORD

SwizzleAYUV( DWORD x, DWORD y, DWORD Pitch ) { // pitch é o número de bits por linha varrida de macros blocos return BlockOffset+IntraBlockOffset*4; } Com respeito a YUY2 (16bpp, compactado), este formato de superfície horizontalmente sub-amostra as amostra de ' croma ti cidade' U e V por um fator de 2. O resultado é um formato de imagem compactada que rateia em 16 bits por pixel. 0 layout linear é mostrado na Fig. 6A, a forma de arranjo da invenção aloca blocos criptografados de 4x2 pixels, conforme mostrado na Fig. 6B. Quanto às Figs. 5A e 5B, os blocos de 128 bits são arranjados também. É observado que com a Fig. 6B e com o peseudocódigo de arranjo exemplar a seguir que traduz os pares das coordenadas (x,y) em compilações de imagem, U e V são assumidos ter as mesmas coordenadas X: DWORDSwizzleAYUV (DWORD x, DWORD y, DWORD Pitch) {// pitch is the number of bits per line scanned from macro blocks return BlockOffset + IntraBlockOffset * 4; } With respect to YUY2 (16bpp, compressed), this surface format horizontally sub-samples the U and V chromate samples by a factor of 2. The result is a 16-bit compressed image format by pixel. The linear layout is shown in Fig. 6A, the arrangement form of the invention allocates 4x2 pixel encrypted blocks as shown in Fig. 6B. As for Figs. 5A and 5B, 128-bit blocks are arranged as well. It is observed that with Fig. 6B and the following exemplary array peseudocode which translates the coordinate pairs (x, y) into image compilations, U and V are assumed to have the same X: DWORD coordinates.

SwizzleYUY2Y( DWORD x, DWORD y, const SURFACEDESC& sd ) { assert( x < sd.Width ); assert( y < sd.Height ); DWORD BlockOffset DWORD dwRet = BlockOffset+(IntraBlockOffsetccl); return dwRet; } DWORDSwizzleYUY2Y (DWORD x, DWORD y, const SURFACEDESC & sd) {assert (x <sd.Width); assert (y <sd.Height); DWORD BlockOffset DWORD dwRet = BlockOffset + (IntraBlockOffsetccl); return dwRet; } DWORD

SwizzleYUY2U( DWORD x, DWORD y, const SURFACEDESC& sd ) DWORD BlockOffset return BlockOffset+(IntraBlockOffset<<l)+1; } DWORDSwizzleYUY2U (DWORD x, DWORD y, const SURFACEDESC & sd) DWORD BlockOffset return BlockOffset + (IntraBlockOffset << l) +1; } DWORD

SwizzleYUY2V( DWORD x, DWORD y, const SURFACEDESC& sd ) Com este respeito, para o peseudocódigo acompanhando o arranjo das Figs. 5A, 5B, 6A e 6B, o pitch da superfície é definido como o número de bytes por linha varrida de blocos de 128 bits.SwizzleYUY2V (DWORD x, DWORD y, const SURFACEDESC & sd) In this regard, for the peseudocode accompanying the arrangement of Figs. 5A, 5B, 6A and 6B, surface pitch is defined as the number of bytes per scanned line of 128-bit blocks.

Com respeito ao plano compactado (12bpp), este formato de superfície sub-amostram U e V por um fator de 2 horizontalmente e de modo vertical. As amostras de luminân-cia e cromaticidade são postas em duas partes separadas da superfície. O layout linear do plano compactado (12bpp) está mostrado na Fig. 7A. 0 pitch da superfície é definido quanto ao número de bytes por linha varrida de blocos de 512 bits no plano Y. O pitch do plano UV é metade do pitch do plano Y porque tem V tanto quanto amostra, mas duas vezes tanto quanto elementos de cor por amostra. O formato de imagem arranjada resultante de acordo com a invenção é mostrado na Fig. 7B.With respect to the compressed plane (12bpp), this surface shape sub-samples U and V by a factor of 2 horizontally and vertically. The luminance and chromaticity samples are placed on two separate parts of the surface. The linear layout of the compressed plane (12bpp) is shown in Fig. 7A. Surface pitch is defined as the number of bytes per scanned line of 512-bit blocks in the Y plane. The UV plane pitch is half the Y plane pitch because it has V as much as a sample, but twice as much as color elements. per sample. The resulting arranged image format according to the invention is shown in Fig. 7B.

O pseudocódigo exemplar para a função de arranjo da invenção para este formato que traduz as coordenadas (x,y) de compilações para elementos Y, U e V é como segue: DWORDThe exemplary pseudocode for the arrangement function of the invention for this format which translates the (x, y) coordinates of compilations for elements Y, U and V is as follows: DWORD

SwizzlePP12Y( DWORD x, DWORD y, const SURFACEDESC& sd ) assert( x < sd.Width );SwizzlePP12Y (DWORD x, DWORD y, const SURFACEDESC & sd) assert (x <sd.Width);

DWORDDword

SwizzlePP12U( DWORD x, DWORD y, const SURFACEDESC& sd ) DWORDSwizzlePP12U (DWORD x, DWORD y, const SURFACEDESC & sd) DWORD

SwizzlePP12V( DWORD x, DWORD y, const SURFACEDESC& sd ) TERCEIRA CAMADA DE SEGURANÇA - ARMAZENAMENTO TEMPORÁRIOS DE COMANDO CRIPTOGRAFADOSSwizzlePP12V (DWORD x, DWORD y, const SURFACEDESC & sd) THIRD SECURITY LAYER - ENCRYPTED TEMPORARY STORAGE

As facilidades das modalidades acima descritas com respeito às primeira e segunda camadas de segurança podem ser ampliadas de acordo com a invenção para criptografar os armazenamento temporários de comando submetidos à GPU 265 além dos dados de imagem nos quais a GPU 265 está operando. Esta funcionalidade é desejável se a aplicação 210 desejar proteger o conteúdo que é enviado à em-banda do hardware no armazenamento temporário de comando. Fig. 9A mostra a deco-dificação de vídeo usando um armazenamento temporário de comando criptografado 900, por meio do qual o conteúdo é liberado à textura criptografada 400a e é decriptografado através do componente de decriptografia 450 e decodificado pelo decodificador de vídeo 430b. Embora seja possível para o armazenamento temporário de comando ser criptografado, o conteúdo é criptografado na memória de vídeo como também no armazenamento temporário de comando, como mostrado pela estrutura decodificada criptografada 420a. Encriptando o armazenamento temporário de comando é assim apropriado em situações como esta, onde macroblocos estão na memória de vídeo e com vetores de movimento e outros comandos enviados no fluxo de comando. A coação de atomicidade para os dados de textura criptografados também se aplica aos dados de armazenamento temporário de comando criptografados, com o impedimento a criptografia do armazenamento temporário de cor pode não ser suficiente para proteger o conteúdo em questão. Os armazenamento temporários intermediários, por exemplo, o armazenamento temporário Z, pode também ser criptografado para proteger o sistema contra ataques no texto plano. A Fig. 9B mostra transmissão 3D exemplar usando um armazenamento temporário de comando criptografado de acordo com a invenção. Como ilustrado, os comandos de transmissão 3d 810 são crip- tografados na rota para o decodificador de vídeo 430c. Os dados de textura 400a são decriptografados através do componente de decriptografia 450 e processados de acordo com os comandos 810 através do decodificador de vídeo 430c. Incidente a isto, os dados no armazenamento temporário de cor 820 são criptografados pelo componente de criptografi-a/decriptografia 830. A detecção de falsificação pode ser feita antes do consumo do armazenamento temporário de comando, usando dois passos, ou após o armazenamento temporário de comando ter sido consumido. Em uma modalidade, a detecção de falsificação é habilitada após exibição ou transmissão do conteúdo.The facilities of the above described embodiments with respect to the first and second security layers may be extended in accordance with the invention to encrypt the temporary command stores stored on the GPU 265 in addition to the image data on which the GPU 265 is operating. This feature is desirable if application 210 wishes to protect content that is sent to the hardware in-band in command temporary storage. Fig. 9A shows the video deco-diffusion using an encrypted command temporary storage 900, whereby the content is released to the encrypted texture 400a and is decrypted through the decryption component 450 and decoded by the video decoder 430b. Although it is possible for command temporary storage to be encrypted, content is encrypted in video memory as well as in command temporary storage, as shown by the encrypted decoded structure 420a. Encrypting command temporary storage is thus appropriate in situations like this, where macroblocks are in video memory and with motion vectors and other commands sent in the command stream. Atomic coercion for encrypted texture data also applies to encrypted command staging data, while preventing color staging encryption may not be sufficient to protect the content in question. Intermediate temporary stores, for example, temporary Z storage, can also be encrypted to protect the system against plain text attacks. Fig. 9B shows exemplary 3D transmission using encrypted command temporary storage according to the invention. As illustrated, the 3d 810 broadcast commands are encrypted on the route to the 430c video decoder. Texture data 400a is decrypted via decryption component 450 and processed according to commands 810 via video decoder 430c. Incident to this, data in 820 color temporary storage is encrypted by the encryption / decryption component 830. Spoofing detection can be done before command temporary storage is consumed using two steps, or after temporary storage of command has been consumed. In one embodiment, counterfeit detection is enabled after viewing or transmitting the content.

MODALIDADES ALTERNATIVAS ADICIONAIS - CRIPTOGRAFIA DE SAÍDA DE PLACA GRÁFICAADDITIONAL ALTERNATIVE MODES - GRAPHIC OUTPUT ENCRYPTION

Em cada uma das modalidades acima, embora confiabilidade e integridade tenham sido demonstradas e descritas com respeito à parte da linha pontilhada da Fig. 2, confiabilidade e integridade não foram demonstradas com respeito à saída de vídeo, isto é, teoricamente, a interface entre o placa gráfica e o dispositivo de transmissão, como um monitor e/ou dispositivo de transmissão em si está sujeito a um ataque.In each of the above embodiments, although reliability and integrity have been demonstrated and described with respect to the dotted line portion of Fig. 2, reliability and integrity have not been demonstrated with respect to video output, ie theoretically the interface between the graphics card and the transmitting device such as a monitor and / or transmitting device itself is subject to an attack.

Assim, nas modalidades acima descritas, como mostrado na Fig. 9A, em algum ponto durante o processo, embora o conteúdo seja protegido na memória de vídeo e durante o processamento do placa gráfica, os dados são enviados para o DVI/DAC 290 com clareza. Como resultado, os dados podem ser pirateados, ou alterados na rota para o dispositivo de transmissão, e enquanto dentro do dispositivo de transmissão .Thus, in the above described embodiments, as shown in Fig. 9A, at some point during the process, although the content is protected in video memory and during graphics card processing, the data is clearly sent to the DVI / DAC 290. . As a result, data may be pirated, or altered on the route to the transmitting device, and while within the transmitting device.

Assim, conforme uma modalidade alternativa da invenção que pode ser combinada opcionalmente com outras modalidades aqui descritas, um criptoprocessador irmão 220b é fornecido no dispositivo de transmissão para complementar à funcionalidade executada pelo criptoprocessador 220a. Neste respeito, componente de criptografia 910a comunicativamente acoplado ao criptoprocessador 220a encripta os dados antes da liberação para o componente de DVI/DAC 290 e o componente de decriptografia 910b comunicativamente acoplado ao criptoprocessador 220b decifra os dados como parte da exibição ou transmissão que ocorre, impedindo pirataria dos dados. O componente de criptografia 910a pode ser incluído alternada-mente com o componente de DVI/DAC 290. Em resumo, aplicando a mesma criptografia e decriptografia, e técnicas de administração fundamentais, o conteúdo pode ser protegido ao longo do canal seguro de gráficos inteiro para criptografi-camente proteger a liberação e processamento seguros do conteúdo .Thus, according to an alternative embodiment of the invention which may optionally be combined with other embodiments described herein, a sister cryptoprocessor 220b is provided in the transmission device to complement the functionality performed by cryptoprocessor 220a. In this regard, cryptoprocessor communicatively coupled cryptographic component 910a 220a encrypts the data prior to release to the DVI / DAC 290 component and cryptoprocessor 220b communicatively coupled decryption component 910b decrypts the data as part of the display or transmission that occurs, preventing data piracy. Encryption component 910a can be included alternately with DVI / DAC 290 component. In short, by applying the same encryption and decryption and fundamental administration techniques, content can be protected over the entire secure graphics channel to cryptographically protect the secure release and processing of content.

Como acima mencionado, embora modalidades exemplares da presente invenção tenham sido descritas com relação aos vários dispositivos de computação, hardware, software e arquiteturas de rede, os conceitos subjacentes podem ser a-plicados a qualquer dispositivo de computação ou sistema em que é desejável proteger o conteúdo de uma fonte confiável. Assim, as técnicas para criptograficamente proteger o conteúdo de segurança de acordo com a presente invenção podem ser aplicadas em uma variedade de aplicações e dispositivos. Por exemplo, os métodos para criptograficamente proteger o conteúdo de segurança da invenção podem ser aplicados ao sistema operacional de um dispositivo de computação, fornecido como um objeto separado no dispositivo, como parte de outro objeto, como um objeto capaz de ser baixado de um servidor, como um objeto distribuído, etc. Embora linguagens de programação exemplares, peseudocódigo, nomes e exemplos tenham sido aqui selecionados como representativos de várias escolhas, as linguagens, peseudocódigo, nomes e exemplos não são intencionados ser limitativos.As mentioned above, while exemplary embodiments of the present invention have been described with respect to various computing devices, hardware, software and network architectures, the underlying concepts may be applied to any computing device or system where it is desirable to protect the computer. content from a trusted source. Thus, techniques for cryptographically protecting security content in accordance with the present invention may be applied in a variety of applications and devices. For example, methods for cryptographically protecting the security content of the invention may be applied to the operating system of a computing device, provided as a separate object on the device, as part of another object, as an object capable of being downloaded from a server. , such as a distributed object, etc. Although exemplary programming languages, peseudocode, names, and examples have been selected herein as representative of various choices, the languages, peseudocode, names, and examples are not intended to be limiting.

As várias técnicas aqui descritas podem ser implementadas com relação ao hardware ou software ou, onde apropriado, com uma combinação de ambos. Assim, os métodos e a-parelhos da presente invenção, ou certos aspectos ou partes desta, pode ter a forma de código de programa (isto é, instruções) personificadas em meios tangíveis, como disquetes flexíveis, CD-ROMs, discos rígidos, ou qualquer outro médio de armazenamento legível por máquina, em que, quando o código de programa é carregado e executado por uma máquina, como um computador, a máquina se torna um aparelho para praticar a invenção. No caso de execução do código de programa em computadores programáveis, o dispositivo de computação incluirá em geral um processador, um meio de armazenamento legível pelo processador (incluindo memória e/ou elementos de armazenamento voláteis e não voláteis), pelo menos um dispositivo de entrada, e pelo menos um dispositivo de saída. Um ou mais programas que podem utilizar as técnicas da presente invenção, por exemplo, através do uso de um API de processamento de dados, sistema de operação, aplicação confiável ou outros, são preferivelmente implementados em uma linguagem de programação orientada por procedimentos ou objetos de alto nível para comunicar com um sistema de computador. Porém, o(s) programa(s) pode(m) ser implementado(s) na montagem ou linguagem de máquina, se desejado. Em qualquer caso, a linguagem pode ser linguagem compilada ou interpretada, e em várias modalidades da invenção, impostas condições nas implementações do hardware da GPU 265.The various techniques described herein may be implemented with respect to hardware or software or, where appropriate, a combination of both. Thus, the methods and pairings of the present invention, or certain aspects or parts thereof, may take the form of program code (i.e. instructions) embodied in tangible media such as floppy disks, CD-ROMs, hard disks, or any other machine readable storage medium, where, when program code is loaded and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the invention. In the case of program code execution on programmable computers, the computing device will generally include a processor, processor readable storage medium (including volatile and non-volatile memory and / or storage elements), at least one input device , and at least one output device. One or more programs that may utilize the techniques of the present invention, for example, through the use of a data processing API, operating system, reliable application or others, are preferably implemented in a procedural or object oriented programming language. high level to communicate with a computer system. However, the program (s) can be implemented in the assembly or machine language if desired. In either case, the language may be compiled or interpreted language, and in various embodiments of the invention, conditions imposed on hardware implementations of the GPU 265.

Também os métodos e aparelho da presente invenção podem ser praticados por comunicações incorporadas na forma de código de programa que é transmitido em algum médio de transmissão, como em instalação elétrica ou cabeamento, por fibras ópticas ou por qualquer outra forma de transmissão, em que, quando o código de programa é recebido e carregado e executado por uma máquina, como uma EPROM, um arranjo de portal, um dispositivo de lógica programável (PLD), um computador de cliente, um registrador vídeo ou outros, ou uma máquina receptora tendo um placa gráfica e capacidades de criptografia como descrito nas modalidades exemplares acima se torna um aparelho para praticar a invenção. Quando implementado em um processador de propósito geral, o código de programa combina com o processador para fornecer um único aparelho que opera para invocar a funcionalidade da presente invenção. Adicionalmente, qualquer técnica de armazenamento usada com relação à presente invenção invariavelmente pode ser uma combinação de hardware e software.Also the methods and apparatus of the present invention may be practiced by communications incorporated in the form of program code which is transmitted on some transmission medium, such as in electrical installation or cabling, by optical fibers or any other form of transmission, wherein, when program code is received and loaded and executed by a machine, such as an EPROM, a portal array, a programmable logic device (PLD), a client computer, a video recorder or others, or a receiving machine having a Graphics card and encryption capabilities as described in the exemplary embodiments above becomes an apparatus for practicing the invention. When implemented in a general purpose processor, the program code combines with the processor to provide a single apparatus that operates to invoke the functionality of the present invention. Additionally, any storage technique used in connection with the present invention can invariably be a combination of hardware and software.

Embora a presente invenção tenha sido descrita com relação às modalidades preferidas das várias figuras, é para ser entendido que podem ser usadas outras modalidades similares ou podem ser feitas modificações e adições à modalidade descrita para executar a mesma função da presente invenção sem dela divergir. Por exemplo, embora sejam descritos ambientes de rede exemplares da invenção no contexto de um ambiente em rede, como ambiente em rede não hierarquizada, alguém de habilidade na técnica reconhecerá que a presente invenção não é a ele limitada, e que os métodos, como descritos no presente pedido de patente podem aplicar a qualquer dispositivo ou ambiente de computação, como um console de jogos, computador de mão, computador portátil, etc., com ou sem fio, e podem ser aplicados a quaisquer de vários de tais dispositivos de computação conectados por uma rede de comunicações, e interagindo ao longo da rede. Além disso, deve ser enfatizado que uma variedade de plataformas de computador, incluindo sistemas operacionais de dispositivos manuais e outros sistemas de operação específicos em aplicação são contemplados, especialmente uma vez que o número de dispositivos em rede sem fio continua a proliferar. Ainda também, a presente invenção pode ser implementada dentro e ao longo de uma pluralidade de chips ou dispositivos de co-processamento, como um dispositivo tendo uma pluralidade de GPUs, e o armazenamento pode ser efetuado similarmente ao longo de uma pluralidade de dispositivos. Portanto, a presente invenção não deve ser limitada a qualquer modalidade apenas, mas do contrário deve ser interpretada na amplitude e escopo de acordo com as reivindicações em anexo.While the present invention has been described with respect to the preferred embodiments of the various figures, it is to be understood that other similar embodiments may be used or modifications and additions may be made to the embodiment described to perform the same function of the present invention without departing from it. For example, while exemplary network environments of the invention are described in the context of a networked environment, such as unhierarchical networked environment, one skilled in the art will recognize that the present invention is not limited thereto, and that the methods as described in this patent application may apply to any computing device or environment, such as a gaming console, handheld, laptop, etc., wired or wireless, and may be applied to any of several such connected computing devices. by a communications network, and interacting along the network. In addition, it should be emphasized that a variety of computer platforms, including handheld operating systems and other application-specific operating systems are contemplated, especially as the number of wireless network devices continues to proliferate. Still further, the present invention may be implemented within and across a plurality of chips or co-processing devices, such as a device having a plurality of GPUs, and storage may be performed similarly across a plurality of devices. Therefore, the present invention should not be limited to any embodiment only, but otherwise should be interpreted in scope and scope according to the appended claims.

APÊNDICE A. CIFRAS DE FLUXO VERSUS CIFRAS DE BLOCOAPPENDIX A. FLOW CHANNELS VERSUS BLOCK CHANNELS

Este Apêndice detalha as diferenças entre as cifras de fluxo e as cifras de bloco uma vez que elas dizem respeito ao conteúdo deste documento.This Appendix details the differences between flow ciphers and block ciphers as they relate to the contents of this document.

Como uma regra, as cifras de fluxo são mais rápidas e mais simples para implementar que as cifras de bloco.As a rule, stream ciphers are faster and simpler to implement than block ciphers.

Como insinua o nome, cifras de fluxo encriptam e decifram um fluxo de bytes. Para decriptografar o byte de Nth no fluxo, cifra começa no princípio e avança um byte de cada vez para o deslocamento desejado dentro do fluxo.As the name implies, stream ciphers encrypt and decipher a byte stream. To decrypt the Nth byte in the stream, ciphering starts at the beginning and advances one byte at a time to the desired offset within the stream.

Em contraste, as cifras de bloco que estão operando no modo de livro de código eletrônico podem criptografar ou decriptografar blocos arbitrários nos dados, mas devem criptografar/decriptografar um bloco completo de cada vez. Um tamanho de bloco típico é 16 bytes.In contrast, block ciphers operating in electronic codebook mode can encrypt or decrypt arbitrary blocks in the data, but must encrypt / decrypt a complete block at a time. A typical block size is 16 bytes.

As cifras de fluxo são usadas de um tal modo que os mesmos dados nunca são criptografados duas vezes, isto é, a chave usada para criptografia e decriptografia frequentemente deve ser mudada. Quando usado para reprodução de vídeo prêmio, por exemplo, alterando as chaves uma vez por estrutura é suficiente.Stream ciphers are used in such a way that the same data is never encrypted twice, ie the key used for encryption and decryption must often be changed. When used for premium video playback, for example, changing keys once per frame is sufficient.

Como uma nota final, existem cifras de bloco de boa qualidade no domínio público.As a final note, there are good quality block ciphers in the public domain.

Claims (41)

1. Método para criptograficamente proteger conteúdo de segurança com relação a um sistema de gráficos confiável de um dispositivo de computação, o sistema de gráficos confiável tendo memória de video, pelo menos uma unidade de processamento de gráficos (GPU) e um dispositivo de processamento criptográfico comunicativamente acoplado a pelo menos uma GPU, caracterizado pelo fato de que compreende: solicitar, por um de uma aplicação e um dispositivo, o sistema gráfico para executar o processamento e renderização do conteúdo de segurança, em que a solicitação inclui transmitir por um de uma aplicação e dispositivo, uma chave de sessão para o sistema gráfico e transmitir o conteúdo de segurança para pelo menos uma parte criptografada da memória de video; decriptografar o conteúdo de pelo menos uma parte criptografada da memória de video por menos uma GPU em comunicação com um dispositivo de processamento criptográfico; executar um dentre processamento e renderização no conteúdo decriptografado por menos uma GPU; e dar saída ao conteúdo de pelo menos uma GPU.1. Method for cryptographically protecting security content with respect to a computing device's reliable graphics system, the reliable graphics system having video memory, at least one graphics processing unit (GPU) and a cryptographic processing device communicatively coupled to at least one GPU, characterized in that it comprises: requesting, by one of an application and a device, the graphics system to perform the processing and rendering of security content, wherein the request includes transmitting by one of an application. application and device, a session key for the graphics system and transmitting security content to at least an encrypted portion of the video memory; decrypting the contents of at least one encrypted portion of video memory by at least one GPU in communication with a cryptographic processing device; perform one of the rendering and rendering on decrypted content for at least one GPU; and output content from at least one GPU. 2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que: a etapa de decriptografar é realizada por um mecanismo de decriptografia de uma unidade de entrada de pelo menos uma GPU, e adicionalmente compreendendo criptografar o conteúdo com um mecanismo de criptograf ia/decriptograf ia de uma unidade de saída de pelo menos uma GPU.Method according to claim 1, characterized in that: the decrypting step is performed by a decryption mechanism of an input unit of at least one GPU, and further comprising encrypting the content with an encryption mechanism. ia / decrypt an output unit of at least one GPU. 3. Meio legível por computador tendo nele armazenado uma pluralidade de instruções executáveis por computador caracterizado pelo fato de que a pluralidade de instruções inclui: solicitar, por um de uma aplicação e um dispositivo, o sistema gráfico para executar o processamento e rende-rização do conteúdo de segurança, em que a solicitação inclui transmitir por um de uma aplicação e dispositivo, uma chave de sessão para o sistema gráfico e transmitir o conteúdo de segurança para pelo menos uma parte criptografada da memória de vídeo; decriptografar o conteúdo de pelo menos uma parte criptografada da memória de vídeo por pelo menos uma GPU em comunicação com um dispositivo de processamento criptográfico; executar um dentre processamento e renderização no conteúdo decriptografado por pelo menos uma GPU; e dar saída ao conteúdo de pelo menos uma GPU.3. Computer readable medium having stored in it a plurality of computer executable instructions characterized in that the plurality of instructions includes: requesting, by one of an application and a device, the graphics system to perform the processing and rendering of the security content, wherein the request includes transmitting for one of an application and device a session key to the graphics system and transmitting security content to at least an encrypted portion of video memory; decrypting the contents of at least one encrypted portion of video memory by at least one GPU in communication with a cryptographic processing device; perform one of the rendering and rendering on decrypted content by at least one GPU; and output content from at least one GPU. 4. Dispositivo de coprocessamento, caracterizado pelo fato de que os módulos executáveis por computador do pelo menos um meio legível por computador compreendem: um dispositivo para solicitar por um de uma aplicação e dispositivo, o sistema de gráficos para executar um dentre processamento e renderização do conteúdo de segurança, em que o dispositivo para solicitar inclui um dispositivo para transmitir por um dentre uma aplicação e um dispositivo, uma chave de sessão para o sistema gráfico e um dispositivo para transmitir o conteúdo de segurança para pelo menos uma parte criptografada da memória de vídeo; um dispositivo para decriptografar o conteúdo de pelo menos uma parte criptografada da memória de video por pelo menos uma GPU em comunicação com o dispositivo de processamento criptográfico; um dispositivo para executar um dentre processamento e renderização no conteúdo decriptografado por pelo menos uma GPU; e um dispositivo para dar saida ao conteúdo de pelo menos uma GPU.4. A coprocessing device, characterized in that the computer executable modules of the at least one computer readable medium comprise: a device for requesting by one of an application and device, the graphics system for executing one of the processing and rendering of the security content, wherein the device to request includes a device for transmitting between one application and one device, a session key for the graphics system, and a device for transmitting security content to at least one encrypted portion of the memory. video; a device for decrypting the contents of at least one encrypted portion of video memory by at least one GPU in communication with the cryptographic processing device; a device for performing one of the rendering and rendering of content decrypted by at least one GPU; and a device for outputting the content of at least one GPU. 5. Dispositivo de computação que compreende um dispositivo para criptograficamente proteger conteúdo de segurança com relação a um sistema gráfico confiável de um dispositivo de computação, o sistema gráfico confiável tendo memória de video, pelo menos uma unidade de processamento de gráficos (GPU) e um dispositivo de processamento criptográfico comunicativamente acoplado a pelo menos uma GPU, caracterizado pelo fato de que compreende: um dispositivo para solicitar por um dentre uma a-plicação e um dispositivo, o sistema gráfico para executar um dentre processamento e renderização do conteúdo de segurança, em que um dispositivo para solicitar inclui um dispositivo para transmitir por um dentre uma aplicação e dispositivo, uma chave de sessão para o sistema gráfico e um dispositivo para transmitir o conteúdo de segurança para pelo menos uma parte criptografada da memória de video; um dispositivo para decriptografar o conteúdo de pelo menos uma parte criptografada da memória de video por pelo menos uma GPU em comunicação com um dispositivo de processamento criptográfico; um dispositivo para executar um dentre processamento e reriderização no conteúdo decriptografado por pelo menos uma GPU; e um dispositivo para dar saida ao conteúdo de pelo menos uma GPU.A computing device comprising a device for cryptographically protecting security content with respect to a reliable graphics system of a computing device, the reliable graphics system having video memory, at least one graphics processing unit (GPU) and a a cryptographic processing device communicatively coupled to at least one GPU, characterized in that it comprises: a device for requesting one of an application and a device, the graphics system for performing one of processing and rendering of security content, in whereas a requesting device includes a device for transmitting from one application and device, a session key for the graphics system and a device for transmitting security content to at least one encrypted portion of video memory; a device for decrypting the contents of at least one encrypted portion of video memory by at least one GPU in communication with a cryptographic processing device; a device for performing one of the processing and reridering on decrypted content by at least one GPU; and a device for outputting the content of at least one GPU. 6. Dispositivo de computação, de acordo com a reivindicação 5, caracterizado pelo fato de que se a saida do dispositivo para dar saida for diferente do conteúdo de segurança do dispositivo para solicitar ajustando para qualquer processamento executado no conteúdo de segurança por pelo menos uma GPU, um dentre uma aplicação e dispositivo é alertado da diferença.Computing device according to claim 5, characterized in that if the output of the output device is different from the security content of the requesting device by adjusting for any processing performed on the security content by at least one GPU , one of an application and device is alerted of the difference. 7. Dispositivo de computação, de acordo com a reivindicação 5, caracterizado pelo fato de que o dispositivo para transmitir inclui um dispositivo para transmitir o conteúdo de segurança para pelo menos uma superfície de sobreposição criptografada que sobrepõe pelo menos uma superfície primária da dita memória de vídeo.A computing device according to claim 5, characterized in that the transmitting device includes a device for transmitting the security content to at least one encrypted overlay surface overlapping at least one primary surface of said memory. video. 8. Dispositivo de computação, de acordo com a reivindicação 5, caracterizado pelo fato de que o dispositivo para decriptografar o conteúdo de pelo menos uma parte criptografada da memória de vídeo inclui um dispositivo para decriptografar uma fração geométrica de uma superfície primária, onde os pixels diferentes da fração geométrica não são decriptografados.A computing device according to claim 5, characterized in that the device for decrypting the contents of at least one encrypted portion of video memory includes a device for decrypting a geometric fraction of a primary surface, where pixels different from the geometric fraction are not decrypted. 9. Dispositivo de computação, de acordo com a reivindicação 5, caracterizado pelo fato de que o processador criptográfico está permanentemente ligado à placa gráfica, por um de (A) adicionando o processador criptográfico a um chip existente e (B) adicionando o processador criptográfico como um chip separado à placa gráfica, onde a conexão física entre o processador criptográfico e o resto da placa gráfica não é acessível e não é exposta.A computing device according to claim 5, characterized in that the cryptographic processor is permanently attached to the graphics card by one of (A) adding the cryptographic processor to an existing chip and (B) adding the cryptographic processor as a separate chip to the graphics card, where the physical connection between the cryptographic processor and the rest of the graphics card is not accessible and not exposed. 10. Dispositivo de computação, de acordo com a reivindicação 7, caracterizado pelo fato de que o dispositivo para decriptografar inclui um dispositivo para decriptografar pelo menos uma superfície de sobreposição criptografada por um mecanismo de decriptografia da GPU comunicativamente acoplada a um dispositivo de processamento criptográfico.Computing device according to claim 7, characterized in that the decrypting device includes a device for decrypting at least one overlapping surface encrypted by a GPU decryption mechanism communicatively coupled to a cryptographic processing device. 11. Dispositivo de computação, de acordo com a reivindicação 7, caracterizado pelo fato de que o dispositivo para decriptografar inclui um de (A) um dispositivo para decriptografar pelo menos uma superfície de sobreposição criptografada em movimento por hardware de conversão digital para analógico (DAC) do sistema gráfico à medida que o conteúdo é emitido de acordo com a saída do dispositivo para dar saída e (B) um dispositivo para decriptografar pelo menos uma superfície de sobreposição criptografada em movimento logo antes do conteúdo alcançar o hardware de DAC do sistema gráfico.A computing device according to claim 7, characterized in that the decryption device includes one of (A) a device for decrypting at least one digitally to analog conversion hardware moving encrypted overlay surface (DAC). ) of the graphics system as content is output according to the output device output and (B) a device for decrypting at least one moving encrypted overlay surface just before the content reaches the graphics system DAC hardware . 12. Dispositivo de computação, de acordo com a reivindicação 7, caracterizado pelo fato de que o dispositivo para decriptografar inclui um dispositivo para decriptografar pelo menos uma superfície de sobreposição criptografada antes do conteúdo alcançar o hardware de DAC do sistema gráfico por um componente não tendo nenhum canal de retorno para o sistema hospedeiro.A computing device according to claim 7, characterized in that the decrypting device includes a device for decrypting at least one encrypted overlay surface before the content reaches the graphics system DAC hardware by a component having no no return channels to the host system. 13. Dispositivo de computação, de acordo com a reivindicação 5, caracterizado pelo fato de que ainda inclui: um dispositivo para recriptografar o conteúdo por pelo menos uma GPU em comunicação com o dispositivo de processamento criptográfico antes da saída através do dispositivo para dar de saída; e um dispositivo para decriptografar o conteúdo re-criptografado por pelo menos um segundo dispositivo de processamento criptográfico de um dispositivo de computação externo .A computing device according to claim 5, further comprising: a device for re-encrypting content by at least one GPU in communication with the cryptographic processing device prior to output through the output device ; and a device for decrypting re-encrypted content by at least a second cryptographic processing device of an external computing device. 14. Dispositivo de computação, de acordo com a reivindicação 5, caracterizado pelo fato de que o conteúdo é transmitido na forma digital para um dispositivo externo tendo um segundo dispositivo de processamento criptográfico e a decriptografia do dispositivo para decriptografia ocorre em um dispositivo externo.Computing device according to claim 5, characterized in that the content is transmitted in digital form to an external device having a second cryptographic processing device and decryption of the decryption device takes place on an external device. 15. Dispositivo de computação, de acordo com a reivindicação 13, caracterizado pelo fato de que o dispositivo de computação externo é um de (A) um monitor, (B) um aparelho decodificador e (C) um dispositivo de renderização de processamento de sinal digital (DSP).Computing device according to claim 13, characterized in that the external computing device is one of (A) a monitor, (B) a decoder apparatus and (C) a signal processing rendering device. digital (DSP). 16. Dispositivo de computação, de acordo com a reivindicação 7, caracterizado pelo fato de que o dispositivo para transmitir inclui um dispositivo para transmitir o conteúdo de segurança para um de (A) uma primeira sobreposição confidencial criptografada para renderização básica do conteúdo de segurança e (B) uma segunda sobreposição protegida criptografada especificamente projetada para apresentar interfaces de usuário sensíveis, (C) uma primeira região criptografada de uma superfície primária para renderização básica do conteúdo de segurança e (D) uma segunda região criptografada de uma superfície primária especificamente projetada para apresentar interfaces de usuário sensíveis.A computing device according to claim 7, characterized in that the transmitting device includes a device for transmitting security content to one of (A) a first encrypted confidential overlay for basic rendering of security content and (B) a second encrypted protected overlay specifically designed to present sensitive user interfaces, (C) a first encrypted region of a primary surface for basic rendering of security content, and (D) a second encrypted region of a primary surface specifically designed for present sensitive user interfaces. 17. Dispositivo de computação, de acordo com a reivindicação 5, caracterizado pelo fato de que o dispositivo para decriptografar inclui um dispositivo para calcular uma compilação criptográfica dos dados decriptografados, e o dispositivo de computação adicionalmente inclui: um dispositivo para transmitir a compilação criptográfica a um dentre uma aplicação e dispositivo para assegurar que os pixels exibidos são os pixels enviados com relação à solicitação por um dentre uma aplicação e um dispositivo por um dispositivo de solicitação.A computing device according to claim 5, characterized in that the decryption device includes a device for calculating a cryptographic compilation of the decrypted data, and the computing device further includes: a device for transmitting the cryptographic compilation to one of an application and device to ensure that the displayed pixels are the pixels sent against the request by one of an application and a device by a request device. 18. Dispositivo de computação, de acordo com a reivindicação 16, caracterizado pelo fato de que a segunda sobreposição protegida criptografada está sempre no topo e não obscurecivel e em que os conteúdos da segunda sobreposição protegida criptografada são verificados por pelo menos uma GPU.A computing device according to claim 16, characterized in that the second encrypted protected overlay is always on top and not obscurable and wherein the contents of the second encrypted protected overlay are scanned by at least one GPU. 19. Dispositivo de computação, de acordo com a reivindicação 16, caracterizado pelo fato de que um dispositivo para decriptografar inclui (A) um dispositivo para decripto-grafar com um primeiro componente de decriptografia de cifras de fluxo os conteúdos da primeira sobreposição confidencial criptografada, (B) um dispositivo para decriptografar com um segundo componente de decriptografia de cifras de fluxo os conteúdos da segunda sobreposição protegida criptografada, (C) um dispositivo para decriptografar com um primeiro componente de decriptografia de cifras de fluxo os conteúdos da primeira região criptografada de superfície primária e (D) um dispositivo para decriptografar com um segundo componente de decriptografia de cifras de fluxo os conteúdos da segunda região criptografada de superfície primária.Computing device according to claim 16, characterized in that a decryption device includes (A) a decryption device with a first stream cipher decryption component containing the contents of the first encrypted confidential overlay, (B) a device for decrypting with a second stream cipher decryption component the contents of the second encrypted protected overlay, (C) a device for decrypting with a first stream cipher decryption component the contents of the first surface encrypted region and (D) a device for decrypting with a second stream cipher decryption component the contents of the second primary surface encrypted region. 20. Dispositivo de computação, de acordo com a reivindicação 19, caracterizado pelo fato de que pelo menos um bit de cada pixel em uma superfície primária é usado para de- terminar a relação em uma superfície protegida virtual para o pixel, em que a placa gráfica seleciona uma chave de decrip-tografia apropriada para o pixel com base em pelo menos um bit.A computing device according to claim 19, characterized in that at least one bit of each pixel on a primary surface is used to determine the ratio on a virtual protected surface to the pixel, wherein the card Graphic Selects an appropriate decryption key for the pixel based on at least one bit. 21. Dispositivo de computação, de acordo com a reivindicação 20, caracterizado pelo fato de que se pelo menos um bit contiver um valor zero, então a superfície protegida virtual associada com pelo menos um bit é interpretada como uma região para não decriptografar.Computing device according to claim 20, characterized in that if at least one bit contains a zero value, then the virtual protected surface associated with at least one bit is interpreted as a non-decrypting region. 22. Dispositivo de computação, de acordo com a reivindicação 19, caracterizado pelo fato de que ainda inclui um dispositivo para selecionar, uma vez os valores de pixel de-criptografados estão disponíveis, por um componente de seleção de pixel de pelo menos uma GPU, o valor de pixel de um dentre (A) a segunda sobreposição protegida criptografada, (B) a primeira sobreposição confidencial criptografada e (C) uma superfície primária.A computing device according to claim 19, further including a device for selecting, once decrypted pixel values are available, by a pixel selection component of at least one GPU, the pixel value of one of (A) the second encrypted protected overlay, (B) the first encrypted confidential overlay, and (C) a primary surface. 23. Dispositivo de computação, de acordo com a reivindicação 16, caracterizado pelo fato de que a solicitação do dispositivo para solicitar inclui pelo menos um dentre (A) uma caixa de ligação de fonte e destino de pelo menos uma superfície de sobreposição criptografada, (B) uma chave de cor de destino de pelo menos uma superfície de sobreposição criptografada, (C) no caso da primeira sobreposição confidencial criptografada, uma especificação de um índice de chave de criptografia dos conteúdos de um armazenamento temporário de retorno de sobreposição para o qual os dados devem ser alternados, (D) no caso da segunda sobreposição protegida criptografada, uma especificação de um local de memória onde pelo menos um de um código de redundância cíclico (CRC) , uma medida de integridade e um valor de compilação dos conteúdos de sobreposição decriptografados são para ser escritos, (E) uma caixa de ligação de fonte e destino de pelo menos uma superfície primária criptografada, e (F) uma chave de cor de destino da dita pelo menos uma superfície primária criptografada.A computing device according to claim 16, characterized in that the request for the device to request includes at least one of (A) a source and destination junction box of at least one encrypted overlay surface, ( B) a destination color key of at least one encrypted overlay surface, (C) in the case of the first encrypted confidential overlay, a specification of an encryption key index of the contents of an overlay return buffer for which (D) in the case of the second encrypted protected overlay, a specification of a memory location where at least one of a cyclic redundancy code (CRC), an integrity measure and a compilation value of the contents of decrypted overlays are to be written, (E) a source and destination junction box of at least one surface p (F) a destination color key of said at least one encrypted primary surface. 24. Dispositivo de computação, de acordo com a reivindicação 23, caracterizado pelo fato de que um dentre uma aplicação e um dispositivo calcula pelo menos um do CRC, medida de integridade e valor de compilação se um dentre uma aplicação e um dispositivo estiver relacionado com a integridade do conteúdo.Computing device according to claim 23, characterized in that one of an application and a device calculates at least one of the CRC, integrity measure and compilation value if one of an application and a device is related to the integrity of the content. 25. Dispositivo de computação, de acordo com a reivindicação 5, caracterizado pelo fato de que pelo menos um armazenamento temporário de comando enviado a uma unidade de decodificação de vídeo da pelo menos uma GPU incidente à solicitação do dispositivo para solicitar é criptografado por pelo menos um de uma aplicação e um dispositivo e decripto-grafado através da unidade de decodificação de vídeo em comunicação com a unidade de processamento criptográfico.A computing device according to claim 5, characterized in that at least one command temporary storage sent to a video decoding unit of at least one GPU incident to the request of the requesting device is encrypted by at least one of an application and a device and decrypted through the video decoding unit in communication with the cryptographic processing unit. 26. Dispositivo de computação, de acordo com a reivindicação 25, caracterizado pelo fato de que ainda compreende um dispositivo para detectar a falsificação de pelo menos um armazenamento temporário de comando um dentre (A) usando duas passagens antes do consumo do pelo menos um armazenamento temporário de comando e (B) após o armazenamento temporário de comando ter sido consumido.A computing device according to claim 25, further comprising a device for detecting the tampering of at least one command temporary storage one of (A) using two passages prior to the consumption of the at least one storage. command buffer and (B) after command temporary storage has been consumed. 27. Dispositivo de computação, de acordo com a reivindicação 26, caracterizado pelo fato de que: o dispositivo para decriptografar o conteúdo de pelo menos uma parte criptografada da memória de vídeo compre- ende um mecanismo de decriptografia de uma unidade de entrada de pelo menos uma GPU, adicionalmente compreendendo: um dispositivo para criptografar o conteúdo com um mecanismo de criptografia/decriptografia de uma unidade de saida da pelo menos uma GPU.A computing device according to claim 26, characterized in that: the device for decrypting the content of at least one encrypted portion of video memory comprises a decryption mechanism of an input unit of at least a GPU, further comprising: a device for encrypting content with an encryption / decryption mechanism of an output unit of at least one GPU. 28. Dispositivo de computação, de acordo com a reivindicação 27, caracterizado pelo fato de que a unidade de entrada é uma unidade de mapeamento de textura e a unidade de saida é uma unidade de combinação alfa, e em que pelo menos uma parte criptografada da memória de video é uma superfície de textura criptografada.Computing device according to claim 27, characterized in that the input unit is a texture mapping unit and the output unit is an alpha combination unit, and at least one encrypted part of the Video memory is an encrypted texture surface. 29. Dispositivo de computação, de acordo com a reivindicação 27, caracterizado pelo fato de que o conteúdo de segurança é um dentre dados de textura, texto puro e macrob-locos de vídeo.A computing device according to claim 27, characterized in that the security content is one of texture data, plain text, and video macroblocations. 30. Dispositivo de computação, de acordo com a reivindicação 27, caracterizado pelo fato de que o dispositivo para criptografar e um dispositivo para decriptografar incluem um dispositivo para criptografar e um dispositivo para decriptografar usando cifras de bloco, respectivamente.A computing device according to claim 27, characterized in that the encryption device and a decryption device include a encryption device and a decryption device using block ciphers, respectively. 31. Dispositivo de computação, de acordo com a reivindicação 28, caracterizado pelo fato de que o mecanismo de decriptografia da unidade de mapeamento de textura decripto-grafa em um enchimento de linha de cache e em que o mecanismo de criptografia/decriptografia da unidade de combinação alfa criptografa antes de escrever.A computing device according to claim 28, characterized in that the decryption mechanism of the decrypt-texture texture mapping unit in a cache line filler and the encryption / decryption mechanism of the Alpha combination encrypts before writing. 32. Dispositivo de computação, de acordo com a reivindicação 28, caracterizado pelo fato de que ainda inclui um dispositivo para decriptografar pelo mecanismo de criptogra-fia/decriptografia da unidade de combinação alfa ao ler uma linha de cache de um armazenamento temporário de cor em memória de video.A computing device according to claim 28, further including a device for decrypting by the alpha combination unit encryption / decryption mechanism when reading a cache line from a color buffer in Video memory. 33. Dispositivo de computação, de acordo com a reivindicação 27, caracterizado pelo fato de que ainda inclui: um dispositivo para alternar o conteúdo de saida criptografado de uma superfície primária criptografada posterior a uma superfície primária criptografada frontal da memória de vídeo; um segundo dispositivo para decriptografar o conteúdo de saída criptografado por um segundo mecanismo de de-criptografia de pelo menos uma GPU em comunicação com o dispositivo de processamento criptográfico; e um segundo dispositivo para dar saída ao conteúdo de saída.A computing device according to claim 27, further comprising: a device for switching encrypted output content from an encrypted primary surface posterior to a front encrypted primary surface of video memory; a second device for decrypting encrypted output content by a second decryption mechanism of at least one GPU in communication with the cryptographic processing device; and a second device for outputting output content. 34. Dispositivo de computação, de acordo com a reivindicação 27, caracterizado pelo fato de que o dispositivo para dar saída inclui um dispositivo para dar saída ao conteúdo criptografado para uma cadeia de alternação de sobreposição confidencial e os módulos executáveis por computador adicionalmente incluem: um dispositivo para alternar o conteúdo de saída criptografado de uma superfície confidencial criptografada posterior para uma superfície confidencial criptografada frontal, onde a criptografia através do mecanismo de cripto-grafia/decriptografia inclui um dispositivo para criptografar utilizando criptografia de cifras de fluxo; e um segundo dispositivo para decriptografar o conteúdo de saída criptografado por um mecanismo de decriptografia de cifras de fluxo de pelo menos uma GPU em comunicação com o dispositivo de processamento criptográfico.A computing device according to claim 27, characterized in that the output device includes a device for outputting the encrypted content to a confidential overlapping alternation chain and the computer executable modules additionally include: a device for switching encrypted output content from a later encrypted confidential surface to a front encrypted confidential surface, where encryption via the encryption / decryption mechanism includes a device for encrypting using stream cipher encryption; and a second device for decrypting the encrypted output content by a stream cipher decryption mechanism of at least one GPU in communication with the cryptographic processing device. 35. Dispositivo de computação, de acordo com a reivindicação 34, caracterizado pelo fato de que ainda compreende : um dispositivo para codificar um local dentro do conteúdo antes da criptografia através do dispositivo para criptografar; e um dispositivo para decodificar o local dentro do conteúdo após a decriptografia pelo segundo dispositivo para decriptografar, onde o local está externamente indisponível preservando a integridade de um mapeamento de texto puro-texto de cifras.A computing device according to claim 34, further comprising: a device for encoding a location within the content prior to encryption through the device for encrypting; and a device for decoding the location within content after decryption by the second decrypting device, where the location is externally unavailable preserving the integrity of a plaintext ciphertext mapping. 36. Dispositivo de computação, de acordo com a reivindicação 27, caracterizado pelo fato de que se a saída do dispositivo para dar saída for diferente do conteúdo de segurança de um dispositivo para solicitar ajuste para qualquer processamento executado no conteúdo de segurança por pelo menos uma GPU, um dentre uma aplicação e um dispositivo é alertado da diferença.Computing device according to claim 27, characterized in that if the output of the output device is different from the security content of a device to request adjustment for any processing performed on the security content by at least one GPU, one of an application and a device is alerted of the difference. 37. Dispositivo de computação, de acordo com a reivindicação 27, caracterizado pelo fato de que os módulos executáveis por computador adicionalmente incluem: um dispositivo para recriptografar o conteúdo por pelo menos uma GPU em comunicação com o dispositivo de processamento criptográfico antes da saída através do dispositivo para dar saída; e um dispositivo para decriptografar o conteúdo re-criptografado por pelo menos um segundo dispositivo de processamento criptográfico de um dispositivo de computação externo .A computing device according to claim 27, characterized in that the computer executable modules additionally include: a device for re-encrypting content by at least one GPU in communication with the cryptographic processing device prior to output via output device; and a device for decrypting re-encrypted content by at least a second cryptographic processing device of an external computing device. 38. Dispositivo de computação, de acordo com a reivindicação 37, caracterizado pelo fato de que um dispositivo de computação externo é um dentre (A) um monitor, (B) um aparelho decodificador e (C) um dispositivo de renderização de processamento de sinal digital (DSP).Computing device according to claim 37, characterized in that an external computing device is one of (A) a monitor, (B) a decoder apparatus and (C) a signal processing rendering device. digital (DSP). 39. Dispositivo de computação, de acordo com a reivindicação 27, caracterizado pelo fato de que as texturas criptografadas e superfícies criptografadas de tela preta liberadas por um dentre uma aplicação e um dispositivo são codificadas com cifras de bloco, e um dentre uma aplicação e dispositivo arranja as cifras de bloco com um formato prede-finido de arranjo que converte um local (x,y) no conteúdo para um deslocamento para pelo menos um dentre YUV, RGB, YUY2 e formatos planares compactados.Computing device according to claim 27, characterized in that the encrypted textures and encrypted black screen surfaces released by one of an application and a device are encoded with block ciphers, and one of an application and device arranges block ciphers with a predefined array format that converts a location (x, y) in the content to an offset to at least one of YUV, RGB, YUY2, and compressed planar formats. 40. Dispositivo de computação, de acordo com a reivindicação 27, caracterizado pelo fato de que pelo menos um armazenamento temporário de comando enviado a uma unidade de decodificação de vídeo de pelo menos uma GPU incidente à solicitação do dispositivo para solicitar é criptografado por pelo menos um dentre uma aplicação e dispositivo e decripto-grafado através da unidade de decodificação de vídeo em comunicação com a unidade de processamento criptográfico.A computing device according to claim 27, characterized in that at least one command temporary storage sent to a video decoding unit of at least one GPU incident to the request of the requesting device is encrypted by at least one of an application and device is decrypted via the video decoding unit in communication with the cryptographic processing unit. 41. Dispositivo de computação, de acordo com a reivindicação 27, caracterizado pelo fato de que os módulos executáveis por computador ainda compreendem um dispositivo para adicionalmente detectar falsificação de pelo menos um armazenamento temporário de comando um dentre (A) usando duas passagens antes do consumo do pelo menos um armazenamento temporário de comando e (B) após o armazenamento temporário de comando ter sido consumido.A computing device according to claim 27, characterized in that the computer executable modules further comprise a device for further detecting counterfeit of at least one command buffer one of (A) using two passages prior to consumption. at least one command temporary storage and (B) after the command temporary storage has been consumed.
BRPI0205818-9A 2001-12-04 2002-12-03 Method, medium and device to cryptographically protect security content BRPI0205818B1 (en)

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/125,170 US7380130B2 (en) 2001-12-04 2002-04-18 Methods and systems for authentication of components in a graphics system
PCT/US2002/038827 WO2003048939A1 (en) 2001-12-04 2002-12-03 Methods and systems for cryptographically protecting secure content

Publications (2)

Publication Number Publication Date
BR0205818A BR0205818A (en) 2004-01-06
BRPI0205818B1 true BRPI0205818B1 (en) 2015-06-02

Family

ID=35847687

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0205818-9A BRPI0205818B1 (en) 2001-12-04 2002-12-03 Method, medium and device to cryptographically protect security content

Country Status (2)

Country Link
BR (1) BRPI0205818B1 (en)
RU (1) RU2308077C2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AR077680A1 (en) * 2009-08-07 2011-09-14 Dolby Int Ab DATA FLOW AUTHENTICATION
US8760459B2 (en) * 2009-12-30 2014-06-24 Intel Corporation Display data management techniques
RU2647631C1 (en) * 2017-05-30 2018-03-16 Акционерное общество "Российская корпорация ракетно-космического приборостроения и информационных систем" (АО "Российские космические системы") Satellite communication system with protection of the remote operation management channel

Also Published As

Publication number Publication date
BR0205818A (en) 2004-01-06
RU2308077C2 (en) 2007-10-10
RU2004110622A (en) 2005-09-10

Similar Documents

Publication Publication Date Title
CA2434328C (en) Methods and systems for cryptographically protecting secure content
KR101030354B1 (en) Methods and systems for authentication of components in a graphics system
US8572403B2 (en) Digital video guard
JP4689945B2 (en) Resource access method
US7353393B2 (en) Authentication receipt
US7802111B1 (en) System and method for limiting exposure of cryptographic keys protected by a trusted platform module
US7739505B2 (en) Linking Diffie Hellman with HFS authentication by using a seed
US20030174842A1 (en) Managing private keys in a free seating environment
JP2011204284A (en) Computer recording medium for sealing secret for calling program, and method for unsealing secret
JP2003330365A (en) Method for distributing/receiving contents
JP2007511810A (en) Proof of execution using random number functions
KR20070122502A (en) Hardware functionality scan for device authentication
BRPI0205818B1 (en) Method, medium and device to cryptographically protect security content
CN114221784A (en) Data transmission method and computer equipment
WO2003024019A1 (en) Authentication receipt
Truskovsky Protocol and architecture for the secure delivery of high-value digital content

Legal Events

Date Code Title Description
B15K Others concerning applications: alteration of classification

Free format text: A CLASSIFICACAO ANTERIOR ERA: G06F 11/30

Ipc: G06F 21/64 (2013.01), G06F 21/79 (2013.01)

B06A Notification to applicant to reply to the report for non-patentability or inadequacy of the application according art. 36 industrial patent law
B09A Decision: intention to grant
B16A Patent or certificate of addition of invention granted

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 02/06/2015, OBSERVADAS AS CONDICOES LEGAIS.

B25A Requested transfer of rights approved
B21F Lapse acc. art. 78, item iv - on non-payment of the annual fees in time

Free format text: REFERENTE A 18A ANUIDADE.

B24J Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12)

Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2606 DE 15-12-2020 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.