RU2308077C2 - Methods and systems for cryptographic protection of protected content - Google Patents

Methods and systems for cryptographic protection of protected content Download PDF

Info

Publication number
RU2308077C2
RU2308077C2 RU2004110622/09A RU2004110622A RU2308077C2 RU 2308077 C2 RU2308077 C2 RU 2308077C2 RU 2004110622/09 A RU2004110622/09 A RU 2004110622/09A RU 2004110622 A RU2004110622 A RU 2004110622A RU 2308077 C2 RU2308077 C2 RU 2308077C2
Authority
RU
Russia
Prior art keywords
encrypted
content
overlay
bgo
decryption
Prior art date
Application number
RU2004110622/09A
Other languages
Russian (ru)
Other versions
RU2004110622A (en
Inventor
Пол ИНГЛЭНД (US)
Пол ИНГЛЭНД
Маркус ПЕЙНАДО (US)
Маркус ПЕЙНАДО
Николас П. УИЛТ (US)
Николас П. УИЛТ
Original Assignee
Майкрософт Корпорейшн
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Майкрософт Корпорейшн filed Critical Майкрософт Корпорейшн
Publication of RU2004110622A publication Critical patent/RU2004110622A/en
Application granted granted Critical
Publication of RU2308077C2 publication Critical patent/RU2308077C2/en

Links

Images

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/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/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories

Landscapes

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

Abstract

FIELD: methods and systems for cryptographic protection of data in graphical subsystems of a computing device.
SUBSTANCE: in accordance to the invention, methods for encoding of video memory content are realized, so that unsanctioned software may not obtain substantial access to it, resulting in supported confidentiality. Also, a mechanism is suggested for detecting unsanctioned access, providing a warning, when data is changed in a certain way, resulting in maintained integrity. In different variants of realization, content of overlay surfaces and/or command buffers are encoded, and/or graphic processing block is capable of working with encoded content, limiting access to content for unauthorized sides, devices or software.
EFFECT: ensured confidentiality and protection of data sent through graphic channel.
3 cl, 15 dwg, 3 tbl, 1 ann

Description

Перекрестные ссылки на родственные заявкиCross references to related applications

Данная заявка заявляет право на предварительные заявки с номерами 60/337617 от 4 декабря 2001 и 60/339143 от 10 декабря 2001 и связана с обычным образом переуступленной совместно поданной заявкой № 10/125170 на патент США, поданной 18 апреля 2002.This application claims the provisional application numbers 60/337617 dated December 4, 2001 and 60/339143 dated December 10, 2001 and is related to the commonly reassigned co-filed US Patent Application No. 10/125170 filed April 18, 2002.

Извещение об авторском праве и разрешениеCopyright Notice and Permission

Часть раскрытия в данном патентном документе может содержать материал, который охраняется авторским правом. Обладатель авторского права не имеет возражений против факсимильного воспроизведения кем бы то ни было этого патентного документа или раскрытия патента, как оно представлено в делах и записях Ведомства по патентам и товарным знакам, но во всех иных случаях оставляет за собой все авторские права. К данному документу должно прилагаться следующее указание: Авторское право © 2001, Microsoft Corp.Part of the disclosure in this patent document may contain material that is protected by copyright. The copyright holder has no objection to the facsimile reproduction by anyone of this patent document or patent disclosure, as it is presented in the files and records of the Patent and Trademark Office, but in all other cases reserves all copyrights. The following notice must be attached to this document: Copyright © 2001, Microsoft Corp.

Область изобретенияField of Invention

Настоящее изобретение относится к способам и системам для криптографической защиты охраняемого содержимого. В частности, настоящее изобретение относится к методам криптографической защиты содержимого, направляемого через графический канал, с обеспечением для этого содержимого как конфиденциальности, так и защиты от подделки.The present invention relates to methods and systems for cryptographic protection of protected content. In particular, the present invention relates to methods for cryptographic protection of content sent through a graphic channel, while ensuring that the content is both confidential and anti-counterfeit.

Существующий уровень техникиThe current level of technology

Интернет и многие другие источники и приложения предоставляют огромный массив меняющейся или фиксированной информации или иного содержимого для прослушивания, просмотра, обработки, хранения и иной визуализации. Однако в настоящее время не существует практического пути для сбора, записи или визуализации меняющейся или фиксированной информации или иного содержимого защищенным от копирования образом, чтобы пираты не смогли подключиться к потоку в какой-нибудь точке вдоль канала - в процессе ли обработки содержимого или в процессе визуализации содержимого, - для получения в собственность копии или изменения этого содержимого. Данная проблема существовала в прошлом и в связи с другими устройствами визуализации и записи информации, например, - видеомагнитофонами для телевизионного содержимого или ленточными магнитофонами для аудиосигналов, - но по меньшей мере с одним ключевым отличием. Поскольку содержимое цифровой информации может быть записано фактически без потерь сигнала, это создает для обладателей авторских прав «риск» того, что их работы будут свободно (пиратски) распространяться без компенсации. С использованием видеомагнитофонов и ленточных магнитофонов устройство(а) и среда передачи вносят в процесс записи шум или искажение данных. При меняющейся (потоковой) или фиксированной цифровой среде передачи не имеет значения, почему не могут осуществляться фактически свободные от потерь преобразования и повторные передачи, хотя бы в пределах способностей человеческих слуха и зрения, и не имеет значения, почему естественные цифровые данные не могут сохраняться и свободно распределяться. Таким образом, было бы желательно предотвратить неограниченное перераспределение цифровых данных, потому что нет ни малейшей разницы между тем, что могут предоставить владельцы авторского права за плату, и тем, что могут свободно предоставить пираты. Кроме того, в отношении передач, которые желательно иметь конфиденциальными, - таких как транзакции электронной коммерции, - для пользователя, участвующего в диалоге, важно, чтобы никто третий не стал участником этих транзакций. Таким образом, по отношению к содержимому от достоверного источника в настоящее время нет практического способа для «защищенной» обработки или визуализации данных на пользовательском компьютере без предотвращения пиратства или искажения.The Internet and many other sources and applications provide a huge array of changing or fixed information or other content for listening, viewing, processing, storage and other visualization. However, at present, there is no practical way to collect, record or visualize changing or fixed information or other content in a copy-protected manner so that pirates cannot connect to the stream at any point along the channel - during the content processing or during visualization content - to obtain ownership of a copy or change of this content. This problem existed in the past and in connection with other devices for visualizing and recording information, for example, video recorders for television content or tape recorders for audio signals, but with at least one key difference. Since the content of digital information can be recorded virtually without signal loss, this creates a “risk” for copyright owners that their work will be freely distributed (pirated) without compensation. Using video recorders and tape recorders, the device (a) and the transmission medium introduce noise or data distortion into the recording process. With a changing (streaming) or fixed digital transmission medium, it does not matter why transformations and retransmissions that are practically free of loss, even at least within the limits of human hearing and vision, cannot be performed, and it does not matter why natural digital data cannot be stored and freely distributed. Thus, it would be desirable to prevent the unlimited redistribution of digital data, because there is not the slightest difference between what copyright owners can provide for a fee and what pirates can freely provide. In addition, in relation to transmissions that are desired to be kept confidential, such as e-commerce transactions, for the user participating in the dialogue, it is important that no one third becomes involved in these transactions. Thus, with respect to content from a reliable source, there is currently no practical way to “securely” process or visualize data on a user computer without preventing piracy or distortion.

В частности, когда содержимое передается по каналу между главной вычислительной системой, одним или более блоками графической обработки (БГО) и визуализирующим устройством, например монитором, для пирата или иной несанкционированной третьей стороны имеется несколько возможностей подключиться к линии или сигналу и либо незаконно получить сигнал, либо исказить его. Кроме того, поскольку диалог пользователей становится все более усложненным благодаря услугам передачи сообщений и организации видеотелеконференций, обеспечение достоверного канала передачи для охраняемого содержимого, откуда бы оно ни исходило, становится все более важным движением вперед.In particular, when the content is transmitted through the channel between the main computing system, one or more graphic processing units (BGO) and a visualizing device, such as a monitor, there are several possibilities for a pirate or other unauthorized third party to connect to a line or signal and or to illegally receive a signal, either distort it. In addition, as user dialogue is becoming more complicated due to messaging and video teleconferencing services, providing a reliable transmission channel for protected content, wherever it comes from, is becoming an increasingly important advance.

Далее, ясно, что будущие поколения операционных систем, вычислительных устройств или программных приложений будут использовать более мощные в вычислительном отношении БГО для коммерческих приложений, по сравнению с привлечением более мощных в вычислительном отношении центральных процессоров (ЦП), как в современных персональных компьютерах. Таким образом, гарантирование того, что содержимое посылается на БГО посредством «достоверных программных приложений», станет фундаментальным свойством для будущих вычислительных устройств, но не обеспечивается в должной мере нынешними вычислительными системами.Further, it is clear that future generations of operating systems, computing devices, or software applications will use more computationally powerful BGOs for commercial applications, compared with the use of more computationally powerful central processors (CPUs), as in modern personal computers. Thus, guaranteeing that content is sent to the BGO through “reliable software applications” will become a fundamental property for future computing devices, but is not adequately provided by current computing systems.

Можно считать, что эта проблема предоставления защищенного канала передачи для достоверного содержимого состоит из двух частей: (1) необходимо гарантировать, что достоверное содержимое нельзя скопировать или просмотреть в некой уязвимой точке в канале передачи (конфиденциальность), и (2) необходимо гарантировать, что канал передачи предотвращает несанкционированное искажение данных в канале (защищенность). В контексте системной защиты сложность является препятствием, потому что она усложняет обеспечение защищенности системы. Как в случае с аэропортом или иного сценария обеспечения безопасности, чем больше входов и выходов имеет система, тем труднее становится обеспечить ее безопасность. В этом отношении в настоящее время не имеется средств, с помощью которых объем функций БГО и драйвера(ов) дисплея может быть сделан достоверным в терминах как конфиденциальности, так и защищенности. Таким образом, было бы желательно реализовать достоверную графическую среду в связи с вычислительным устройством, которое принимает содержимое от достоверного источника, так что пользователь этого устройства может быть уверен, что это содержимое не может быть скопировано без разрешения и не может быть фальсифицировано или изменено третьей стороной.We can assume that this problem of providing a secure transmission channel for reliable content consists of two parts: (1) it is necessary to ensure that the reliable content cannot be copied or viewed at some weak point in the transmission channel (confidentiality), and (2) it must be guaranteed that The transmission channel prevents unauthorized data distortion in the channel (security). In the context of system protection, complexity is an obstacle because it complicates the security of the system. As in the case of an airport or other security scenario, the more entrances and exits the system has, the more difficult it is to ensure its security. In this regard, at present, there are no means by which the scope of the BGO functions and the display driver (s) can be made reliable in terms of both confidentiality and security. Thus, it would be desirable to implement a reliable graphical environment in connection with a computing device that receives content from a reliable source, so that the user of this device can be sure that this content cannot be copied without permission and cannot be falsified or altered by a third party .

Сущность изобретенияSUMMARY OF THE INVENTION

Ввиду вышеизложенного, настоящее изобретение обеспечивает способы и системы для криптографической защиты охраняемого содержимого в связи с графической подсистемой вычислительного устройства. Для зашифровки содержимого видеопамяти применяются такие методы, что несанкционированное программное обеспечение не может получить к нему доступа, благодаря чему удовлетворяется цель конфиденциальности. Кроме того, предложен механизм обнаружения фальсификации, обеспечивающий осведомленность о том, когда данные изменены каким-либо образом, благодаря чему удовлетворяется цель защищенности. В различных вариантах осуществления изобретения раскрывает, как шифровать содержимое оверлейных поверхностей и/или командных буферов, и/или раскрывает, как разрешить БГО работать с зашифрованным содержимым при предотвращении его доступности для не доверенных сторон, устройств или программного обеспечения.In view of the foregoing, the present invention provides methods and systems for cryptographic protection of protected content in connection with a graphics subsystem of a computing device. Such methods are used to encrypt the contents of the video memory that unauthorized software cannot gain access to it, thereby satisfying the purpose of confidentiality. In addition, a fraud detection mechanism has been proposed that provides awareness of when the data has been changed in any way, thereby satisfying the purpose of security. In various embodiments, the invention discloses how to encrypt the contents of overlay surfaces and / or command buffers, and / or discloses how to allow BGO to work with encrypted content while preventing it from being accessible to untrusted parties, devices, or software.

Способы по изобретению различным образом включают в себя методы криптографической защиты охраняемого содержимого в связи с достоверными графическими системами, имеющими память видеоданных, блок(и) графической обработки (БГО) и устройство криптографической обработки, соединенное для осуществления связи с БГО, причем способы содержат запрашивание графической системы программным приложением либо устройством на выполнение обработки или визуализации охраняемого содержимого, при этом запрашивание включает в себя передачу сеансового ключа программным приложением либо устройством в графическую систему и передачу охраняемого содержимого в зашифрованную часть(и) памяти видеоданных, дешифрирование содержимого зашифрованной части(ей) памяти видеоданных блоком(ами) графической обработки при осуществлении связи с устройством криптографической обработки, выполнение обработки или визуализации дешифрированного содержимого блоком(ами) графической обработки и выведение этого содержимого из БГО.The methods of the invention in various ways include cryptographic protection methods for protected content in connection with reliable graphic systems having video data memory, a graphic processing unit (s) and a cryptographic processing device connected to communicate with the BGO, the methods comprising requesting a graphic system software application or device to perform processing or visualization of protected content, while the request includes the transfer of session key by a software application or device into the graphics system and transferring the protected content to the encrypted part (s) of the video data memory, decrypting the contents of the encrypted part (s) of the video data memory by the graphic processing unit (s) while communicating with the cryptographic processing device, processing or visualizing the decrypted content block (s) of graphic processing and the removal of this content from the BGO.

Сходные способы по изобретению различным образом включают в себя запрашивание графической системы программным приложением либо устройством на выполнение обработки или визуализации охраняемого содержимого, причем запрашивание включает в себя передачу сеансового ключа программным приложением либо устройством в графическую систему для удостоверения устройством криптографической обработки и передачу охраняемого содержимого в зашифрованную часть(и) памяти видеоданных, дешифрирование содержимого зашифрованной части(ей) памяти видеоданных механизмом дешифрирования блока ввода БГО, при этом механизм дешифрирования осуществляет связь с устройством криптографической обработки, выполнение обработки или визуализации дешифрированного содержимого блоком(ами) графической обработки, зашифровку содержимого механизмом зашифровки/дешифрирования блока вывода БГО и выведение зашифрованного содержимого из БГО.Similar methods of the invention in various ways include requesting a graphic system by a software application or device to process or visualize protected content, the request including transmitting a session key by a software application or device to a graphics system to authenticate the cryptographic processing device and transferring the protected content to encrypted part (s) of video memory, decrypting the contents of the encrypted part (s) of video memory OF DATA input mechanism decryption unit BGO, wherein the decryption mechanism is in communication with the cryptographic processing device, performing the processing or rendering the decrypted content unit (s) of image-crypting mechanism content encryption / decryption block output BGO encrypted content and excretion of BGO.

Другие признаки и варианты осуществления настоящего изобретения описываются ниже.Other features and embodiments of the present invention are described below.

Краткое описание чертежейBrief Description of the Drawings

Способы и системы для криптографической защиты охраняемого содержимого в соответствии с настоящим изобретением описываются далее со ссылками на сопровождающие чертежи, на которых представлено следующее:Methods and systems for cryptographic protection of protected content in accordance with the present invention are described below with reference to the accompanying drawings, in which the following is presented:

фиг. 1А - блок-схема, представляющая примерную сетевую среду с разнообразными вычислительными устройствами, в которой может быть реализовано настоящее изобретение;FIG. 1A is a block diagram representing an example network environment with various computing devices in which the present invention may be implemented;

фиг. 1В - блок-схема, представляющая не ограничивающий пример вычислительного устройства, в котором может быть реализовано настоящее изобретение;FIG. 1B is a block diagram showing a non-limiting example of a computing device in which the present invention may be implemented;

фиг. 2 - блок-схема алгоритма, иллюстрирующая незащищенные части графического канала, которые защищаются в соответствии с изобретением;FIG. 2 is a flowchart illustrating unprotected portions of a graphic channel that are protected in accordance with the invention;

фиг. 3А и 3В - блок-схемы, иллюстрирующие примерные аспекты первого уровня защищенности в соответствии с изобретением;FIG. 3A and 3B are block diagrams illustrating exemplary aspects of a first level of security in accordance with the invention;

фиг. 4А-4С - блок-схемы, иллюстрирующие примерные аспекты второго уровня защищенности в соответствии с изобретением;FIG. 4A-4C are block diagrams illustrating exemplary aspects of a second level of security in accordance with the invention;

фиг. 5А-5В - приведенное для примера смешивание форматов AYUV/ARGB в соответствии с изобретением;FIG. 5A-5B show an example mix of AYUV / ARGB formats in accordance with the invention;

фиг. 6А-6В - приведено для примера смешивание форматов YUY2 в соответствии с изобретением;FIG. 6A-6B are an example of mixing YUY2 formats in accordance with the invention;

фиг. 7А-7В - приведенное для примера смешивание упакованного плоского формата в соответствии с изобретением;FIG. 7A-7B show an exemplary mixing of a packaged flat format in accordance with the invention;

фиг. 8А и 8В - блок-схемы, иллюстрирующие примерные аспекты третьего уровня защищенности в соответствии с изобретением;FIG. 8A and 8B are block diagrams illustrating exemplary aspects of a third level of security in accordance with the invention;

фиг. 9А и 9В - блок-схемы, иллюстрирующие приведенные для примера методы шифрования, которые могут применяться для выходного сигнала блока графической обработки в соответствии с изобретением.FIG. 9A and 9B are flowcharts illustrating exemplary encryption methods that can be used for the output of a graphics processing unit in accordance with the invention.

Подробное описание изобретенияDETAILED DESCRIPTION OF THE INVENTION

ОбзорOverview

Данное изобретение обеспечивает системы и способы для расширения операционной системы или иного посредника между содержимым от достоверного источника и графической системой для обработки и/или визуализации этого содержимого, чтобы разрешить работу приложений «достоверной графики», таких как защищенные от фальсификации конфиденциальные диалоги, и воспроизведение первичного содержимого, защищенного от несанкционированного дублирования. Один из аспектов изобретения состоит в том, что оно обеспечивает три «уровня» защищенности: (1) шифрование содержимого оверлейных поверхностей, (2) разрешение блоку графической обработки или иному совместно работающему устройству (сопроцессору) оперировать с зашифрованным содержимым, не делая его доступным для недостоверных сторон, и (3) разрешение зашифровывания командных буферов.The present invention provides systems and methods for expanding an operating system or other intermediary between content from a trusted source and a graphics system for processing and / or visualizing this content to enable the operation of "reliable graphics" applications, such as tamper-proof confidential dialogs, and reproduction of the primary content protected against unauthorized duplication. One of the aspects of the invention is that it provides three "levels" of security: (1) encryption of the contents of the overlay surfaces, (2) allowing the graphic processing unit or other collaborative device (coprocessor) to operate with encrypted content, without making it accessible to unreliable parties, and (3) permission to encrypt command buffers.

Как упоминалось, в контексте системной защищенности сложность является препятствием, потому что она усложняет обеспечение защищенности системы. В результате изобретение исходит из того, что весь объем функций БГО и драйвера(ов) дисплея должен рассматриваться как ненадежный (уязвимый). Изобретение затем применяет методы, которые увеличивают шансы корректной реализации в терминах конфиденциальности и защищенности путем ограничения объема аппаратных средств, которые могут быть реализованы для удовлетворения критериям защищенности.As mentioned, in the context of system security, complexity is an obstacle because it complicates the security of the system. As a result, the invention proceeds from the fact that the entire scope of the BGO functions and the display driver (s) should be considered unreliable (vulnerable). The invention then applies methods that increase the chances of a correct implementation in terms of confidentiality and security by limiting the amount of hardware that can be implemented to meet the security criteria.

Терминология, в соответствующая изобретению, уже обсуждалась выше. Однако в целях ясности некоторые термины будут определены ниже. Термин «конфиденциальный» относится к предотвращению получения доступа к информации достоверного (защищенного) содержимого не доверительной (недостоверной) третьей стороной, такой как устройство или программное обеспечение третьей стороны. Пример такой конфиденциальности включает в себя предотвращение получения доступа не доверительной третьей стороной к воспроизведению зашифрованного первичного содержимого видеоданных где бы то ни было вдоль канала графики. Термин «защищенный» относится к предотвращению получения доступа к информации достоверного содержимого или ее изменения не доверительной третьей стороной, такой как устройство или программное обеспечение третьей стороны, без обнаружения этого факта. Пример такой защищенности включает в себя предотвращение получения доступа к дисплею охраняемого диалога или его изменения не доверительной третьей стороной, который может происходить во время транзакции электронной коммерции.The terminology in accordance with the invention has already been discussed above. However, for clarity, some terms will be defined below. The term "confidential" refers to preventing access to information of reliable (protected) content by a non-trusted (inaccurate) third party, such as a third-party device or software. An example of such confidentiality includes preventing non-trusted third parties from accessing the encrypted primary video content anywhere along the graphics channel. The term "secure" refers to preventing access to information of reliable content or its modification by a non-trusted third party, such as a third-party device or software, without detecting this fact. An example of such security includes preventing access to the display of a protected dialogue or changing it by a non-trusted third party that may occur during an e-commerce transaction.

В этом отношении изобретение рассматривает перекрывающиеся окна, например пользовательский интерфейс поверх видеопотоков первичного содержимого, а также незатемняемые окна, которые могут представляться во время диалогов электронной коммерции.In this regard, the invention contemplates overlapping windows, for example a user interface on top of primary content video streams, as well as dimming windows that may appear during e-commerce dialogs.

Примерная сетевая средаSample network environment

Специалисту может быть понятно, что компьютер или иное клиентское или серверное устройство может применяться как часть компьютерной сети, или в распределенной вычислительной среде. В этом отношении настоящее изобретение применимо для любой компьютерной системы, имеющей любое число блоков памяти или хранения и любое число программных приложений и процессов, реализуемых в любом количестве блоков хранения, или объемов, которые могут использовать режим достоверной графики по изобретению. Настоящее изобретение может применяться к среде с серверными компьютерами и клиентскими компьютерами, размещенными в сетевой среде или в распределенной вычислительной среде, имеющей удаленную или локальную память. Настоящее изобретение может также применяться в автономных вычислительных устройствах, имеющих функцию языка программирования, способности интерпретации и исполнения для генерирования, приема и передачи информации в связи с удаленными или локальными услугами.One skilled in the art may understand that a computer or other client or server device may be used as part of a computer network, or in a distributed computing environment. In this regard, the present invention is applicable to any computer system having any number of memory or storage units and any number of software applications and processes implemented in any number of storage units, or volumes that can use the reliable graphics mode of the invention. The present invention can be applied to an environment with server computers and client computers located in a network environment or in a distributed computing environment having remote or local memory. The present invention can also be applied in stand-alone computing devices having a programming language function, interpretation and execution capabilities for generating, receiving and transmitting information in connection with remote or local services.

Распределенное вычисление облегчает совместное использование компьютерных ресурсов и услуг путем прямого обмена между вычислительными устройствами и системами. Эти ресурсы и услуги включают в себя обмен информацией, кэш-память и дисковую память для файлов. Распределенное вычисление получает преимущества от сетевой связности, позволяя клиентам выравнивать их коллективную производительность для обеспечения преимуществ всему предприятию. В этом отношении различные устройства могут иметь программные приложения, объекты и ресурсы, которые могут взаимодействовать с использованием каналов достоверной графики по настоящему изобретению.Distributed computing facilitates the sharing of computer resources and services through direct exchange between computing devices and systems. These resources and services include information exchange, cache and disk storage for files. Distributed computing benefits from network connectivity, enabling customers to align their collective performance to provide benefits to the entire enterprise. In this regard, various devices may have software applications, objects, and resources that can interact using reliable graphics channels of the present invention.

Фиг. 1А представляет условную схему примерной сетевой или распределенной вычислительной среды. Эта распределенная вычислительная среда содержит вычислительные объекты 10а, 10b и т.д. и вычислительные объекты или устройства 110а, 110b, 110с и т.д. Эти объекты могут содержать программы, способы, банки данных, программируемую логику и т.п. Объекты могут содержать части одного и того же или различных устройств, таких как персональные цифровые ассистенты (ПЦА), телевизоры, проигрыватели стандарта МР3, персональные компьютеры и т.п. Каждый объект может осуществлять связь с другим объектом посредством сети 14 связи. Эта сеть сама может содержать другие вычислительные объекты и вычислительные устройства, которые предоставляют услуги системе по фиг. 1А. В соответствии с одним аспектом изобретения каждый объект 10 или 110 может содержать программное приложение, которое может запрашивать достоверные графические ресурсы.FIG. 1A is a schematic diagram of an example network or distributed computing environment. This distributed computing environment comprises computing objects 10a, 10b, etc. and computing objects or devices 110a, 110b, 110c, etc. These objects may contain programs, methods, data banks, programmable logic, etc. Objects may contain parts of the same or different devices, such as personal digital assistants (PDAs), televisions, MP3 players, personal computers, etc. Each object can communicate with another object via the communication network 14. This network itself may contain other computing entities and computing devices that provide services to the system of FIG. 1A. In accordance with one aspect of the invention, each object 10 or 110 may comprise a software application that may request reliable graphic resources.

Следует также иметь в виду, что объект, такой как 110с, может выполнять функции главного устройства в другом вычислительном устройстве 10 или 110. Таким образом, хотя отображенная физическая среда может представлять подсоединенные устройства как компьютеры, такая иллюстрация является просто примером, а физическая среда может альтернативно отображаться и описываться содержащей разные цифровые устройства, такие как ПЦА, телевизоры, проигрыватели стандарта МР3 и т.п., программные объекты, такие как интерфейсы, объекты связи и тому подобные.It should also be borne in mind that an object, such as 110c, can act as the host device in another computing device 10 or 110. Thus, although the displayed physical environment can represent connected devices as computers, this illustration is just an example, and the physical environment can alternatively displayed and described containing various digital devices, such as PDA, televisions, MP3 players, etc., software objects, such as interfaces, communication objects and the like.

Имеется множество систем компонентов и сетевых конфигураций, которые поддерживают распределенные вычислительные среды. К примеру, вычислительные системы могут соединяться вместе системами проводных или беспроводных линий, локальными сетями или глобальными распределенными сетями. В настоящее время многие сети связаны с Интернетом, который обеспечивает инфраструктуру для распределенных в глобальном масштабе вычислений и заключает в себя многие различные сети.There are many component systems and network configurations that support distributed computing environments. For example, computing systems can be connected together by wired or wireless line systems, local area networks, or wide area networks. Currently, many networks are connected to the Internet, which provides the infrastructure for globally distributed computing and encompasses many different networks.

В домашних сетевых средах имеется по меньшей мере четыре совершенно разных сетевых канала переноса, каждый из которых может поддерживать единственный протокол, такие как линия электропитания, канал данных (как беспроводный, так и проводной), речевой канал (например, телефон) и развлекательные каналы. Большинство домашних управляющих устройств, таких как выключатели света и домашняя техника, могут использовать линию электропитания для подключения. Услуги данных могут вводиться в дом как широкополосные (например, либо цифровая абонентская линия (ЦАЛ) (DSL), либо как кабельный модем) и быть доступными в домашних условиях с помощью либо беспроводного (например, HomeRF или 802.11b), либо проводного (например, Home PNA, Cat 5, даже линия электропитания) подключения. Речевой трафик может вводиться в дом либо как проводной (например, Cat 3), либо как беспроводный (например, сотовые телефоны) и может распределяться в доме с помощью проводки Cat 3. Развлекательные каналы могут вводиться в дом либо через спутник, либо по кабелю и обычно распределяются в доме с помощью коаксиального кабеля. Стандарты IEEE 1394 и DVI также представляют собой цифровые межсоединения для группы медиаустройств. Все эти сетевые среды и иное, что может представлять собой стандарты протоколов, могут соединяться друг с другом для формирования внутрикорпоративной сети (интрасети), которая может подключаться к внешнему миру посредством Интернета. Короче говоря, существует множество самых разных источников для хранения и передачи данных, а следовательно, вычислительные устройства потребуют способов защиты содержимого во всех частях канала обработки данных.In home networking environments, there are at least four completely different network transfer channels, each of which can support a single protocol, such as a power line, a data channel (both wireless and wired), a voice channel (such as a telephone), and entertainment channels. Most home control devices, such as light switches and home appliances, can use a power line to connect. Data services can be entered into the house as broadband (for example, either a digital subscriber line (DSL) or as a cable modem) and be accessible at home using either wireless (for example, HomeRF or 802.11b) or wired (for example , Home PNA, Cat 5, even the power line) connection. Voice traffic can be entered into the house either as wired (for example, Cat 3), or wirelessly (for example, cell phones) and can be distributed in the house using Cat 3 wiring. Entertaining channels can be entered into the house either via satellite or cable and usually distributed in a home using coaxial cable. The IEEE 1394 and DVI standards also represent digital interconnects for a group of media devices. All of these network environments and anything else that may be protocol standards can connect to each other to form an internal corporate network (intranet) that can connect to the outside world via the Internet. In short, there are many different sources for storing and transmitting data, and therefore computing devices will require ways to protect content in all parts of the data processing channel.

Понятием Интернет обычно обозначают совокупность сетей и шлюзов, использующих набор протоколов TCP/IP, который общеизвестен в области компьютерных сетей. "TCP/IP" является акронимом от "Transport Control Protocol/Interface Program" («Транспортный управляющий протокол/Интерфейсная программа»). Интернет можно описать как систему географически распределенных удаленных компьютерных сетей, соединенных между собой компьютерами, исполняющими сетевые протоколы, которые позволяют пользователям взаимодействовать и совместно использовать информацию по сетям. Вследствие такого широкого совместного использования информации удаленные сети, такие как Интернет, в общем случае в большой степени включены практически без ограничений в открытую систему, для которой разработчики могут проектировать программные приложения для выполнения специализированных операций или услуг.The term Internet usually refers to a collection of networks and gateways using the TCP / IP protocol suite, which is well known in the field of computer networks. "TCP / IP" is an acronym for "Transport Control Protocol / Interface Program". The Internet can be described as a system of geographically distributed remote computer networks interconnected by computers that execute network protocols that allow users to interact and share information over networks. Due to such wide sharing of information, remote networks, such as the Internet, are generally largely included, with little or no restriction, in an open system for which developers can design software applications to perform specialized operations or services.

Таким образом, сетевая инфраструктура обеспечивает главную часть сетевых топологий, таких как клиент-сервер, одноранговые или гибридные архитектуры. «Клиент» является членом класса или группы, использующим услуги другого класса или группы, к которым он не относится. Таким образом, при вычислении клиент представляет собой процесс, т.е., грубо говоря, набор команд или задач, который требует услугу, предоставляемую другой программой. Клиентский процесс использует требуемую услугу без «знания» каких-либо рабочих подробностей о самой этой другой программе или услуге. В архитектуре клиент/сервер, в частности в сетевой системе, клиентом обычно является компьютер, который имеет доступ к совместно используемым сетевым ресурсам, предоставляемым другим компьютером, например сервером. В примере фиг. 1А компьютеры 110а, 110b и т.д. могут рассматриваться как клиенты, а компьютеры 10а, 10b и т.д. могут рассматриваться как сервер, где сервер 10а, 10b и т.д. обслуживает данные, которые затем копируются в клиентские компьютеры 110а, 110 b и т.д.Thus, the network infrastructure provides the bulk of network topologies such as client-server, peer-to-peer or hybrid architectures. A “Client” is a member of a class or group using the services of another class or group to which it does not belong. Thus, in computing, the client is a process, i.e., roughly speaking, a set of commands or tasks that requires a service provided by another program. The client process uses the required service without “knowing” any working details about this other program or service itself. In a client / server architecture, in particular in a network system, the client is usually a computer that has access to shared network resources provided by another computer, such as 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 a server, where the server 10a, 10b, etc. serves data that is then copied to client computers 110a, 110b, etc.

Сервер обычно представляет собой удаленную компьютерную систему, доступ к которой возможен по удаленной сети, такой как Интернет. Клиентский процесс может быть активным в первой компьютерной системе, а серверный процесс может быть активным во второй компьютерной системе, осуществляющим связь друг с другом через среду передачи данных, тем самым обеспечивая распределенные функции и позволяя множеству клиентов получать преимущества вследствие функциональных возможностей сервера собирать информацию.A server is typically a remote computer system that can be accessed over a remote network, such as the Internet. The client process can be active in the first computer system, and the server process can be active in the second computer system, communicating with each other through a data transmission medium, thereby providing distributed functions and allowing multiple clients to take advantage of the server’s functionality to collect information.

Клиент и сервер осуществляют связь друг с другом, используя функции, предоставляемые протокольным уровнем. К примеру, протокол гипертекстового переноса (ПГТП) (HTTP) является общим протоколом, который используется совместно со Всемирной паутиной (World Wide Web - WWW). Обычно для идентификации серверным или клиентским компьютерами друг друга используется компьютерный сетевой адрес, такой как унифицированный указатель ресурсов (URL) или адрес межсетевого протокола (IP). На сетевой адрес могут ссылаться как на адрес унифицированного указателя ресурсов. К примеру, связь может обеспечиваться по среде передачи данных. В частности, клиент и сервер могут быть связаны друг с другом через соединения TCP/IP для осуществления связи с высокой пропускной способностью.The client and server communicate with each other using the functions provided by the protocol layer. For example, the Hypertext Transfer Protocol (CTP) (HTTP) is a common protocol that is used in conjunction with the World Wide Web (WWW). Typically, server or client computers identify each other using a computer network address, such as a Unified Resource Locator (URL) or Internet Protocol (IP) address. The network address may be referred to as the address of a unified resource locator. For example, communication may be provided over a data medium. In particular, the client and server can be connected to each other via TCP / IP connections for high bandwidth communications.

Таким образом, фиг. 1А иллюстрирует примерную сетевую или распределенную среду с сервером, осуществляющим связь с клиентскими компьютерами по сети/шине, где может использоваться настоящее изобретение. Подробнее, несколько серверов 10а, 10b и т.д. взаимосвязаны через сеть/шину 14 связи, которая может быть локальной сетью (LAN), глобальной сетью (WAN), корпоративной сетью, Интернетом и т.п. с клиентскими или удаленными вычислительными устройствами 110а, 110b, 110с, 110d, 110е и т.д., такими как переносной компьютер, ручной компьютер, «тонкий» клиент (или клиент-терминал), сетевое оборудование или другое устройство, такое как видеомагнитофон, телевизор, печь, светильник, нагреватель и тому подобное в соответствии с настоящим изобретением. Тем самым ожидается, что настоящее изобретение может применяться к любому вычислительному устройству, с использованием которого желательно обрабатывать, хранить или визуализировать защищенное содержимое от достоверного источника.Thus, FIG. 1A illustrates an example network or distributed environment with a server communicating with client computers over a network / bus where the present invention can be used. More details, several servers 10a, 10b, etc. interconnected via a communication network / bus 14, which may be a local area network (LAN), wide area network (WAN), corporate network, Internet, and the like. with client or remote computing devices 110a, 110b, 110c, 110d, 110e, etc., such as a laptop computer, a hand computer, a thin client (or client terminal), network equipment, or another device, such as a VCR, a television, oven, lamp, heater and the like in accordance with the present invention. Thus, it is expected that the present invention can be applied to any computing device using which it is desirable to process, store or visualize protected content from a reliable source.

В сетевой среде, в которой сетью/шиной 14 связи является, к примеру, Интернет, серверы 10 могут быть Web-серверами, с которыми клиенты 110а, 110b, 110c, 110d, 110е и т.д. осуществляют связь посредством любых известных протоколов, таких как НТТР. Серверы 10 могут также служить в качестве клиентов 110, что может быть свойством распределенной вычислительной среды. Связь может быть проводной или беспроводной, как удобнее. Клиентские устройства 110 могут осуществлять или не осуществлять связь по сети/шине 14 связи и могут иметь связанные с ними независимые средства связи. К примеру, в случае телевизора или видеомагнитофона для управления им может использоваться или не использоваться сетевой аспект. Каждый клиентский компьютер 110 и серверный компьютер 10 может быть снабжен различными прикладными программными модулями или объектами 135 и иметь соединения или доступ к различным типам запоминающих элементов или объектов, в которых могут сохраняться файлы или в которые можно загружать или перемещать часть(и) файлов. Таким образом, настоящее изобретение можно использовать в компьютерной сетевой среде, имеющей клиентские компьютеры 110а, 110b и т.д., которые могут обращаться к и взаимодействовать с компьютерной сетью/шиной 14, и серверные компьютеры 10а, 10b и т.д., которые могут взаимодействовать с клиентскими компьютерами 110а, 110b и т.д. и другими устройствами 111 и базами 20 данных.In a network environment in which the communication network / bus 14 is, for example, the Internet, the servers 10 may be Web servers with which clients 110a, 110b, 110c, 110d, 110e, etc. communicate through any known protocols, such as HTTP. Servers 10 may also serve as clients 110, which may be a property of a distributed computing environment. Communication can be wired or wireless, as convenient. Client devices 110 may or may not communicate over the communication network / bus 14 and may have independent communications means associated with them. For example, in the case of a television or VCR, the network aspect may or may not be used to control it. Each client computer 110 and server computer 10 can be equipped with various application program modules or objects 135 and have connections or access to various types of storage elements or objects in which files can be stored or in which part (s) of files can be loaded or moved. Thus, the present invention can be used in a computer network environment having client computers 110a, 110b, etc. that can access and interact with computer network / bus 14, and server computers 10a, 10b, etc., which can interact with client computers 110a, 110b, etc. and other devices 111 and databases 20.

Примерное вычислительное устройствоExample computing device

Фиг. 1В и последующее обсуждение представляют краткое общее описание подходящей вычислительной среды, в которой может быть реализовано изобретение. Следует, однако, иметь в виду, что для использования в связи с настоящим изобретением пригодны портативные, переносные и другие вычислительные устройства и вычислительные объекты всех видов. Хотя ниже описывается универсальный компьютер, это всего лишь пример, и настоящее изобретение может быть реализовано и в связи с «тонким» клиентом, имеющим возможность совместной работы (по сети/шине) и взаимодействия. Таким образом, настоящее изобретение может быть реализовано под управлением главной программы в среде сетевых услуг, в которую вовлечены очень малые или минимальные клиентские ресурсы, например, в сетевой среде, в которой клиентское устройство служит просто как интерфейс для сети/шины, как объект, помещенный в оборудование. По существу, все, где могут сохраняться данные и откуда эти данные могут извлекаться или визуализироваться, представляет собой желательную или подходящую среду для работы криптографической защиты защищенного содержимого согласно изобретению.FIG. 1B and the following discussion provide a brief, general description of a suitable computing environment in which the invention may be implemented. However, it should be borne in mind that portable, portable and other computing devices and computing objects of all kinds are suitable for use in connection with the present invention. Although a universal computer is described below, this is just an example, and the present invention can be implemented in connection with a thin client that has the ability to work together (over a network / bus) and interact. Thus, the present invention can be implemented under the control of the main program in a network services environment in which very small or minimal client resources are involved, for example, in a network environment in which a client device serves simply as an interface for a network / bus, as an object placed into equipment. Essentially, everything where data can be stored and from where this data can be retrieved or visualized is a desirable or suitable environment for the cryptographic protection of the protected content of the invention to operate.

Хотя это и не требуется, изобретение может быть реализовано посредством операционной системы, прикладного программного интерфейса (ППИ) и/или включено в прикладное программное обеспечение, которое взаимодействует с достоверным содержимым. В различных вариантах осуществления изобретение также применимо к аппаратному обеспечению, которое приспособлено для взаимодействия, и к методам шифрования, описанным ниже. Программное обеспечение может описываться в общем контексте исполняемых компьютером команд, таких как программные модули, исполняемые одним или более компьютерами, такими как клиентские рабочие станции, серверы или иные устройства. В общем случае, программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и иные средства, что выполняющие конкретные задачи или реализующие конкретные абстрактные типы данных. Обычно функции программных модулей в различных вариантах выполнения могут комбинироваться или распределяться по желанию. Кроме того, специалистам понятно, что изобретение может осуществляться с другими конфигурациями компьютерных систем. Другие общеизвестные вычислительные системы, среды и/или конфигурации, которые могут быть пригодны для использования с изобретением, включают в себя - но не ограничиваются ими - персональные компьютеры (ПК) (РС), банковские автоматы, серверные компьютеры, портативные или компактные устройства, многопроцессорные системы, программируемая пользовательская электроника, сетевые ПК, оборудование, светильники, элементы контроля за окружающей средой, миникомпьютеры, мэйнфреймы и тому подобное. Изобретение может быть также осуществлено в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, которые соединены через сеть/шину связи или иную среду передачи данных. В распределенной вычислительной среде программные модули могут размещаться как в локальных, так и в удаленных компьютерных запоминающих средах, в том числе в запоминающих устройствах, а клиентские узлы в свою очередь могут вести себя как серверные узлы.Although not required, the invention can be implemented through an operating system, application programming interface (API) and / or included in application software that interacts with valid content. In various embodiments, the invention is also applicable to hardware that is interoperable, and to the encryption methods 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 other means that perform particular tasks or implement particular abstract data types. Typically, the functions of program modules in various embodiments may be combined or distributed as desired. In addition, it will be apparent to those skilled in the art 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 banking machines, server computers, portable or compact devices, and multiprocessors systems, programmable user electronics, networked PCs, equipment, lights, environmental controls, minicomputers, mainframes and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are connected through a communication network / bus or other data transmission medium. In a distributed computing environment, program modules can be located in both local and remote computer storage environments, including storage devices, and client nodes, in turn, can behave like server nodes.

Фиг. 1В также иллюстрирует пример подходящей среды 100 вычислительной системы, в которой может быть реализовано изобретение, хотя, как пояснено выше, эта среда 100 вычислительной системы является лишь примером подходящей вычислительной среды и не накладывает каких-либо ограничений ни на объем использования, ни на функции изобретения. Не следует интерпретировать эту вычислительную среду 100 как имеющую какую бы то ни было зависимость или требование, связанное с любым из компонентов или их комбинацией, проиллюстрированными в примерной рабочей среде 100.FIG. 1B also illustrates an example of a suitable computing system environment 100 in which the invention may be implemented, although, as explained above, this computing system environment 100 is only an example of a suitable computing environment and does not impose any restrictions on the scope of use or the functions of the invention . This computing environment 100 should not be interpreted as having any dependency or requirement associated with any of the components or their combination illustrated in the example operating environment 100.

На фиг. 1В примерная система для осуществления изобретения включает в себя универсальное вычислительное устройство в виде компьютера 110. Компоненты этого компьютера могут включать в себя - но не ограничиваться ими - блок 120 обработки, системную память 130 и системную шину 121, которая связывает различные системные компоненты, включая и системную память, с блоком 120 обработки. Системная шина 121 может быть любой из различных типов шинных структур, в том числе шиной памяти или контроллером памяти, периферийной шиной и локальной шиной, с использованием любой из различных шинных архитектур. В качестве примера - но не ограничения - такие архитектуры включают в себя шину стандарта ISA (архитектуры промышленного стандарта), шину стандарта МСА (микроканальной архитектуры), шину стандарта EISA (расширенной архитектуры промышленного стандарта), локальную шину стандарта VESA (Ассоциации по стандартам в видеоэлектронике) и шину стандарта PCI (взаимных соединений периферийных компонентов) (известную также как шину расширения).In FIG. 1B, an exemplary system for practicing the invention includes a general-purpose computing device in the form of a computer 110. The components of this computer 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 and system memory, with processing unit 120. The system bus 121 may be any of various types of bus structures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, but not limitation, such architectures include an ISA standard (industry standard architecture) bus, an MCA standard (microchannel architecture), an EISA standard (extended industry standard architecture), a local VESA (Video Electronics Standards Association) standard bus ) and a PCI bus (interconnecting peripheral components) (also known as an expansion bus).

Компьютер 110 обычно включает в себя различные машиночитаемые носители. Машиночитаемыми носителями могут быть любые доступные носители, к которым может обращаться компьютер 110, и включают в себя как энергозависимые, так и энергонезависимые носители, как сменяемые, так и несменяемые носители. В качестве примера - но не ограничения - машиночитаемые носители могут содержать компьютерные запоминающие среды и среды передачи данных. Компьютерные запоминающие среды включают в себя как энергозависимые, так и энергонезависимые, как сменяемые, так и несменяемые носители, осуществленные любым способом или с использованием любой технологии для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули и иные данные. Машиночитаемые носители включают в себя - но не ограничиваются ими - ОЗУ, ПЗУ, ЭСППЗУ, флэш-память или иную технологию памяти, ПЗУ-КД (CDROM), цифровой многоцелевой диск (DVD) или иную память на оптических дисках, магнитные кассеты, магнитную ленту, память на магнитных дисках или иные магнитные запоминающие устройства, или любой другой носитель, который может использоваться для сохранения желательной информации и к которому может обращаться компьютер 110. Среды передачи данных обычно реализуют машиночитаемые команды, структуры данных, программные модули или иные данные в сигнале, модулированном данными, таком как несущее колебание или другой механизм переноса, и включают в себя любые среды доставки информации. Выражение «сигнал модулированный данными» означает сигнал, который имеет одну или более характеристик, установленных или измененных для кодирования информации в сигнале. В качестве примера - но не ограничения - среды передачи данных включают в себя проводные среды, такие как проводная сеть и непосредственное проводное подключение, и беспроводные среды, такие как звуковые, радиочастотные, инфракрасные и другие беспроводные среды. Комбинации любых из вышеназванных средств также включаются в объем машиночитаемых носителей.Computer 110 typically includes various computer readable media. Machine-readable media can be any available media that can be accessed by computer 110, and includes both volatile and non-volatile media, both removable and non-removable media. By way of example, but not limitation, computer-readable media may include computer storage media and data transmission media. Computer storage media includes both volatile and non-volatile, removable and non-removable media implemented in any way or using any technology for storing information, such as machine-readable instructions, data structures, program modules and other data. Computer-readable media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, ROM-CD (CDROM), digital multi-purpose disk (DVD) or other optical disk memory, magnetic tapes, magnetic tape , memory on magnetic disks or other magnetic storage devices, or any other medium that can be used to store the desired information and which can be accessed by computer 110. Communication media typically implement machine-readable instructions, data structures, software modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. The expression "modulated data signal" means a signal that has one or more of the characteristics set or changed to encode information in the signal. By way of example, but not limitation, communication media includes wired media such as a wired network and direct wired connection, and wireless media such as audio, radio frequency, infrared, and other wireless media. Combinations of any of the above are also included in the scope of computer-readable media.

Системная память 130 включает в себя компьютерный носитель данных в виде энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ПЗУ) (ROM) 131 и оперативное запоминающее устройство (ОЗУ) (RAM) 132. Базовая система ввода-вывода (БСВВ) (BIOS) 133, содержащая базовые подпрограммы, которые помогают переносить информацию между элементами внутри компьютера 110, как во время запуска, обычно хранится в ПЗУ 131. ОЗУ 132 обычно содержит данные и/или программные модули, которые сразу же доступны для блока 121 обработки и/или обрабатываются им в данный момент. В качестве примера - но не ограничения - фиг. 1В иллюстрирует операционную систему 134, прикладные программы 135, другие программные модули 136 и программные данные 137.System memory 130 includes a computer storage medium in the form of volatile and / or non-volatile memory, such as read-only memory (ROM) 131 and random access memory (RAM) 132. Basic input-output system (BSVV) (BIOS) 133, containing basic routines that help transfer information between items inside computer 110, as during startup, is usually stored in ROM 131. RAM 132 typically contains data and / or program modules that are immediately available to processing unit 121 and / or process are being given to them at the moment. By way of example, but not limitation, FIG. 1B illustrates an operating system 134, application programs 135, other program modules 136, and program data 137.

Компьютер 110 может также включать в себя другие съемные-несъемные энергозависимые-энергонезависимые компьютерные носители данных. Только в качестве примера фиг. 1В иллюстрирует дисковод 141 жесткого диска, который считывает с несъемного энергонезависимого магнитного носителя или записывает на него, дисковод 151 магнитного диска, который считывает со съемного энергонезависимого диска 152 или записывает на него, дисковод 155 оптического диска, который считывает со съемного энергонезависимого оптического диска, такого как CD ROM или иного оптического носителя, или записывает на него. Другие съемные-несъемные энергозависимые-энергонезависимые компьютерные носители данных, которые можно использовать в примерной операционной среде, включают в себя - но ограничиваются ими - кассеты магнитной ленты, миниатюрные карты флэш-памяти, многоцелевые цифровые диски, цифровые видеоленты, твердотельные ОЗУ, твердотельные ПЗУ и тому подобное. Дисковод 141 жесткого диска обычно соединяется с системной шиной 121 через интерфейс несъемной памяти, такой как интерфейс 140, а дисковод 151 магнитного диска и дисковод 155 оптического диска обычно соединяются с системной шиной 121 интерфейсом съемной памяти, таким как интерфейс 150.Computer 110 may also include other removable, non-removable, volatile, non-volatile computer storage media. By way of example only, FIG. 1B illustrates a hard disk drive 141 that reads from or writes to a non-removable non-volatile magnetic medium, a magnetic disk drive 151 that reads from or writes to a removable non-volatile disk 152, an optical disk drive 155 that reads from a removable non-volatile optical disk, such as a CD ROM or other optical media, or writes to it. Other removable, non-removable, volatile, non-volatile computer storage media that can be used in an exemplary operating environment include, but are not limited to, magnetic tape cartridges, miniature flash memory cards, multi-purpose digital disks, digital video tapes, solid state RAM, solid state ROMs, and things like that. The hard disk drive 141 is typically connected to the system bus 121 via a non-removable memory interface such as interface 140, and the magnetic disk drive 151 and the optical disk drive 155 are usually connected to the system bus 121 by a removable memory interface such as interface 150.

Дисководы и связанные с ними компьютерные носители данных, упомянутые выше и проиллюстрированные на фиг. 1В, вводят в память компьютера считываемые команды, структуры данных, программные модули и другие данные для компьютера 110. На фиг. 1В, к примеру, дисковод 141 жесткого диска проиллюстрирован как хранящий операционную систему 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Отметим, что эти составляющие могут быть либо теми же самыми, что и операционная система 134, прикладные программы 135, другие программные модули 136 и программные данные 137, либо отличными от них. Операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147 здесь обозначены отличающимися ссылочными позициями для иллюстрации того, что они, как минимум, являются отличающимися копиями. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, такие как клавиатура 162 и координатное устройство 161, обычно называемое мышью, шаровым манипулятором или сенсорным планшетом. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровой планшет, антенну спутниковой связи, сканер или тому подобное. Эти и другие устройства ввода часто соединяются с блоком 120 обработки через пользовательский интерфейс ввода, который соединяется с системной шиной 121, но могут соединяться и с другими интерфейсными и шинными структурами, такими как параллельный порт, игровой порт или универсальная последовательная шина (УПШ) (USB). К системной шине 121 может быть также подключен графический интерфейс 182, такой как Northbridge. Northbridge представляет собой набор микросхем, который осуществляет связь с ЦП или главным блоком 120 обработки и обеспечивает информационный обмен для ускоренного графического порта (УГП). Один или более блоков 184 графической обработки (БГО) могут осуществлять связь с графическим интерфейсом 182. В этом отношении БГО 184 в общем случае включают в себя встроенную память, такую как регистровая память, и БГО 184 осуществляют связь с видеопамятью 186. БГО 184, однако являются не единственным примером сопроцессора, и поэтому множество сопроцессорных устройств могут быть включены в компьютер 110. Монитор 191 или устройство иного типа также подключается к системной шине 121 через интерфейс, такой как видеоинтерфейс 190, который, в свою очередь, может осуществлять связь с видеопамятью 186. В общем случае, именно эта часть вычислительного устройства является уязвимой, и, соответственно, настоящее изобретение обеспечивает защиту и конфиденциальность обрабатываемым или визуализируемым в ней данным. В дополнение к монитору 191 компьютеры могут содержать и другие периферийные выходные устройства, такие как громкоговорители 197 и принтер 196, которые могут подключаться через выходной периферийный интерфейс 195.The drives and related computer storage media mentioned above and illustrated in FIG. 1B, readable instructions, data structures, program modules, and other data for computer 110 are inserted into computer memory. FIG. 1B, for example, the hard disk drive 141 is illustrated as storing the operating system 144, application programs 145, other program modules 146, and program data 147. Note that these components may either be the same as the operating system 134, application programs 135 , other program modules 136 and program data 137, or different from them. The operating system 144, application programs 145, other program modules 146, and program data 147 are indicated here by different reference numbers to illustrate that they are, at a minimum, different copies. The user can enter commands and information into the computer 110 through input devices such as a keyboard 162 and a coordinate device 161, commonly referred to as a mouse, trackball, or touchpad. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 120 via an input user interface that connects to the system bus 121, but can also connect to other interface and bus structures, such as a parallel port, a game port, or a universal serial bus (USB) (USB) ) A graphical interface 182, such as Northbridge, may also be connected to system bus 121. Northbridge is a chipset that communicates with a CPU or main processing unit 120 and provides information exchange for an accelerated graphic port (GPU). One or more graphics processing units (BGOs) 184 may communicate with a graphical interface 182. In this regard, BGOs 184 generally include internal memory, such as register memory, and BGOs 184 communicate with video memory 186. BGOs 184, however are not the only coprocessor examples, and therefore many coprocessor devices can be included in the computer 110. A monitor 191 or other type of device is also connected to the system bus 121 via an interface, such as the video interface 190, which, in turn, can can communicate with video memory 186. In general, it is this part of the computing device that is vulnerable, and, accordingly, the present invention provides protection and confidentiality of the data processed or visualized therein. In addition to the monitor 191, computers may include other peripheral output devices, such as speakers 197 and a printer 196, which can be connected via an output peripheral interface 195.

Компьютер 110 может работать в сетевой или распределенной среде с помощью подключений к одному или более удаленным компьютерам, таким как удаленный компьютер 180. Этот удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым ПК, одноранговым устройством или другим общим сетевым узлом и обычно включает в себя многие или все элементы, описанные выше по отношению к компьютеру 110, хотя на фиг. 1В проиллюстрировано только запоминающее устройство 181. Логические соединения, показанные на фиг. 1В, включают в себя локальную сеть (ЛС) 171 и глобальную сеть (ГС) 173, но могут также включать в себя другие сети/шины. Такие сетевые среды являются обычными в домах, офисах, компьютерных сетях в масштабах предприятий, корпоративных сетях и Интернете.Computer 110 may operate in a networked or distributed environment by connecting to one or more remote computers, such as remote computer 180. This remote computer 180 may be a personal computer, server, router, network PC, peer device, or other common network node, and typically includes many or all of the elements described above with respect to computer 110, although in FIG. 1B, only the storage device 181 is illustrated. The logical connections shown 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 commonplace in homes, offices, enterprise-wide computer networks, corporate networks, and the Internet.

При использовании в сетевой среде ЛС компьютер 110 подключается к ЛС 171 через сетевой интерфейс или адаптер 170. При использовании в сетевой среде ГС компьютер 110 обычно включает в себя модем 172 или иное средство для установления связи по ГС 173, такой как Интернет. Модем 172, который может быть внутренним или внешним, может подключаться к системной шине 121 через пользовательский входной интерфейс 160 или иной подходящий механизм. В сетевой среде программные модули, показанные в отношении компьютера 110, или их части могут храниться в удаленном запоминающем устройстве. В качестве примера - но не ограничения - фиг. 1В иллюстрирует удаленные прикладные программы 185 как находящиеся в запоминающем устройстве 181. Понятно, что показанные сетевые соединения являются примерными, и можно использовать и другие средства для установления линии связи между компьютерами.When used in a LAN network environment, computer 110 connects to the LAN 171 via a network interface or adapter 170. When used in a LAN network environment, computer 110 typically includes a modem 172 or other means for establishing communication over the HS 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via a user input interface 160 or other suitable mechanism. In a networked environment, program modules shown with respect to computer 110, or parts thereof, may be stored in a remote storage device. By way of example, but not limitation, FIG. 1B illustrates remote application programs 185 as residing in memory device 181. It will be appreciated that the network connections shown are exemplary, and other means can be used to establish a communication link between computers.

Примерные распределенные вычислительные оболочки или архитектурыSample distributed computing shells or architectures

Различные распределенные вычислительные оболочки разработаны или разрабатываются в свете сближения персональных вычислений и Интернета. Индивидуальные и деловые пользователи одинаково снабжены эффективно взаимодействующим и обеспечивающим подключение к всемирной сети интерфейсом для программных приложений и вычислительных устройств, резко расширяя способности компьютеров в отношении поисковых средств и сетей.Various distributed computing shells are or are being developed in the light of the convergence of personal computing and the Internet. Individual and business users are equally equipped with an interface that effectively interacts and provides connectivity to the worldwide network for software applications and computing devices, dramatically expanding the ability of computers with respect to search tools and networks.

Например, оболочка .Net platform MICROSOFT® кампании включает в себя серверы, услуги унифицированных модулей, такие как основанная на сети память данных и загружаемое программное обеспечение устройства. Вообще говоря, оболочка .Net platform обеспечивает: (1) возможность работы всего диапазона вычислительных устройств совместно, и автоматическое обновление и синхронизацию пользовательской информации, на них всех, (2) увеличенные интерактивные возможности для Web-сайтов, обеспечиваемую более широким использованием XML, а не HTML, (3) услуги в реальном времени, которые отличаются приспосабливаемым к заказчику доступом и доставкой продуктов и услуг пользователю из центрального исходного пункта для управления различными программными приложениями, такими как электронная почта, к примеру, или программным обеспечением, таким как Office.Net, (4) централизованную память, что повысит эффективность и легкость доступа к информации, а также синхронизацию информации между пользователями и устройствами, (5) возможность интеграции различных сред передачи данных, таких как электронная почта, факсы и телефоны, (6) для разработчиков возможность создавать многократно используемые модули, тем самым увеличивая производительность и снижая число ошибок программирования, и (7) а также многие другие особенности интеграции между платформами.For example, the .Net platform MICROSOFT® campaign shell includes servers, unified module services, such as network-based data storage and device downloadable software. Generally speaking, the .Net platform shell provides: (1) the ability to work the entire range of computing devices together, and automatically update and synchronize user information on all of them, (2) increased interactive features for Web sites, provided by the wider use of XML, and non-HTML, (3) real-time services that differ in customer-friendly access and delivery of products and services to a user from a central source point for managing various software applications, such as email, for example, or software such as Office.Net, (4) centralized memory, which will increase the efficiency and ease of access to information, as well as synchronization of information between users and devices, (5) the ability to integrate various transmission media data, such as e-mail, faxes and telephones, (6) for developers the ability to create reusable modules, thereby increasing productivity and reducing the number of programming errors, and (7) as well as many other features and tegratsii between platforms.

Хотя примерные варианты осуществления описываются здесь в связи со способами, реализуемыми программным обеспечением, находящимся в вычислительном устройстве, одна или более частей изобретения могут также быть реализованы посредством операционной системы, интерфейса прикладного программирования или объекта посредника между сопроцессором и неизмененным содержимым, так что услуги достоверного содержимого могут выполняться, поддерживаться или к ним может быть получен доступ посредством всех языков и услуг .NET, а также в других распределенных вычислительных оболочках. Кроме того, понятно, что один или более методов, описанных в соответствии с изобретением, могут повлечь за собой изменения в аппаратном обеспечении, таком как БГО, чтобы поддерживать эти методы.Although exemplary embodiments are described herein in connection with methods implemented by software residing in a computing device, one or more parts of the invention may also be implemented by an operating system, an application programming interface, or an intermediary between the coprocessor and the unchanged content, so that the services are valid content can be executed, maintained, or accessed through all .NET languages and services, as well as in other distributions computing shells. In addition, it is understood that one or more of the methods described in accordance with the invention may entail changes in hardware, such as BGO, to support these methods.

Криптографически защищаемое охраняемое содержимоеCryptographically Protected Protected Content

Настоящее изобретение, таким образом, предлагает способы и системы для расширения операционных систем или любой платформы, чтобы обеспечить программные приложения «достоверной графики», такие как защищенные от несанкционированного доступа конфиденциальные диалоги, и чтобы обеспечить воспроизведение содержимого таким способом, который противостоит несанкционированному копированию. Проблема, решаемая настоящим изобретением, иллюстрируется фиг. 2, на которой зашифрованное первичное содержимое 200 показано проходящим к достоверному программному приложению TS или генерируемым им. Содержимое 200 может использовать функции БГО 265 до визуализации (или иного использования) содержимого 200 посредством устройства 295 визуализации, как это свойственно использованию достоверного программного обеспечения TS. Такое содержимое 200 будет проходить от системной или главной памяти 230 в память 260 видеоданных для обработки блоком 265 графической обработки. Пунктирная линия на фиг. 2 иллюстрирует, где имеется проблема защиты. Как указано в разделе, характеризующем существующий уровень техники, никакие из ныне существующих систем должным образом не защищают и не доставляют конфиденциально содержимое через элементы, показанные как окруженные пунктиром. С точки зрения достоверного программного обеспечения TS, первая проблема состоит в том, можно ли доверить содержимое компонентам внутри пунктира перед передачей этого содержимого в БГО. В предположении, что достоверное программное обеспечение TS может удостоверить должным образом компоненты внутри пунктирной линии, вторая проблема с точки зрения достоверного программного обеспечения TS состоит в том, что достоверное программное обеспечение TS должно быть более или менее уверено в том, что когда данные передаются в среду, очерченную пунктирной линией, эти данные не будут изменены. Настоящее изобретение в различных описанных ниже вариантах осуществления направлено на решение проблем обоих этих типов. Разными путями эти способы и системы реализуются: (1) зашифровкой содержимого перекрывающихся поверхностей, (2) разрешением для БГО работать с зашифрованным содержимым, не делая его доступным для недостоверных программных приложений или сторон, и (3) зашифровкой содержимого командных буферов.The present invention thus provides methods and systems for expanding operating systems or any platform to provide “reliable graphics” software applications, such as tamper-proof confidential dialogs, and to ensure that content is reproduced in a manner that resists unauthorized copying. The problem solved by the present invention is illustrated in FIG. 2, in which the encrypted primary content 200 is shown passing to or generated by a valid TS software application. Content 200 may use the functions of the BGO 265 before rendering (or otherwise using) the content 200 through the visualization device 295, as is typical for using reliable TS software. Such content 200 will pass from the system or main memory 230 to the video data memory 260 for processing by the graphic processing unit 265. The dashed line in FIG. 2 illustrates where there is a security problem. As indicated in the section characterizing the current level of technology, none of the existing systems properly protect and deliver confidentially the contents through the elements shown as surrounded by a dotted line. From the point of view of reliable TS software, the first problem is whether it is possible to trust the contents to the components inside the dotted line before transferring this content to the BGO. Assuming that reliable TS software can properly certify components within the dashed line, a second problem from the point of view of reliable TS software is that reliable TS software must be more or less confident that when data is transferred to the environment outlined by a dashed line, this data will not be changed. The present invention, in the various embodiments described below, addresses both of these types of problems. In different ways, these methods and systems are implemented: (1) by encrypting the contents of overlapping surfaces, (2) allowing BGOs to work with encrypted content without making it available to unreliable software applications or parties, and (3) encrypting the contents of command buffers.

Первый аспект проблемы обработки и визуализации достоверной графики, на решение которого направлено данное изобретение, относится к получению криптографического (иногда называемого здесь «крипто») процессора и индексированного управления ключами. Обычным образом переуступленная совместно поданная заявка на патент США, условно обозначенная № АА/ИИИССС (далее «заявка ССС»), озаглавленная «Способы и системы для аутентификации компонентов в графической системе», раскрывают методы аутентификации компонента(ов) в связи с графической системой, как описывается ниже. Следует понимать, однако, что данное изобретение предполагает, что аутентификация произошла, а тем самым любые методы аутентификации могут применяться для обеспечения достоверной графической платформы, как описывается ниже в различных вариантах осуществления изобретения.The first aspect of the problem of processing and visualizing reliable graphics, the solution of which this invention is directed, relates to obtaining a cryptographic (sometimes referred to as “crypto”) processor and indexed key management. The commonly reassigned jointly filed US patent application, conventionally labeled No. AA / IIISSS (hereinafter referred to as “CCC Application”), entitled “Methods and Systems for Authenticating Components in a Graphic System”, disclose methods for authenticating a component (s) in connection with a graphic system, as described below. It should be understood, however, that the invention assumes that authentication has occurred, and thus any authentication methods can be used to provide a reliable graphic platform, as described below in various embodiments of the invention.

Примерная аутентификацияSample Authentication

В этом отношении, защищенные графические адаптеры должны быть способны аутентифицировать самих себя как таковых. В частности, достоверное программное обеспечение должно иметь возможность различать защищенные графические адаптеры или обходные устройства, такие как спуф [обман]. Вдобавок, достоверное программное обеспечение должно быть способно обнаруживать криптографические ключи для графических адаптеров и должно иметь возможность проверить, что приемником этих ключей является действительно защищенный графический адаптер. Для этой цели защищенные графические адаптеры в соответствии с изобретением снабжаются криптопроцессорами, которые выполняют криптографические задачи аутентификации и переноса ключей.In this regard, secure graphics cards must be able to authenticate themselves as such. In particular, reliable software should be able to distinguish between secure graphics adapters or workarounds, such as spoofing. In addition, reliable software must be able to detect cryptographic keys for graphics adapters and should be able to verify that the receiver of these keys is a truly secure graphics adapter. For this purpose, the secure graphics adapters in accordance with the invention are equipped with crypto processors that perform cryptographic authentication and key transfer tasks.

По отношению к аппаратному обеспечению в соответствии с изобретением предусматриваются криптопроцессоры, которые индивидуализируются и сертифицируются в процессе производства. Каждый криптопроцессор содержит уникальный частный ключ Кчастн дешифровки. Хотя согласно данному изобретению для контекста предполагаются и известны в области криптографии многие алгоритмы шифрования и дешифрации, алгоритмом, описанным здесь, является RSA, а длина ключа составляет 1024 битов, однако это не является ограничением, и выбор быть сделан согласно общеизвестным компромиссам в зависимости от желательных программного приложения и уровня(ей) защищенности.With respect to the hardware in accordance with the invention, cryptoprocessors are provided that are individualized and certified during production. Each crypto processor contains a unique private key to the private decryption. Although many encryption and decryption algorithms are assumed and known in the field of cryptography according to this invention, the algorithm described here is RSA and the key length is 1024 bits, but this is not a limitation and the choice should be made according to well-known compromises depending on the desired software application and security level (s).

В этом отношении криптопроцессор постоянно связан с графическим адаптером либо путем добавления его к существующей микросхеме, либо добавления его в качестве отдельной микросхемы на адаптере. Криптопроцессор реализует криптоалгоритм открытого ключа, как подробнее описывается ниже, и скрывает уникальный секретный ключ. В этом отношении такой криптопроцессор может быстро выполнять дешифрацию открытым ключом при использовании современных полупроводниковых технологий. Однако криптопроцессор может быть также включен в ускоритель открытого ключа и может реализовывать симметричный шифр и некоторую управляющую логику.In this regard, the crypto processor is constantly connected to the graphics adapter either by adding it to an existing chip or by adding it as a separate chip on the adapter. The cryptoprocessor implements a public key cryptographic algorithm, as described in more detail below, and hides a unique secret key. In this regard, such a crypto processor can quickly perform public key decryption using modern semiconductor technologies. However, the crypto processor can also be included in the public key accelerator and can implement a symmetric cipher and some control logic.

В одном примерном неограничивающем варианте осуществления криптопроцессор включает в себя следующие энергозависимые регистры: (1) регистр S на 256 битов для сеансового ключа. Срок службы этого ключа обычно составляет время выполнения достоверного программного обеспечения, и (2) матрицу из множества указательных ключей. Каждый ключ может иметь длину 128 битов, хотя могут быть пригодны и другие выборы. Каждый ключ связан с конкретным окном и используется графическим адаптером для дешифрации своего содержимого. Срок службы каждого ключа управляется командами от достоверного программного обеспечения.In one exemplary non-limiting embodiment, the crypto processor includes the following volatile registers: (1) a 256-bit S register for the session key. The life of this key is usually the runtime of reliable software, and (2) a matrix of many index keys. Each key can be 128 bits long, although other choices may be suitable. Each key is associated with a specific window and is used by the graphics adapter to decrypt its contents. The life of each key is controlled by commands from reliable software.

Как упомянуто, криптопроцессор по изобретению постоянно связан с графическим адаптером. Тем самым требуется средство для защищенного взаимодействия с криптопроцессором, чтобы использовать его функции. В том, что касается взаимодействия с криптопроцессором, настоящее изобретение рассматривает по меньшей мере два метода: (а) внешний интерфейс к достоверному программному обеспечению TS и (б) интерфейс к БГО 265. Первый из этих интерфейсов - по меньшей мере, его криптографические аспекты - должны быть стандартизованы. Последний из этих интерфейсов может быть реализован в специализированной форме, но должен придерживаться всех принципов, установленных ниже.As mentioned, the crypto processor of the invention is constantly connected to the graphics adapter. Thus, a tool is required for secure interaction with the cryptoprocessor in order to use its functions. In terms of interaction with a crypto processor, the present invention considers at least two methods: (a) an external interface to reliable TS software and (b) an interface to BGO 265. The first of these interfaces is at least its cryptographic aspects - must be standardized. The last of these interfaces can be implemented in a specialized form, but must adhere to all the principles set forth below.

Что касается реализации внешнего интерфейса этот внешний интерфейс использует протокол шифрования секретным ключом (СК) для аутентификации и переноса ключа. По этому протоколу достоверное программное обеспечение зашифровывает сеансовый ключ открытым ключом криптопроцессора. Криптопроцессор принимает результирующий криптографический двоично кодированный массив и дешифрирует его своим секретным ключом, получая тем самым сеансовый ключ. Теперь достоверное программное обеспечение и криптопроцессор совместно используют защиту. Достоверное программное обеспечение может использовать этот сеансовый ключ, чтобы посылать команды на криптопроцессор.As for the implementation of the external interface, this external interface uses the secret key encryption protocol (SC) for authentication and key transfer. According to this protocol, reliable software encrypts the session key with the public key of the crypto processor. The crypto processor accepts the resulting cryptographic binary encoded array and decrypts it with its private key, thereby obtaining a session key. Reliable software and a crypto processor now share security. Trusted software can use this session key to send commands to the crypto processor.

В одном неограничивающем варианте осуществления криптопроцессор воздействует на внешний интерфейс следующими функциями:In one non-limiting embodiment, the crypto processor acts on the external interface with the following functions:

Функция УстановкаСеансовогоКлюча() выполняет шаг начальной аутентификации и перенос ключа. Это единственная функция, обращающаяся к функции открытого ключа криптопроцессора. Таким образом, в одном варианте осуществления настоящее изобретение предполагает вызывать эту функцию один раз за загрузку. Следующий примерный псевдокод представляет следующую не ограничивающую реализацию функции УстановкаСеансовогоКлюча():The Set Session Key () function performs the initial authentication step and key transfer. This is the only function that refers to the cryptoprocessor public key function. Thus, in one embodiment, the present invention contemplates calling this function once per load. The following example pseudo-code represents the following non-limiting implementation of the Session Key () function:

УстановкаСеансовогоКлюча(криптодвоичныймассив){Setting the Session Key (crypto-binary array) {

ЧКРасшифр(частныйКлюч, криптодвоичныймассив, сеансовыйКлюч);ChC Decryption (private Key, crypto binary array, session Key);

}}

После успешного завершения этой операции регистр сеансовыйКлюч содержит ключ, такой как ключ из 256 битов, из криптографического двоично-кодированного массива. Алгоритм открытого ключа может быть, к примеру, алгоритмом RSA длиной 1024 битов.Upon successful completion of this operation, the session-key register contains a key, such as a 256-bit key, from a cryptographic binary-encoded array. The public key algorithm may be, for example, an RSA algorithm with a length of 1024 bits.

Когда симметричный сеансовый ключ К установлен между достоверным программным обеспечением и криптопроцессором, этот ключ может использоваться, чтобы обезопасить всю дальнейшую передачу данных к криптопроцессору и от него. Достоверное программное обеспечение и криптопроцессор могут осуществлять связь посредством простых способов «Получить и Установить», параметры которых криптографически защищены для конфиденциальности и целостности. В частности, блок В параметров каждого вызова может обрабатываться следующим неограничивающим способом:When a symmetric session key K is installed between the trusted software and the crypto processor, this key can be used to secure all further data transfer to and from the crypto processor. Reliable software and a crypto processor can communicate using the simple Get and Install methods, the parameters of which are cryptographically protected for confidentiality and integrity. In particular, the parameter block B of each call can be processed in the following non-limiting way:

AES( M | HMAC( M, K1 ), K2 ),AES (M | HMAC (M, K1), K2),

где:Where:

К1 - это первая половина К (биты 0 - 127),K1 is the first half of K (bits 0 - 127),

К2 - это вторая половина К (биты 128 - 255),K2 is the second half of K (bits 128 - 255),

AES(M,K) представляет собой результат шифрования сообщения М ключом К в стандарте AES в режиме СВС,AES (M, K) is the result of encrypting the message M with the key K in the AES standard in the CBC mode,

НМАС(М,К) представляет собой результат вычисления НМАС через подходящую хеш-функцию на массиве М ключом К,NMAC (M, K) is the result of calculating NMAC through a suitable hash function on an array M with key K,

A | B представляет собой результат конкатенации А и В.A | B is the result of concatenation of A and B.

Этот формат можно использовать для ввода параметров и для вывода параметров следующих функций:This format can be used to enter parameters and to output parameters of the following functions:

Установить ([IN] BOOL needsAck, [IN] BITS128 nonce, [IN] ENUM propertyID, [IN] BYTESEQUENCE propertyParamters, [OUT] BYTESEQUENCE ack)Set ([IN] BOOL needsAck, [IN] BITS128 nonce, [IN] ENUM propertyID, [IN] BYTESEQUENCE propertyParamters, [OUT] BYTESEQUENCE ack)

где:Where:

needsAck является булевым значением, которое позволяет достоверному программному обеспечению указывать, требуется ли квитирование.needsAck is a boolean value that allows reliable software to indicate whether acknowledgment is required.

nonce является 128-битовым значением, выбранным достоверным программным обеспечением. nonce можно использовать в квитировании, если запрашивалось квитирование.nonce is a 128-bit value selected by trusted software. nonce can be used in acknowledgment if acknowledgment is requested.

propertyID идентифицирует свойство, которое устанавливается. Примерный перечень поддерживаемых свойств дан ниже в Таблице 1.propertyID identifies the property that is being set. An approximate list of supported properties is given below in Table 1.

propertyParamters является последовательностью параметров, которая специфична для каждого propertyID.propertyParamters is a sequence of parameters that is specific to each propertyID.

Наконец, ack представляет собой квитирование операции. Криптопроцессор вырабатывает ack, если и только если устанавливалось needsAck. Ack составлен из nonce, за которым следует сообщение, которое специфично для каждого propertyID.Finally, ack is an acknowledgment of an operation. The crypto processor produces ack if and only if needsAck was installed. Ack is made up of nonce, followed by a message that is specific to each propertyID.

Таблица 1 - Перечень propertyID для функции УстановитьTable 1 - List of propertyID for the Set function

PropertyIDPropertyID NeedsAckNeedsawck ПараметрыOptions КвитированиеAcknowledgment Указательный ключPointing key ДаYes Указатель, ключ, назначениеPointer, Key, Purpose ОК, отказOk refusal Блокировка выходаOutput lock ДаYes {блокировка, разрешение}{lock, permission} Состояние после операции запиранияStatus after locking operation L2KEYMGMTL2KEYMGMT ДаYes Частота обновленияUpdate frequency ОК, отказOk refusal

По отношению к propertyID (идентификатор свойства) «указательный ключ» данный способ записывает новый ключ и метку назначения в ключевой регистр, идентифицированный указателем.In relation to the propertyID (property identifier) "index key", this method writes the new key and destination label to the key register identified by the pointer.

По отношению к propertyID «блокировка выхода» данный способ устанавливает флаг блокировки выхода. Когда установлен этот флаг, геометрия экрана (ширина, высота, глубина цвета, частота обновления), а также выход графического адаптера (VGA, DVI) не могут быть изменены. В частности, графический адаптер не будет выполнять команды для изменения этих установок, пока установлен флаг блокировки выхода.In relation to the propertyID “output blocking”, this method sets the flag for blocking the output. When this flag is set, the screen geometry (width, height, color depth, refresh rate), as well as the output of the graphics adapter (VGA, DVI) cannot be changed. In particular, the graphics adapter will not execute commands to change these settings while the output lock flag is set.

По отношению к propertyID L2KEYMGMT данный способ устанавливает (управление ключом на уровне 2) частоту обновления ключа под вторым уровнем защиты, как описано в соответствии с изобретением, т.е. шифрование входов и выходов, подробнее описанное ниже.With respect to propertyID L2KEYMGMT, this method sets (key management at level 2) the key update frequency under the second security level, as described in accordance with the invention, i.e. encryption of inputs and outputs, described in more detail below.

Аналогично, функция Get (Получить) предлагается следующим образом:Similarly, the Get function is proposed as follows:

Get ([IN] BITS128 nonce, [IN] ENUM propertyID, [IN] BYTESEQUENCE propertyParamters, [OUT] BYTESEQUENCE response)Get ([IN] BITS128 nonce, [IN] ENUM propertyID, [IN] BYTESEQUENCE propertyParamters, [OUT] BYTESEQUENCE response)

где:Where:

nonce является 128-битовым значением, выбранным достоверным программным обеспечением для использования в отклике.nonce is a 128-bit value selected by trusted software for use in response.

propertyID идентифицирует устанавливаемое свойство. Перечень поддерживаемых свойств дан ниже в Таблице 2.propertyID identifies the property to set. The list of supported properties is given below in Table 2.

propertyParamters является последовательностью параметров, которая специфична для каждого propertyID.propertyParamters is a sequence of parameters that is specific to each propertyID.

Response содержит результаты операции. Response состоит из nonce, за которым следует сообщение, которое специфично для каждого propertyID.Response contains the results of the operation. Response consists of nonce followed by a message that is specific to each propertyID.

Таблица 2 - Перечень propertyID для функции Get ПолучитьTable 2 - List of propertyID for the Get function Get

PropertyIDPropertyID ПараметрыOptions ОткликResponse Выходные портыOutput ports Ключевой указательKey pointer VGA, AGP, и т.п.VGA, AGP, etc. Код аутентификацииAuthentication code Ключевой указательKey pointer Х-битовое числоX bit number Версия DX-SECDX-SEC Version НетNo Номер версииVersion number Подсчет поверхностей защитыCounting protection surfaces НетNo Число поддерживаемых поверхностей защитыThe number of supported protection surfaces Подсчет перекрывающихся поверхностейCounting overlapping surfaces НетNo Число поддерживаемых перекрывающихся поверхностейNumber of supported overlapping surfaces Первичный типPrimary type НетNo 1one Геометрия Geometry НетNo Ширина, высота, частота обновления, глубина цвета первичной поверхностиWidth, height, refresh rate, color depth of the primary surface

По отношению к Выходным портам данный способ выдает в ответ установки выходов графического адаптера, например VGA, DVI и т.п.In relation to the Output ports, this method responds by setting the outputs of the graphics adapter, for example VGA, DVI, etc.

По отношению к Коду аутентификации данный способ выдает в ответ хеш-функцию содержимого окна согласно первому уровню защиты, описанному в соответствии с изобретением, например шифрование оверлеев.With respect to the Authentication Code, this method responds with a hash function of the contents of the window according to the first level of protection described in accordance with the invention, for example, encryption of overlays.

По отношению к версии DX-SEC данный способ выдает в ответ версию DX-SEC, поддерживаемую графическим адаптером.In relation to the DX-SEC version, this method responds with the DX-SEC version supported by the graphics adapter.

По отношению к Подсчету поверхностей защиты данный способ выдает в ответ число поверхностей защиты, поддерживаемых графическим адаптером.In relation to the calculation of protection surfaces, this method returns the number of protection surfaces supported by the graphics adapter.

По отношению к Подсчету перекрывающихся поверхностей данный способ выдает в ответ число перекрывающихся поверхностей, поддерживаемых графическим адаптером.With respect to Counting overlapping surfaces, this method responds with the number of overlapping surfaces supported by the graphics adapter.

По отношению к Первичному типу данный способ выдает в ответ 1 и обеспечивает гибкость на будущее.In relation to the Primary type, this method returns 1 and provides flexibility for the future.

По отношению к Геометрии данный способ выдает в ответ ширину, высоту, частоту обновления и глубину цвета первичной поверхности.In relation to Geometry, this method responds with the width, height, refresh rate, and color depth of the primary surface.

Функция Set (Установить) может дополнительно включать в себя способ, который устанавливает местоположение или размер защищенного перекрытия областей либо местоположение и размер части основной (первичной) поверхности, которая должна дешифрироваться.The Set function may further include a method that sets the location or size of the protected area overlap, or the location and size of the portion of the primary (primary) surface to be decrypted.

Таким образом, вышеуказанные функции SetSessionKey (УстановитьСеансовыйКлюч), Get (Получить) и Set (Установить) относятся к не ограничивающим вариантам выполнения внешнего интерфейса. Выражение «внутренний интерфейс» относится к интерфейсу между криптопроцессором и остальной частью графического адаптера. Подробности этого вида интерфейса согласно изобретению вплоть до реализации каждого отдельного графического адаптера должны подчиняться следующим ограничениям: (1) криптопроцессор должен быть постоянно связан с графическим адаптером и (2) соединение между криптопроцессором и остальной частью графического адаптера не должно раскрываться.Thus, the above functions SetSessionKey (SetSession Key), Get (Set) and Set (Install) are non-limiting options for the execution of the external interface. The expression "internal interface" refers to the interface between the crypto processor and the rest of the graphics adapter. The details of this type of interface according to the invention, up to the implementation of each individual graphic adapter, must be subject to the following restrictions: (1) the crypto processor must be constantly connected to the graphic adapter and (2) the connection between the crypto processor and the rest of the graphic adapter must not be opened.

В этом отношении удаление криптопроцессора из графического адаптера не должно быть тривиальным. Если криптопроцессор выполняется как отдельная микросхема, это главным образом ограничение на механический интерфейс, который обеспечит прикрепление криптопроцессора к графическому адаптеру. В типовом случае криптопроцессор должен припаиваться на графический адаптер. Альтернативно, криптопроцессор может находиться в той же самой микросхеме, что и главный ЦП. Использование стандартизованных механических интерфейсов, которые позволяют удалять криптопроцессор, например считыватели интеллектуальных карточек, гнездовые патроны и тому подобное, неприемлемы.In this regard, removing the crypto processor from the graphics adapter should not be trivial. If the cryptoprocessor is run as a separate chip, this is mainly a limitation on the mechanical interface that will secure the cryptoprocessor to the graphics adapter. In a typical case, the crypto processor should be soldered to the graphics adapter. Alternatively, the crypto processor may reside in the same chip as the main CPU. The use of standardized mechanical interfaces that allow the cryptoprocessor to be removed, such as smart card readers, socket cartridges, and the like, is unacceptable.

Кроме того, физическое соединение между криптопроцессором и остальной частью графического адаптера не должно быть доступно и не должно раскрываться через стандартные интерфейсы. К примеру, соединитель USB на этой шине неприемлем в соответствии с изобретением.In addition, the physical connection between the crypto processor and the rest of the graphics adapter should not be accessible and should not be opened through standard interfaces. For example, the USB connector on this bus is not acceptable in accordance with the invention.

По отношению к правилам для управления ключами каждый указательный ключ может использоваться только в соответствии с его связанным параметром назначения. В одном варианте осуществления значения параметра назначения означают следующее:With respect to key management rules, each index key can only be used in accordance with its associated assignment parameter. In one embodiment, the values of the destination parameter mean the following:

L1STREAM: Этот ключ может использоваться только с поточным шифром DX-SEC, описанным ниже в связи с первым уровнем защиты, предусмотренным изобретением, например шифрование оверлеев.L1STREAM: This key can only be used with the DX-SEC stream cipher described below in connection with the first level of protection provided by the invention, for example, encryption of overlays.

L2BLOCK: Этот ключ может использоваться только с блоковым шифром в режиме ЕСВ второго уровня защиты, предусмотренного изобретением, например шифрование входов и выходов, описанное ниже. Блоковый шифр в режиме ЕСВ используется для дешифрирования текстурных блоков, которые записаны достоверным программным обеспечением.L2BLOCK: This key can only be used with a block cipher in the ECB mode of the second level of protection provided by the invention, for example, encryption of inputs and outputs, described below. Block cipher in the ECB mode is used to decrypt texture blocks, which are recorded by reliable software.

В этом отношении не должно поддерживаться никаких копий ключей, когда указатель заполняется новым значением.In this regard, no copies of keys should be supported when the pointer is populated with a new value.

Первый уровень защиты - зашифрованные оверлеиFirst level of protection - encrypted overlays

Поскольку видеопамять может отображаться и считываться недостоверным программным обеспечением, исполняемым в ЦП, видеопамять не может содержать информацию в виде открытого текста. Видеопамять, подчиняющаяся этому требованию, включает в себя видеопамять, используемую для обновления дисплея. Исходная реализация системы, которая удовлетворяет этому критерию в соответствии с изобретением, шифрует содержимое оверлейной поверхности. Оверлей затем будет дешифрироваться в процессе работы аппаратурой ЦАП или непосредственно перед достижением аппаратуры ЦАП, когда изображение посылается на дисплей.Since video memory can be displayed and read by unreliable software running on the CPU, video memory cannot contain plaintext information. Video memory that obeys this requirement includes the video memory used to update the display. The original implementation of a system that satisfies this criterion in accordance with the invention encrypts the contents of the overlay surface. The overlay will then be decrypted during operation of the DAC equipment or immediately before reaching the DAC equipment when the image is sent to the display.

Фиг. 3А иллюстрирует примерное осуществление такого метода. Зашифрованное первичное содержимое 200, где бы оно ни бралось или генерировалось, присущее достоверному программному приложению 210, принимается этим достоверным программным приложением 210. Следует обмен аутентификациями с криптопроцессором 220, такой как процедура(ы) обмена аутентификациями, описанные выше в примерных вариантах осуществления, или другим методом для надежной доставки ключей, либо криптографическим, либо по пути, защищенному иными средствами. Содержимое 200 проходит из системной памяти 230 к зашифрованной оверлейной поверхности 240, которая перекрывает первичную поверхность 270 видеопамяти 260. В сочетании с криптопроцессором 220 секция 250 дешифрирования в ЦП дешифрирует уровень шифрования, обеспеченный зашифрованным перекрытием (оверлеем) 240, и пропускает содержимое на секцию 280 выбора пикселов для вывода на цифровой видеоинтерфейс (ЦВИ) / цифроаналоговый преобразователь (ЦАП) 290 для вывода на визуализирующее устройство, такое как монитор. Однако система, показанная на фиг. 3А, не отвечает всем описанным выше критериям, поскольку имеется лишь один оверлей. Чтобы соответствовать минимальному пределу функциональности, необходимому для достоверной среды, такой как достоверные окна, изобретение допускает два оверлея в альтернативном варианте осуществления. Первый «конфиденциальный» оверлей представляет собой, в основном, оверлей, который существует в платформах сегодня, в первую очередь для воспроизведения видео, расширенный так, что его содержимое можно шифровать. Второй оверлей специально разработан для обеспечения чувствительного пользовательского интерфейса, такого как диалоги электронной коммерции. Этот «защищенный оверлей» находится всегда наверху и не закрывается, т.е. не имеет цветового кодирования и имеет предпочтение перед первым оверлеем. Второй оверлей может подвергаться некоторым ограничениям для минимизации стоимости. К примеру, второй оверлей может быть получен так, что данные находятся в том же пиксельном формате, что и первичные поверхности, и не способен растягиваться или заносится во множество буферов. Вдобавок, содержимое защищенного оверлея может проверяться аппаратным обеспечением. Таблица 3 обобщает примерные различия между конфиденциальным слоем и защищенным слоем.FIG. 3A illustrates an exemplary implementation of such a method. The encrypted primary content 200, wherever it is taken or generated, inherent in a trusted software application 210, is accepted by that trusted software application 210. An authentication exchange with crypto processor 220, such as the authentication exchange procedure (s) described above in the exemplary embodiments, or another method for reliable delivery of keys, either cryptographic, or along a path protected by other means. Content 200 passes from system memory 230 to the encrypted overlay surface 240, which overlaps the primary surface 270 of the video memory 260. In combination with the crypto processor 220, the decryption section 250 in the CPU decrypts the encryption level provided by the encrypted overlap (overlay) 240 and passes the contents to the selection section 280 pixels for output to a digital video interface (CVI) / digital-to-analog converter (DAC) 290 for output to a visualizing device, such as a monitor. However, the system shown in FIG. 3A does not meet all the criteria described above since there is only one overlay. In order to meet the minimum functionality limit necessary for a trusted environment, such as trusted windows, the invention allows two overlays 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 provide a responsive user interface, such as e-commerce dialogs. This “protected overlay” is always at the top and does not close, i.e. It has no color coding and has preference over the first overlay. The second overlay may be subject to some restrictions to minimize cost. For example, the second overlay can be obtained so that the data is in the same pixel format as the primary surfaces, and is not able to stretch or enter into many buffers. In addition, the contents of the secure overlay can be checked by hardware. Table 3 summarizes exemplary differences between a confidential layer and a protected layer.

Таблица 3.Table 3.

Сопоставление конфиденциального и защищенного оверлеевMatch confidential and secure overlays

ПредметThing Конфиденциальный оверлейConfidential Overlay Защищенный оверлейProtected Overlay Тот же пиксельный формат, что и первичныйSame pixel format as primary ДаYes НетNo Может растягиватьсяCan stretch НетNo ДаYes Может кодироваться целевым цветомCan be encoded with target color ДаYes НетNo Может заноситься во множество буферовCan be written to many buffers ДаYes НетNo Всегда наверхуAlways upstairs НетNo ДаYes Содержимое может проверятьсяContent can be checked НетNo ДаYes

Фиг. 3В показывает систему, которая включает в себя как конфиденциальные слои, например слои 310а, 310b и 310с цепочки 310, отражающей конфиденциальные оверлеи, так и защищенные оверлеи 320. Когда это возможно, потоковые шифры используются для шифрования охраняемых поверхностей, потому что они быстрее и проще для осуществления, чем блоковые шифры (дополнительная информация приведена в Приложении А). Потоковые шифры шифруют данные по принципу «позиция байта в потоке». Тем самым первый уровень защиты по изобретению инициализирует потоковый шифр ключом шифрования пикселов в левом верхнем углу поверхности. Потоковый шифр продвигается для каждого пиксела, содержащегося в оверлейной поверхности, независимо от того, будет ли этот пиксел отображаться. Предложенная система содержит два компонента 300а и 300b дешифрирования потокового шифра, один для конфиденциального оверлея и один для защищенного оверлея соответственно. Когда дешифрированные пиксельные значения доступны, аппаратное обеспечение 280 выбирает пиксельные значения защищенного оверлея 320, конфиденциального оверлея 310 (если первичная поверхность 270 одинакова с цветовым кодом и/или если разрешается цветовое кодирование) или первичной поверхности 270 и посылает это пиксельное значение на дисплейную аппаратуру через ЦВИ/ЦАП 290.FIG. 3B shows a system that includes both confidential layers, for example layers 310a, 310b and 310c of a chain 310 reflecting confidential overlays, and secure overlays 320. Whenever possible, stream ciphers are used to encrypt protected surfaces because they are faster and easier to implement than block ciphers (more information is given in Appendix A). Stream ciphers encrypt data according to the principle of “byte position in the stream”. Thus, the first level of protection according to the invention initializes the stream cipher with a pixel encryption key in the upper left corner of the surface. The stream cipher advances for each pixel contained in the overlay surface, regardless of whether that pixel is displayed. The proposed system comprises two stream cipher decryption components 300a and 300b, one for a confidential overlay and one for a secure overlay, respectively. When the decrypted pixel values are available, hardware 280 selects the pixel values of the secure overlay 320, confidential overlay 310 (if the primary surface 270 is the same as the color code and / or if color coding is enabled), or the primary surface 270 and sends this pixel value to the display equipment through the CVI / DAC 290.

Отметим, что противник может получить доступ к оверлеям любым числом средств и при этом либо сделать отображенное изображение невидимым, либо заменить защищенное содержимое шумовым содержимым, поскольку данные, записанные противником, также будут дешифрироваться. Хотя изобретение не защищает непосредственно от таких атак, все же изобретение обеспечивает проверку целостности, чтобы гарантировать, что ожидаемое содержимое было представлено конечному пользователю. Таким образом, если выходной результат в чем-либо отличается от входного, пользователь достоверного программного обеспечения 210 может быть предупрежден о том, что имела место фальсификация содержимого.Note that the adversary can access the overlays by any number of means and at the same time either make the displayed image invisible or replace the protected content with noise content, since the data recorded by the adversary will also be decrypted. Although the invention does not directly protect against such attacks, the invention nevertheless provides an integrity check to ensure that the expected content has been presented to the end user. Thus, if the output result differs in any way from the input, a user of reliable software 210 may be warned that content has been tampered with.

По отношению к программному интерфейсу с оверлеями, помимо обычной оверлейной информации, такой как рамка, ограничивающая источник или место назначения, целевой цветовой код и т.п., конфиденциальный оверлей 310 поддерживает то, что определен ключевой указатель шифрования, а защищенный оверлей 320 дополнительно поддерживает то, что определена ячейка памяти, куда должен записываться циклический избыточный код (ЦИК) (CRC) дешифрируемого оверлейного содержимого.In relation to the program interface with overlays, in addition to the usual overlay information, such as a frame restricting the source or destination, the target color code, etc., the confidential overlay 310 supports the fact that the encryption key pointer is defined, and the secure overlay 320 additionally supports that a memory cell is defined where the cyclic redundancy code (CRC) of the decrypted overlay content is to be written.

Интерфейс конфиденциального оверлея аналогичен существующим оверлеям за исключением того, что зеркальный способ определяет ключевой указатель шифрования для содержимого оверлейного обратного буфера 310а, т.е. буфера, в который зеркально отражаются данные.The confidential overlay interface is similar to existing overlays except that the mirror method defines an encryption key pointer for the contents of the overlay reverse buffer 310a, i.e. a buffer to which data is mirrored.

Интерфейс защищенного оверлея проще и создает резерв для ЦИК поверхности, подлежащей направлению в ячейку памяти после того, как она отображена в первый раз. Стандартизованный аппаратный интерфейс управляет местоположением оверлея и делает ЦИК доступным для заинтересованного программного обеспечения на основе опроса. Например, один регистр может указывать, доступен ли ЦИК, а другой может разрешать считывать ЦИК. К примеру, нижеследующий примерный псевдокод может использоваться в связи с интерфейсом защищенного оверлея:The secure overlay interface is simpler and creates a reserve for the CEC of the surface to be sent to the memory cell after it is displayed for the first time. A standardized hardware interface manages the location of the overlay and makes the CEC available to interested survey-based software. For example, one register may indicate whether the CEC is available, and the other may allow the CEC to read. For example, the following example pseudo-code can be used in connection with the secure overlay interface:

HRESULT UpdateOverlay( LPPOINT ppntUL );HRESULT UpdateOverlay (LPPOINT ppntUL);

где:Where:

ppntUL определяет верхний левый угол защищенного оверлея.ppntUL defines the upper left corner of the secure overlay.

В этом отношении программное обеспечение 210 вычисляет значение ЦИК, которое ожидается, если оно относится к целостности.In this regard, the software 210 calculates the CRC value, which is expected if it relates to integrity.

Второй уровень защиты - зашифрованные входы и выходыSecond level of protection - encrypted inputs and outputs

В соответствии с изобретением, чтобы расширить БГО 265 для обработки зашифрованного содержимого в качестве входа (входных данных) и выдачи зашифрованного содержимого в качестве выхода выходных данных, аппаратура шифрования и дешифрования добавляется к блоку отображения текстуры (на входной стороне) и блок смешивания по альфа-каналу (на выходной стороне), и разработчики аппаратных средств взаимодействуют, чтобы следовать некоторым правилам при реализации этих функций. Поскольку потоковые шифры не обеспечивают случайного доступа к зашифрованным данным, система использует блоковые шифры, шифрующие данные, например 128 битов за раз. Блок отображения текстуры дешифрирует по заполнению строки кэш-памяти, а блок смешивания по альфа-каналу дешифрирует, когда считывает строку кэш-памяти из цветового буфера и шифрует перед записью. Ключи шифрования, используемые в этих операциях, могут быть различны.In accordance with the invention, in order to expand BGO 265 for processing encrypted content as input (input data) and outputting encrypted content as output data, encryption and decryption equipment is added to the texture display unit (on the input side) and the alpha mixing unit channel (on the output side), and the hardware developers interact to follow some rules when implementing these functions. Since stream ciphers do not provide random access to encrypted data, the system uses block ciphers to encrypt data, for example, 128 bits at a time. The texture mapper decrypts to fill the cache line, and the alpha mix block decrypts when it reads the cache line from the color buffer and encrypts before writing. The encryption keys used in these operations may vary.

Вычислительные задачи иные, нежели трехмерная визуализация, такие как видеодекодирование, представляют собой непосредственные расширения только что описанной парадигмы. Шифруемым входом вместо текстур служат видеомакроблоки; а шифруемым выходом вместо цветового буфера служит декодируемый выходной кадр. Если содержимое подлежит защите, когда оно доставляется по сети в потоке команд к БГО 265, то метод, которым командный буфер также может быть зашифрован, описывается ниже.Computational tasks other than three-dimensional visualization, such as video decoding, are immediate extensions of the paradigm just described. Instead of textures, the encrypted input is video macroblocks; and the encrypted output instead of the color buffer is the decoded output frame. If the content is to be protected when it is delivered over the network in a command stream to BGO 265, then the method by which the command buffer can also be encrypted is described below.

Фиг. 4А показывает вышеописанную систему, выполняющую операцию предварительной обработки, принимая зашифрованную поверхность 420 в качестве входа и выдавая зашифрованную поверхность в качестве выхода, т.е. методы предварительной обработки зашифрованной текстуры и цветового буфера, через компонент 440 шифрования и дешифрирования. Изобретение далее обеспечивает зашифрованную текстуру 400b, а текстура 400b может быть обычной текстурой видеопамяти 260. Зашифрованная текстура 400а выдается на компонент 450 дешифрирования в БГО 265, который работает вместе с криптопроцессором 220, чтобы дешифрировать эту текстуру и применить компонентом 430а графические алгоритмы, такие как затенение и т.п., к дешифрированным данным из компонента 440.FIG. 4A shows the above-described system performing the pre-processing operation, taking the encrypted surface 420 as an input and issuing the encrypted surface as an output, i.e. preprocessing methods for the encrypted texture and color buffer, through the encryption and decryption component 440. The invention further provides an encrypted texture 400b, and texture 400b may be a regular texture of video memory 260. The encrypted texture 400a is provided to the decryption component 450 in the BGO 265, which works with the crypto processor 220 to decrypt this texture and apply graphics algorithms, such as shading, to the 430a component. and the like, to decrypted data from component 440.

В предвидении развертывания сложного отражающего страницы настольного ПК система, описанная со ссылками на фиг. 4А, может защищать весь настольный ПК при условии, что аппаратура ЦАП может дешифрировать первичную поверхность 270, а также оверлейные поверхности 310 и 320, описанные выше. Отметим, что в таком случае аппаратура ЦАП дешифрирует с помощью блокового шифра, а не потокового шифра. Такая система допускает использование произвольного числа конфиденциальных поверхностей в работе настольного ПК с произвольным упорядочиванием по координате Z, плавным сочленением или даже с применением к ним трехмерных или иных эффектов, без ухудшения защиты. Защищенные оверлейные поверхности 320, которые должны быть всегда наверху и содержимое которых должно проверяться, находятся в отдельных поверхностях. Конфиденциальный оверлей 310, описанный выше, сохраняется до тех пор, пока не сможет быть эмулирован в программном обеспечении настольным ПК или платформой защищенного отражения страниц.In anticipation of the deployment of a complex reflective desktop page, the system described with reference to FIG. 4A can protect an entire desktop PC, provided that the DAC equipment can decrypt the primary surface 270 as well as the overlay surfaces 310 and 320 described above. Note that in this case, the DAC equipment will decrypt using a block cipher, not a stream cipher. Such a system allows the use of an arbitrary number of confidential surfaces in the work of a desktop PC with arbitrary ordering by the Z coordinate, smooth articulation, or even applying three-dimensional or other effects to them, without compromising protection. Protected overlay surfaces 320, which should always be at the top and the contents of which should be checked, are in separate surfaces. The confidential overlay 310 described above is retained until it can be emulated in desktop software or a secure page reflection platform.

В одном варианте осуществления в дополнение к обеспечению возможности дешифрировать первичную поверхность 270 система требует, чтобы БГО 265 также обеспечивал шифрование открытого текста из обычных приложений настольного ПК, такого как достоверные текстовые процессоры, поэтому они тоже могут использоваться в настольном ПК. Фиг. 4В иллюстрирует такой сценарий, в котором шифруется цепочка 510, отражающая первичные поверхности, в том числе переднюю 510b и заднюю 510а. Таким образом, настольным наборщиком 430 могут выполняться операции над первичными поверхностями, защищенными компонентом 440а шифрования-дешифрирования соответственно для выдачи из него или введения в него. Затем вместе с криптопроцессором 220 компонент 500 дешифрирования дешифрирует переднюю поверхность 510b для вывода к ЦВИ/ЦАП 290. Это подвергает систему некоторым типам атак, которые подробно описываются ниже в связи с обеспечением защиты, где раскрыты некоторые стратегии для борьбы против этих атак.In one embodiment, in addition to being able to decrypt the primary surface 270, the system requires that BGO 265 also provide plaintext encryption from conventional desktop PC applications, such as reliable word processors, so they can also be used on a desktop PC. FIG. 4B illustrates such a scenario in which a chain 510 encrypting primary surfaces, including front 510b and rear 510a, is encrypted. Thus, the desktop typesetter 430 can perform operations on primary surfaces protected by the encryption-decryption component 440a, respectively, for issuing from or introducing into it. Then, together with the crypto processor 220, the decryption component 500 decrypts the front surface 510b for output to the CVI / DAC 290. This exposes the system to some types of attacks, which are described in detail below in connection with the protection, where some strategies for combating these attacks are disclosed.

Альтернатива варианту по фиг. 4В показана на фиг. 4С, где осуществляется копирование в цепочку 310, отражающую конфиденциальные оверлеи. Так, в качестве альтернативы к шифрованию первичной поверхности 270 в соответствии с изобретением аппаратное обеспечение может обеспечить возможность шифрования потоковым шифром для потребления конфиденциальной оверлейной аппаратурой 300а, которая может дешифрировать данные потокового шифра вместе с криптопроцессором 220. Этот механизм представления может быть менее дорогим, чем шифрование первичной поверхности блоковым шифром, но может оказаться в меньшей степени масштабируемым или гибким, как компромисс разработки. Поскольку конфиденциальный оверлей 310 использует потоковый шифр для шифрования, обоснованной операцией для поддержки в этом контексте является «копирующая» операция, в которой вход дешифрируется компонентом 440b дешифрирования с помощью блокового шифра входной поверхности 510а и повторно шифруется компонентом 440b с помощью оверлейного потокового шифра.An alternative to the embodiment of FIG. 4B is shown in FIG. 4C, where copying to chain 310 reflecting confidential overlays is performed. So, as an alternative to encrypting the primary surface 270 in accordance with the invention, the hardware can provide encryption with a stream cipher for consumption by confidential overlay equipment 300a, which can decrypt stream cipher data with crypto processor 220. This presentation mechanism may be less expensive than encryption the primary surface with a block cipher, but it may turn out to be less scalable or flexible, as a trade-off. Since confidential overlay 310 uses a stream cipher for encryption, a reasonable operation to support in this context is a “copy” operation in which the input is decrypted by the decryption component 440b using the block cipher of the input surface 510a and re-encrypted by the 440b component using the overlay stream cipher.

Эти варианты выполнения и их различные комбинации полезны, например, когда достаточно одного зашифрованного входа за раз при условии, что любое число открытых текстовых входов может комбинироваться с зашифрованным входом для генерирования зашифрованного выхода.These embodiments and their various combinations are useful, for example, when one encrypted input at a time is sufficient, provided that any number of open text inputs can be combined with the encrypted input to generate an encrypted output.

По отношению к долговременной защите имеется ряд мер, которые можно реализовать в соответствии с изобретением. Прежде всего, вышеуказанный второй уровень защиты опирается на ту идею, что открытый текст нельзя раскрыть из БГО 265, когда он дешифрирован. К примеру, не существует никаких отладочных регистров или иных средств, которые позволяют считывать открытый текст из микросхемы центральным процессором (ЦП) главного компьютера. В дополнение к тщательной разработке аппаратуры, чтобы избежать таких утечек, набор команд БГО 265 проектируется так, чтобы было невозможно разрешить дешифрирование входа без разрешения шифровать и выход. Кроме того, аппаратное обеспечение предотвращает утечки данных открытого текста инородным драйвером, посторонним кодом или случайные.With respect to long-term protection, there are a number of measures that can be implemented in accordance with the invention. First of all, the above second level of protection is based on the idea that plaintext cannot be disclosed from BGO 265 when it is decrypted. For example, there are no debugging registers or other means that allow reading plaintext from a microcircuit by a central processor (CPU) of the host computer. In addition to carefully developing the hardware to avoid such leaks, the BGO 265 instruction set is designed so that it is not possible to allow decryption of the input without permission to encrypt and exit. In addition, the hardware prevents the leakage of plaintext data by a foreign driver, extraneous code or accidental.

Вдобавок, аппаратное обеспечение не может допускать утечки ключей. Когда ключи доставляются в БГО 265 через криптографический протокол, описанный согласно аутентификационному обмену, они доступны только для компонентов шифрования и дешифрирования.In addition, the hardware cannot allow key leaks. When keys are delivered to BGO 265 through the cryptographic protocol described according to the authentication exchange, they are available only for encryption and decryption components.

Как обсуждалось выше, если БГО 265 способен зашифровывать открытый текст для отображения в первичной поверхности 270, это считается уязвимым местом в системе, т.к. это средство шифрования представляет собой единственный описанный механизм, в котором противник мог бы иметь открытый текст и соответствующий шифротекст доступными одновременно. При преобразовании первичной поверхности так, чтобы она была видна центральному процессору, и создании окна, которое должно зашифровываться, противник может сконструировать поднабор блоков зашифрованного текста, который соответствует известным блокам открытого текста. Эти так называемые «словарные атаки» работают лучше, когда число «интересующих» блоков невелико. К примеру, для отображения черно-белых диалоговых полей в режиме отображения 32bpp, поскольку имеется 4 пиксела на блок, лишь 16 блоков нужны для отображения такого диалога. Одним возможным путем для противника, который откроет 16 шифротекстовых блоков, было бы сфальсифицировать диалог для конечного пользователя за счет создания содержимого, которое имеет смысл даже после дешифрирования в БГО 265. По этой причине защищенное наложение (оверлей) лучше всего подходит для защищенных от несанкционированного доступа диалогов, потому что он дает возможность программным приложениям обнаруживать, когда конечный пользователь не видит то, что ожидает.As discussed above, if BGO 265 is capable of encrypting plaintext for display in the primary surface 270, this is considered a vulnerability in the system, as this encryption tool is the only described mechanism in which the adversary could have plaintext and the corresponding ciphertext available at the same time. By transforming the primary surface so that it is visible to the central processor and creating a window to be encrypted, the adversary can construct a subset of blocks of ciphertext that corresponds to known plaintext blocks. These so-called dictionary attacks work better when the number of blocks of interest is small. For example, to display black and white dialog boxes in 32bpp display mode, since there are 4 pixels per block, only 16 blocks are needed to display such a dialog. One possible way for an adversary to open 16 ciphertext blocks would be to falsify the dialog for the end user by creating content that makes sense even after decryption in BGO 265. For this reason, a secure overlay is best suited for being protected against unauthorized access dialogs because it enables software applications to detect when the end user does not see what he expects.

Есть две хорошие стратегии, чтобы свести на нет усилия противника, который желает создать словари. Прежде всего, поскольку словари хороши только для данного ключа, смена ключа и повторное шифрование содержимого заставляют противника начинать с нового словаря. Далее, для шифрования первичной поверхности не нужно делать ключ доступным для программного обеспечения, он может прокручиваться в аппаратуре, а программному обеспечению нужно лишь уведомление, что ключ изменен. Поскольку предыдущий ключ все еще доступен, программное обеспечение может использовать этот предыдущий ключ для дешифрирования и повторного шифрования частей первичной поверхности, которые не изменялись. Следовательно, криптопроцессор 220 периодически прокручивает ключ шифрования для первичной поверхности 270 так, что предыдущий ключ все еще доступен, т.е. осуществляет двойную буферизацию ключевых указателей шифрования, и так, что извещает программное обеспечение, что ключ прокручен.There are two good strategies to negate the efforts of an adversary who wants to create dictionaries. First of all, since dictionaries are only good for a given key, changing the key and re-encrypting the contents force the adversary to start with a new dictionary. Further, to encrypt the primary surface, it is not necessary to make the key available for software, it can be scrolled in the hardware, and the software only needs to be notified that the key has been changed. Since the previous key is still available, the software can use this previous key to decrypt and re-encrypt parts of the primary surface that have not changed. Therefore, the crypto processor 220 periodically scrolls the encryption key for the primary surface 270 so that the previous key is still available, i.e. performs double buffering of the key encryption pointers, and so that notifies the software that the key is scrolled.

Другая стратегия включает в себя кодирование местоположения в изображении перед шифрованием. Например, пиксельное местоположение (х, у) в изображении (или некоторое производное значение, такое как сдвиг изображения) может преобразовываться перед его шифрованием операцией ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) в пиксельные данные; эта операция затем может отменяться после дешифрирования. В результате блоки пикселов в различных областях поверхности зашифровываются различным образом, и преобразование открытого текста в зашифрованный текст имеет смысл только для данного местоположения в поверхности, которое недоступно для противника.Another strategy involves encoding the location in the image before encryption. For example, the pixel location (x, y) in an image (or some derived value, such as an image shift) can be converted, before being encrypted by an EXCLUSIVE OR (XOR) operation, into pixel data; this operation can then be canceled after decryption. As a result, blocks of pixels in different areas of the surface are encrypted in different ways, and converting plain text to encrypted text makes sense only for a given location in the surface that is not accessible to the adversary.

Настоящее изобретение также обеспечивает заранее определенные смешанные форматы. Поскольку текстуры и поверхности за пределами экрана требуют случайного доступа, они должны кодироваться блоковыми шифрами. Имеется хорошая синергия между обычным размером блоков для блокового шифра и обычным размером строки кэш-памяти для современных трехмерных ускорителей, например, если строка кэш-памяти и размер блока оба имеют 128 битов, тогда эффективное шифрование и дешифрирование могут быть реализованы в аппаратном обеспечении. Даже если имеются небольшие различия (например, блоковый размер 128 битов, а размер строки кэш-памяти 256 битов), аппаратная реализация все еще должна быть эффективной.The present invention also provides predetermined mixed formats. Because textures and surfaces off the screen require random access, they must be encoded in block ciphers. There is good synergy between the usual block size for a block cipher and the usual cache line size for modern three-dimensional accelerators, for example, if the cache line and block size both have 128 bits, then effective encryption and decryption can be implemented in hardware. Even if there are slight differences (for example, a block size of 128 bits and a cache line size of 256 bits), the hardware implementation should still be efficient.

Одна проблема с зашифрованными текстурными данными состоит в том, что схема блокового шифрования требует, чтобы смежные блоки байтов были доступны до того, как они могут зашифровываться или дешифрироваться; а заполнение строки кэш-памяти требует, чтобы пиксельные данные «смешивались», т.е. чтобы перевод из положения (X,Y) в изображении к адресу формировался таким образом, что заполнение строки кэш-памяти вырабатывало двумерную область пикселов. Ныне поставщики аппаратного обеспечения предлагают зрительно линейные форматы поверхностей при смешивании данных изображения без знания программного приложения. Однако, поскольку достоверное программное обеспечение будет выдавать зашифрованные текстурные данные, это программное обеспечение должно иметь априорное знание схемы смешивания, чтобы оно могло шифровать смежные блоки данных и сохранять двумерное местоположение. В ответ на это изобретение определяет словарь форматов смешанных изображений, в том числе YUV 4:4:4б 4:2:2 и 4:2:0, а также форматы RGB для использования программным приложением. Качество этих форматов может быть столь же высоким, как если бы изображения смешивались в формат, специфичный для аппаратуры, но шифрование достигается за счет некоторого ухудшения качества, т.е. защищенность в обмен на скорость.One problem with encrypted texture data is that the block cipher scheme requires adjacent byte blocks to be available before they can be encrypted or decrypted; and filling the cache line requires that the pixel data be “mixed”, i.e. so that the translation from the position (X, Y) in the image to the address is formed in such a way that filling the cache line produces a two-dimensional region of pixels. Nowadays, hardware vendors offer visually linear surface formats when mixing image data without knowledge of a software application. However, since reliable software will provide encrypted texture data, this software must have a priori knowledge of the mixing scheme so that it can encrypt adjacent blocks of data and maintain a two-dimensional location. In response to this invention, it defines a dictionary of mixed image formats, including YUV 4: 4: 4b 4: 2: 2 and 4: 2: 0, as well as RGB formats for use by the software application. The quality of these formats can be as high as if the images were mixed in a format specific to the equipment, but encryption is achieved due to some deterioration in quality, i.e. security in exchange for speed.

Что касается AYUV/ARGB (32bpp, упаковано), то этот формат поверхности 32bpp содержит альфа-канал в дополнение к 8-битовым цветовым каналам для отсчетов яркости (Y) и цветности (U и V). Альтернативно, он может содержать стандартный формат ARGB 32bpp, поскольку оба формата имеют 32bpp и упакованы. Нижеследующее обсуждение предполагает формат AYUV. Линейная схема та же, что и на фиг. 5А.For AYUV / ARGB (32bpp, packed), this 32bpp surface format contains an alpha channel in addition to 8-bit color channels for luminance (Y) and color (U and V) samples. Alternatively, it may contain the standard 32GBpp ARGB format, since both formats are 32bpp and are packaged. The following discussion assumes AYUV format. The linear circuit is the same as in FIG. 5A.

Сдвиг пиксела (X,Y) в изображения таков:The pixel shift (X, Y) in the image is as follows:

Offset=Y*Pitch+X*4Offset = Y * Pitch + X * 4

В предположении 128-битового размера блоков шифрования и размера строки кэш-памяти 4 пиксела могут попадать в один блок. Перемежение младших битов Х и Y перед генерированием адреса приведет к улучшенной двумерной локализации в заполнении строки кэш-памяти. Эти блоки компонуются линейно согласно формату.Assuming a 128-bit encryption block size and cache line size, 4 pixels can fall into one block. The interleaving of the lower X and Y bits before generating the address will result in improved two-dimensional localization in filling the cache line. These blocks are arranged linearly according to the format.

Слой результирующего изображения иллюстрируется фиг. 5В. Каждый пронумерованный прямоугольник представляет собой пиксел, а жирные прямоугольники являются зашифрованными блоками. Примерный псевдокод для функции смешивания по изобретению для этого формата, который преобразует местоположение (х,у) в изображении в сдвиг, имеет следующий вид:The resulting image layer is illustrated in FIG. 5B. Each numbered rectangle is a pixel, and bold rectangles are encrypted blocks. An exemplary pseudo-code for the mixing function of the invention for this format, which converts the location (x, y) in the image into a shift, has the following form:

DWORDDWORD

SwizzleAYUV( DWORD x, DWORD y, DWORD Pitch )SwizzleAYUV (DWORD x, DWORD y, DWORD Pitch)

{{

// pitch - это число байтов на строку сканирования макроблоков// pitch is the number of bytes per macroblock scan string

DWORD BlockOffset = (y≫1)*Pitch+(x≫1)*(128/8);DWORD BlockOffset = (y≫1) * Pitch + (x≫1) * (128/8);

DWORD IntraBlockOffset = ((y&2)≪2)|((x&2)≪1)|(DWORD IntraBlockOffset = ((y & 2) ≪2) | ((x & 2) ≪1) | (

(y&1)≪1)|(x&1);(y & 1) ≪1) | (x &1);

return BlockOffset+IntraBlockOffset*4;return BlockOffset + IntraBlockOffset * 4;

}}

Что касается YUV2 (16bpp, упаковано), то этот формат поверхности осуществляет дополнительную дискретизацию отсчетов U и V «цветности» с коэффициентом 2. Результатом является формат упакованного изображения, который усредняет по 16 битов на пиксел. Линейная схема показана на фиг. 6А. Формат смешивания по изобретению распределяет зашифрованные блоки из 4×2 пикселов, как показано на фиг. 6В. Как и для фиг. 5А и 5В, 128-битовые блоки тоже смешиваются. Отметим, что для фиг. 6В и для нижеследующего примерного смешивающего псевдокода, который переводит пары координат (х,у) в сдвиги изображения, предполагается, что U и V имеют даже координаты Х:As for YUV2 (16bpp, packed), this surface format additionally discretizes the U and V “color” samples with a coefficient of 2. The result is a packed image format that averages 16 bits per pixel. A line diagram is shown in FIG. 6A. The mixing format of the invention distributes encrypted blocks of 4 × 2 pixels, as shown in FIG. 6B. As for FIG. 5A and 5B, 128-bit blocks are also mixed. Note that for FIG. 6B and for the following exemplary mixing pseudo-code that translates coordinate pairs (x, y) into image shifts, it is assumed that U and V even have X coordinates:

DWORDDWORD

SwizzleYUY2Y(DWORD x, DWORD y, const SURFACEDESC& sd)SwizzleYUY2Y (DWORD x, DWORD y, const SURFACEDESC & sd)

{{

assert( x<sd.Width );assert (x <sd.Width);

assert( y<sd.Height );assert (y <sd.Height);

DWORD BlockOffset = (y≫1)*sd.Pitch+(x≫2)*(128/8);DWORD BlockOffset = (y≫1) * sd.Pitch + (x≫2) * (128/8);

DWORD IntraBlockOffset = ((x&2)≪1)|DWORD IntraBlockOffset = ((x & 2) ≪1) |

((y&1)≪1)|((y & 1) ≪1) |

((x&1)≪0);((x & 1) ≪0);

DWORD dwRet = BlockOffset+(IntraBlockOffset≪1);DWORD dwRet = BlockOffset + (IntraBlockOffset≪1);

Return dwRet;Return dwRet;

}}

DWORDDWORD

SwizzleYUY2U(DWORD x, DWORD y, const SURFACEDESC& sd)SwizzleYUY2U (DWORD x, DWORD y, const SURFACEDESC & sd)

{{

assert( x<sd.Width );assert (x <sd.Width);

assert( 0==(x & 1) );assert (0 == (x &1));

assert( y<sd.Height );assert (y <sd.Height);

DWORD BlockOffset = (y≫1)*sd.Pitch+(x≫2)*(128/8);DWORD BlockOffset = (y≫1) * sd.Pitch + (x≫2) * (128/8);

DWORD IntraBlockOffset = ((x&2)≪1)|DWORD IntraBlockOffset = ((x & 2) ≪1) |

((y&1)≪1)|((y & 1) ≪1) |

((x&1)≪0);((x & 1) ≪0);

return BlockOffset+(IntraBlockOffset≪1)+1;return BlockOffset + (IntraBlockOffset≪1) +1;

}}

DWORDDWORD

SwizzleYUY2V(DWORD x, DWORD y, const SURFACEDESC& sd)SwizzleYUY2V (DWORD x, DWORD y, const SURFACEDESC & sd)

{{

assert( x<sd.Width );assert (x <sd.Width);

assert( 0==(x & 1) );assert (0 == (x &1));

assert( y<sd.Height );assert (y <sd.Height);

DWORD BlockOffset = (y≫2)*sd.Pitch+(x≫3)*(512/8);DWORD BlockOffset = (y≫2) * sd.Pitch + (x≫3) * (512/8);

DWORD IntraBlockOffset = ((x&2)≪1)|DWORD IntraBlockOffset = ((x & 2) ≪1) |

((y&1)≪1)|((y & 1) ≪1) |

((x&1)≪0);((x & 1) ≪0);

return BlockOffset+(IntraBlockOffset≪1)+3;return BlockOffset + (IntraBlockOffset≪1) +3;

}}

В этом отношении для псевдокода, сопровождающего смешивание по фиг. 5А, 5В, 6А и 6В, шаг (pitch) поверхности определяется как число байтов на линию сканирования из 128 битовых блоков.In this regard, for the pseudo-code accompanying the mixing of FIG. 5A, 5B, 6A, and 6B, the pitch of a surface is defined as the number of bytes per scan line of 128 bit blocks.

Что касается упакованного планарного формата (12bpp), то этот формат поверхности осуществляет дополнительную дискретизацию отсчетов U и V с коэффициентом 2 по горизонтали и вертикали. Отсчеты яркости и цветности компонуются двумя отдельными частями поверхности. Линейная схема упакованного планарного формата (12bpp) показана на фиг. 7А.As for the packed planar format (12bpp), this surface format additionally discretizes the samples U and V with a factor of 2 both horizontally and vertically. Luminance and color readings are composed of two separate parts of the surface. A linear diagram of a packed planar format (12bpp) is shown in FIG. 7A.

Шаг поверхности определяется числом байтов на линию сканирования из 512-битовых блоков в плоскости Y. Шаг плоскости UV составляет половину от шага плоскости Y, потому что имеется только четверть отсчетов, но вдвое больше цветовых элементов на отсчет. Результирующий формат смешанного изображения в соответствии с изобретением показан на фиг. 7В.The surface step is determined by the number of bytes per scan line of 512-bit blocks in the Y plane. The step of the UV plane is half the step of the Y plane, because there are only a quarter of the samples, but twice as many color elements per sample. The resulting mixed image format in accordance with the invention is shown in FIG. 7B.

Примерный псевдокод для функции смешивания по изобретению для этого формата, который переводит координаты (х,у) в сдвиги для элементов Y, U и V, имеет следующий вид:An example pseudo-code for the mixing function according to the invention for this format, which translates the coordinates (x, y) into offsets for the elements Y, U and V, has the following form:

DWORDDWORD

SwizzlePP12Y(DWORD x, DWORD y, const SURFACEDESC& sd)SwizzlePP12Y (DWORD x, DWORD y, const SURFACEDESC & sd)

{{

assert( x<sd.Width );assert (x <sd.Width);

assert( y<sd.Height );assert (y <sd.Height);

DWORD BlockOffset = (y≫2)*sd.Pitch+(x≫2)*(128/8);DWORD BlockOffset = (y≫2) * sd.Pitch + (x≫2) * (128/8);

DWORD IntraBlockOffset = ((x&2)≪2)|DWORD IntraBlockOffset = ((x & 2) ≪2) |

((x&2)≪1)|((x & 2) ≪1) |

((y&1)≪1)|((y & 1) ≪1) |

((x&1);((x &1);

return BlockOffset+IntraBlockOffset;return BlockOffset + IntraBlockOffset;

}}

DWORDDWORD

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

{{

DWORD PlaneOffset = (sd.Height≫3)*sd.Pich;DWORD PlaneOffset = (sd.Height≫3) * sd.Pich;

if ((0!=(x&1))||(0!=(y&1)))if ((0! = (x & 1)) || (0! = (y & 1)))

_asm int 3_asm int 3

x≫=1;x≫ = 1;

y≫=1;y≫ = 1;

DWORD BlockOffset = (y≫1)*sd.Pitch/2+(x≫2)*(128/8);DWORD BlockOffset = (y≫1) * sd.Pitch / 2 + (x≫2) * (128/8);

DWORD IntraBlockOffset = ((x&2)≪1)|DWORD IntraBlockOffset = ((x & 2) ≪1) |

((y&1)≪1)|((y & 1) ≪1) |

(x&1);(x &1);

return PlaneOffset+BlockOffset+(IntraBlockOffset≪1);return PlaneOffset + BlockOffset + (IntraBlockOffset≪1);

}}

DWORDDWORD

SwizzlePP12V(DWORD x, DWORD y, const SURFACEDESC& sd)SwizzlePP12V (DWORD x, DWORD y, const SURFACEDESC & sd)

{{

DWORD PlaneOffset = (sd.Height≫3)*sd.Pich;DWORD PlaneOffset = (sd.Height≫3) * sd.Pich;

if ((0!=(x&1))||(0!=(y&1)))if ((0! = (x & 1)) || (0! = (y & 1)))

_asm int 3_asm int 3

x≫=1;x≫ = 1;

y≫=1;y≫ = 1;

DWORD BlockOffset = (y≫1)*sd.Pitch/2+(x≫2)*(128/8);DWORD BlockOffset = (y≫1) * sd.Pitch / 2 + (x≫2) * (128/8);

DWORD IntraBlockOffset = ((x&2)≪1)|DWORD IntraBlockOffset = ((x & 2) ≪1) |

((y&1)≪1)|((y & 1) ≪1) |

(x&1);(x &1);

return PlaneOffset+BlockOffset+(IntraBlockOffset≪1)+1;return PlaneOffset + BlockOffset + (IntraBlockOffset≪1) +1;

}}

Третий уровень защиты - зашифрованные командные буферыThird level of protection - encrypted command buffers

Функции вариантов осуществления, описанных выше в отношении первого и второго уровней защиты, могут быть усилены в соответствии с изобретением для шифрования командных буферов, предлагаемых в БГО 265 в дополнение к данным изображения, с которыми работает БГО 265. Эти функции желательны, если программное приложение 210 желает защитить содержимое, которое посылается на аппаратное обеспечение по сети в командный буфер. Фиг. 9А показывает видеодекодирование с помощью зашифрованного командного буфера 900, благодаря чему содержимое доставляется к зашифрованной текстуре 400а и дешифрируется компонентом 450 дешифрирования и декодируется видеодекодером 430b. Хотя только командный буфер может быть зашифрован, содержимое шифруется в видеопамяти, как и командный буфер, как показано зашифрованным декодированным кадром 420а. Шифрование командного буфера, таким образом, уместно в ситуации наподобие этой, когда макроблоки находятся в видеопамяти, и с векторами движения и другими командами, посылаемыми в потоке команд.The functions of the embodiments described above with respect to the first and second security levels can be enhanced in accordance with the invention for encrypting the command buffers proposed in the BGO 265 in addition to the image data that the BGO 265 operates with. These functions are desirable if the software application 210 wants to protect content that is sent to the hardware over the network in a command buffer. FIG. 9A shows video decoding using an encrypted command buffer 900, whereby the content is delivered to the encrypted texture 400a and is decrypted by the decryption component 450 and decoded by the video decoder 430b. Although only the command buffer can be encrypted, the contents are encrypted in video memory, as is the command buffer, as shown by the encrypted decoded frame 420a. Encryption of the command buffer is therefore appropriate in a situation like this, when the macroblocks are in video memory, and with motion vectors and other commands sent in the command stream.

Ограничение элементарности для зашифрованных текстурных данных также применяется к зашифрованным данным командного буфера с предупреждением о том, что шифрование цветового буфера может быть недостаточным для защиты рассматриваемого содержимого. Промежуточные буферы, например Z буфер, могут также шифроваться для защиты системы от атак на открытый текст. Фиг. 9В показывает примерную трехмерную визуализацию с помощью зашифрованного командного буфера в соответствии с изобретением. Как проиллюстрировано, команды 810 трехмерной визуализации шифруются по пути к видеодекодеру 430с. Текстурные данные 400а дешифрируются компонентом 450 дешифрирования и обрабатываются в соответствии с командами 810 видеодекодером 430с. Присущие ему данные в цветовом буфере 820 шифруются посредством компонента 830 шифрования-дешифрирования.The elementary restriction for encrypted texture data also applies to encrypted command buffer data with a warning that encryption of the color buffer may not be sufficient to protect the content in question. Intermediate buffers, such as the Z buffer, can also be encrypted to protect the system from attacks on plain text. FIG. 9B shows an exemplary three-dimensional visualization using an encrypted command buffer in accordance with the invention. As illustrated, 3D rendering instructions 810 are encrypted along the path to video decoder 430c. The texture data 400a is decrypted by the decryption component 450 and processed in accordance with instructions 810 by the video decoder 430c. The inherent data in the color buffer 820 is encrypted using the encryption-decryption component 830.

Обнаружение несанкционированного доступа может осуществляться перед использованием командного буфера с помощью двух проходов или после того, как командный буфер использован. В одном варианте выполнения обнаружение несанкционированного доступа разрешается после отображения или визуализации содержимого.Unauthorized access can be detected before using the command buffer with two passes or after the command buffer is used. In one embodiment, unauthorized access detection is permitted after the content is displayed or visualized.

Дальнейшие альтернативные варианты выполнения - шифрование выходов из графического адаптераFurther alternative embodiments are encryption of outputs from the graphics adapter

В каждом из приведенных выше вариантов осуществления, хотя конфиденциальность и целостность описаны и продемонстрированы в отношении обведенной пунктирной линией части фиг. 2, конфиденциальность и целостность не продемонстрированы по отношению к видеовыходу, т.е. теоретически интерфейс между графическим адаптером и визуализирующим устройством, таким как монитор, и/или само визуализирующее устройство подвержены атаке.In each of the above embodiments, although confidentiality and integrity are described and demonstrated with respect to the dotted line portion of FIG. 2, confidentiality and integrity are not demonstrated with respect to the video output, i.e. in theory, the interface between a graphics adapter and a visualizing device, such as a monitor, and / or the visualizing device itself is susceptible to attack.

Таким образом, в вышеприведенных вариантах осуществления, как показано на фиг. 9А, в некоторой точке во время процесса, даже хотя содержимое защищается в видеопамяти и во время обработки в графическом адаптере, данные посылаются на ЦВИ/ЦАП 290 в открытом виде. В результате данные могут быть перехвачены или изменены по пути к визуализирующему устройству и в визуализирующем устройстве.Thus, in the above embodiments, as shown in FIG. 9A, at some point during the process, even though the contents are protected in the video memory and during processing in the graphics adapter, the data is sent to the CVI / DAC 290 in clear text. As a result, the data can be intercepted or modified along the way to the imaging device and in the imaging device.

Таким образом, в соответствии с альтернативным вариантом осуществления изобретения, которое может дополнительно комбинироваться с другими вариантами осуществления, описанными здесь, в визуализирующем устройстве предусматривается однотипный криптопроцессор 220b для дополнения функций, выполняемых криптопроцессором 220а. В этом отношении компонент 910а шифрования, соединенный для осуществления связи с криптопроцессором 220а, зашифровывает данные перед их доставкой к компоненту 290 ЦВИ/ЦАП, а компонент 910b дешифрирования, соединенный для осуществления связи с криптопроцессором 220b, дешифрирует данные как часть отображения или визуализации, которая имеет место, предупреждая перехват данных. Компонент 910 шифрования может быть альтернативно включен в компонент 290 ЦВИ/ЦАП. Короче говоря, при применении того же самого шифрования и дешифрирования содержимое может защищаться по всему графическому каналу для криптографически защищенной надежной доставки и обработки содержимого.Thus, in accordance with an alternative embodiment of the invention, which may be further combined with the other embodiments described herein, the same type of crypto processor 220b is provided in the imaging device to complement the functions performed by the crypto processor 220a. In this regard, the encryption component 910a connected to communicate with the crypto processor 220a encrypts the data before it is delivered to the CVI / DAC component 290, and the decryption component 910b connected to communicate with the crypto processor 220b decrypts the data as part of a display or visualization that has place, preventing data interception. The encryption component 910 may alternatively be included in the CVI / DAC component 290. In short, using the same encryption and decryption, content can be protected throughout the graphic channel for cryptographically secure reliable delivery and processing of content.

Как упомянуто выше, хотя примерные варианты осуществления настоящего изобретения описаны в связи с разными вычислительными устройствами, аппаратным обеспечением, программным обеспечением и сетевыми архитектурами, основополагающие принципы могут применяться к любому вычислительному устройству или системе, в которых желательно защищать содержимое из достоверного источника. Таким образом, методы криптографически защищенного охраняемого содержимого в соответствии с настоящим изобретением могут применяться ко множеству программных приложений и устройств. К примеру, способы криптографической защиты охраняемого содержимого по изобретению могут применяться к операционной системе вычислительного устройства, предусмотренного как отдельный объект в устройстве, как часть другого объекта, как загружаемый объект из сервера, как распределенный объект и т.д. Хотя в качестве представителей различных возможностей здесь выбраны примерные языки программирования, псевдокоды, названия и примеры, эти языки, псевдокоды, названия и примеры не направлены на ограничение.As mentioned above, although exemplary embodiments of the present invention are described in connection with various computing devices, hardware, software, and network architectures, the fundamental principles can be applied to any computing device or system in which it is desirable to protect content from a trusted source. Thus, the methods of cryptographically secure protected content in accordance with the present invention can be applied to a variety of software applications and devices. For example, the cryptographic protection methods of protected content according to the invention can be applied to the operating system of a computing device provided as a separate object in the device, as part of another object, as a downloadable object from a server, as a distributed object, etc. Although exemplary programming languages, pseudo-codes, names and examples are chosen as representatives of various possibilities, these languages, pseudo-codes, names and examples are not aimed at limiting.

Описанные здесь разнообразные методы могут быть реализованы как в аппаратном обеспечении, так и в программном обеспечении, или, когда это уместно, в их комбинации. Так, способы и устройства по настоящему изобретению или некоторые его аспекты или части могут принимать форму программного кода (т.е. команд), реализованного на реальном носителе, таком как гибкие дискеты, CD-ROM, накопители жестких дисков или любой иной машиночитаемый носитель данных, причем, когда программный код загружается машиной, такой как компьютер, эта машина становится устройством для осуществления изобретения. В случае выполнения программного кода на программируемых компьютерах вычислительное устройство будет в общем случае включать в себя процессор, считываемый этим процессором носитель данных (в том числе энергозависимые и энергонезависимые элементы памяти и/или хранения), по меньшей мере одно входное устройство и по меньшей мере одно выходное устройство. Одна или более программ, которые могут применять методы настоящего изобретения, например, через использование обрабатывающего данные ППИ, операционной системы, достоверного программного приложения и тому подобного, предпочтительно реализуются в высокоуровневом процедурно или объектно ориентированном языке программирования для связи с компьютерной системой. Однако программа(ы) может быть реализована в ассемблере или машинном языке, если это желательно. В любом случае, язык может быть скомпилированным или интерпретированным языком и в различных вариантах осуществления изобретения налагает условия на варианты осуществления аппаратуры БГО 265.The diverse methods described herein can be implemented in hardware as well as in software, or, when appropriate, in a combination thereof. Thus, the methods and devices of the present invention, or some aspects or parts thereof, can take the form of program code (i.e., instructions) implemented on real media, such as floppy disks, CD-ROMs, hard drives, or any other computer-readable storage medium moreover, when the program code is downloaded by a machine, such as a computer, this machine becomes a device for implementing the invention. If the program code is executed on programmable computers, the computing device will generally include a processor, a data carrier read by this processor (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 can apply the methods of the present invention, for example, through the use of a data processing API, an operating system, a reliable software application, and the like, are preferably implemented in a high-level procedural or object-oriented programming language for communication with a computer system. However, the program (s) may be implemented in assembler or machine language, if desired. In any case, the language may be a compiled or interpreted language, and in various embodiments of the invention imposes conditions on embodiments of BGO 265 equipment.

Способы и устройства по настоящему изобретению могут также осуществляться через передачи данных, реализованные в виде программного кода, который передается по некоторой среде передачи, такой как электрические провода или кабель, через волоконную оптику или через любой иной вид передачи, причем, когда программный код принимается, загружается и исполняется в машине, такой как СППЗУ, вентильная матрица, устройство программируемой логики (УПЛ) (PLD), клиентский компьютер, видеомагнитофон или тому подобное, или в принимающей машине с графическим адаптером и функциональными возможностями шифрования, как описывается выше в примерных вариантах осуществления, эта машина становится устройством для осуществления изобретения. При реализации на универсальном компьютере программный код комбинируется с процессором для обеспечения единого устройства, которое работает, чтобы вызвать функции по настоящему изобретению. Дополнительно, любой метод запоминания, использованный в связи с настоящим изобретением, может неизменно быть комбинацией аппаратного и программного обеспечения.The methods and devices of the present invention can also be implemented through data communications, implemented in the form of program code that is transmitted over some transmission medium, such as electric wires or cable, through fiber optics or through any other type of transmission, moreover, when the program code is received, loaded and executed in a machine, such as EPROM, gate array, programmable logic device (PLD), a client computer, VCR, or the like, or in a receiving machine with graphical m adapter encryption capabilities and functionalities as described above in exemplary embodiments, the machine becomes an apparatus for practicing the invention. When implemented on a universal computer, program code is combined with a processor to provide a single device that works to invoke the functions of the present invention. Additionally, any storage method used in connection with the present invention may invariably be a combination of hardware and software.

Хотя настоящее изобретение описано в связи с предпочтительными вариантами осуществления, показанными на чертежах, следует иметь в виду, что можно использовать и другие подобные варианты осуществления или что в описанных вариантах осуществления можно выполнить изменения или дополнения для реализации той же самой функции по настоящему изобретению без изменения его сущности. К примеру, хотя в контексте сетевой среды описываются примерные сетевые среды по изобретению, такие как одноранговая сетевая среда, специалисту понятно, что настоящее изобретение не ограничивается этим и что способы, как они описаны в настоящей заявке, могут применяться к любому вычислительному устройству или среде, таким как игровая консоль, ручной компьютер, портативный компьютер и т.п., проводной или беспроводный, и может применяться к любому числу таких вычислительных устройств, соединенных через сеть связи и взаимодействующих по этой сети. Далее, следует подчеркнуть, что подразумеваются множество компьютерных платформ, в том числе операционные системы ручных устройств и иные специфичные для программных приложений операционные системы, особенно по мере постоянного возрастания количества беспроводных сетевых устройств. Далее, настоящее изобретение может быть реализовано на множестве сопроцессорных микросхем или устройств, таких как устройство со множеством БГО, а память может аналогичным образом выполняться на множестве устройств. Поэтому настоящее изобретение не должно ограничиваться никаким единственным вариантом осуществления, а должно интерпретироваться в своей широте и объеме в соответствии с прилагаемой формулой изобретения.Although the present invention has been described in connection with the preferred embodiments shown in the drawings, it should be borne in mind that other similar embodiments may be used or that changes or additions may be made to the described embodiments to realize the same function of the present invention without changing its essence. For example, although exemplary network environments of the invention, such as a peer-to-peer network environment, are described in the context of a network environment, one skilled in the art will understand that the present invention is not limited thereto and that the methods as described herein can be applied to any computing device or environment, such as a game console, a handheld computer, a laptop computer, etc., wired or wireless, and can be applied to any number of such computing devices connected through a communication network and interacting on it th network. Further, it should be emphasized that many computer platforms are implied, including operating systems of hand-held devices and other operating systems specific to software applications, especially as the number of wireless network devices constantly increases. Further, the present invention can be implemented on a variety of coprocessor chips or devices, such as a device with multiple BGOs, and memory can likewise be executed on multiple devices. Therefore, the present invention should not be limited to any single embodiment, but should be interpreted in its breadth and scope in accordance with the appended claims.

Приложение А. Потоковые шифры в сравнении с блоковыми шифрамиAppendix A. Stream ciphers versus block ciphers

Это приложение детализирует различия между потоковыми шифрами и блоковыми шифрами в той мере, как они связаны с содержанием данного документа.This application details the differences between stream ciphers and block ciphers to the extent that they are related to the contents of this document.

ХарактеристикаCharacteristic Потоковый шифрStream cipher Блоковый шифрBlock cipher ЗернистостьGrain БайтByte 16 байтов (128 битов)16 bytes (128 bits) Произвольный доступRandom access Трудно/невозможноDifficult / impossible НепосредственноDirectly Смены ключейKey Changes Часто (за кадр)Often (per frame) РедкоSeldom Сложность Complexity 1 × 4×потоковый шифр4 × stream cipher IP статусIP status СпециализированныеSpecialized Свободно копируемыеFreely copyable

Как правило, потоковые шифры быстрее и проще для реализации, нежели блоковые шифры.As a rule, stream ciphers are faster and easier to implement than block ciphers.

Как подразумевает название, потоковые шифры зашифровывают и дешифрируют поток байтов. Для дешифрирования N-го байта в потоке, шифр начинается в начале и проходит по одному байту за раз до желательного сдвига в потоке.As the name implies, stream ciphers encrypt and decrypt a stream of bytes. To decrypt the Nth byte in the stream, the cipher starts at the beginning and passes one byte at a time until the desired shift in the stream.

В противоположность этому, блоковые шифры, которые исполняются в режиме электронной кодовой книги, могут шифровать или дешифрировать произвольные блоки в данных, но должны шифровать-дешифрировать полный блок за раз. Обычный размер блока равен 16 байтам.In contrast, block ciphers, which are executed in the electronic codebook mode, can encrypt or decrypt arbitrary blocks in the data, but must encrypt-decrypt the complete block at a time. The usual block size is 16 bytes.

Потоковые шифры используются таким образом, что одни и те же данные никогда не шифруются дважды, т.е. ключ, использованный для шифрования и дешифрирования, должен меняться часто. При использовании, например, для воспроизведения первичной поверхности достаточно изменения ключей один раз за кадр.Stream ciphers are used in such a way that the same data is never encrypted twice, i.e. The key used for encryption and decryption should change frequently. When used, for example, to reproduce the primary surface, changing the keys once per frame is sufficient.

В качестве последнего замечания, следует отметить, что имеются блоковые шифры хорошего качества, доступные для свободного копирования.As a final note, it should be noted that there are good quality block ciphers available for free copying.

Claims (54)

1. Способ криптографической защиты охраняемого содержимого с помощью достоверной графической системы вычислительного устройства, причем эта достоверная графическая система имеет видеопамять, по меньшей мере, один блок графической обработки (БГО) и устройство криптографической обработки, соединенное для осуществления связи, по меньшей мере, с одним БГО, содержащий1. A method of cryptographic protection of protected content using a reliable graphic system of a computing device, wherein this reliable graphic system has video memory, at least one graphic processing unit (BGO) and a cryptographic processing device connected to communicate with at least one BGO containing запрашивание графической системы программным приложением либо устройством выполнить обработку либо визуализацию охраняемого содержимого, при этом упомянутое запрашивание включает в себя передачу сеансового ключа упомянутым программным приложением либо устройством в графическую систему и передачу упомянутого охраняемого содержимого к зашифрованным оверлейным поверхностям, которые перекрывают, по меньшей мере, одну первичную поверхность упомянутой видеопамяти, включая первый зашифрованный конфиденциальный оверлей для базовой визуализации охраняемого содержимого и второй зашифрованный защищенный оверлей, специально спроектированный для существующих чувствительных пользовательских интерфейсов, причем упомянутый второй зашифрованный защищенный оверлей находится всегда наверху и не закрывается, и содержимое второго зашифрованного защищенного оверлея проверяется упомянутым, по меньшей мере, одним БГО;requesting a graphic system by a software application or device to process or visualize protected content, wherein said request includes transferring a session key by said software application or device to a graphic system and transferring said protected content to encrypted overlay surfaces that overlap at least one the primary surface of said video memory, including the first encrypted confidential overlay for the base video visualization of the protected content and a second encrypted secure overlay specially designed for existing sensitive user interfaces, the second encrypted secure overlay being always at the top and not closing, and the contents of the second encrypted secure overlay are checked by the said at least one BGO; дешифрирование содержимого упомянутой, по меньшей мере, одной зашифрованной части видеопамяти упомянутым, по меньшей мере, одним БГО при осуществлении связи с устройством криптографической обработки, при этом упомянутое дешифрирование включает в себя дешифрирование содержимого первого зашифрованного конфиденциального оверлея первым компонентом дешифрирования потокового шифра и дешифрирование содержимого второго зашифрованного защищенного оверлея вторым компонентом дешифрирования потокового шифра;decrypting the contents of said at least one encrypted part of the video memory by said at least one BGO while communicating with a cryptographic processing device, said decryption including decrypting the contents of the first encrypted confidential overlay by the first decryption component of the stream cipher and decrypting the contents of the second encrypted secure overlay by the second stream decryption decryption component; выполнение, по меньшей мере, обработки или визуализации упомянутого дешифрированного содержимого, по меньшей мере, одним БГО иperforming at least processing or visualization of said decrypted content with at least one BGO and выведение упомянутого содержимого, по меньшей мере, из одного БГО.deducing said content from at least one BGO. 2. Способ по п.1, в котором, если выход при упомянутом выведении отличается от охраняемого содержимого при упомянутом запрашивании, настроенном для любой обработки, выполняемой в отношении упомянутого охраняемого содержимого упомянутым, по меньшей мере, одним БГО, то упомянутое программное приложение либо устройство предупреждается об этом различии.2. The method according to claim 1, wherein if the output at said output differs from the protected content at said request configured for any processing performed with respect to said protected content by said at least one BGO, said software application or device warned of this difference. 3. Способ по п.1, в котором упомянутое дешифрирование содержимого упомянутой, по меньшей мере, одной зашифрованной части видеопамяти включает в себя дешифрирование геометрической части первичной поверхности, при этом пикселы иные, чем в геометрической части, не дешифрируются.3. The method according to claim 1, in which said decryption of the contents of said at least one encrypted part of the video memory includes decryption of the geometric part of the primary surface, while pixels other than the geometric part are not decrypted. 4. Способ по п.1, в котором криптографический процессор постоянно связан с графическим адаптером за счет либо (А) добавления этого криптографического процессора к существующей микросхеме, либо (В) добавления этого криптографического процессора в качестве отдельной микросхемы к графическому адаптеру, при этом физическое соединение между криптографическим процессором и остальной частью графического адаптера недоступно и не показывается.4. The method according to claim 1, in which the cryptographic processor is constantly connected to the graphics adapter by either (A) adding this cryptographic processor to an existing chip, or (B) adding this cryptographic processor as a separate chip to the graphics adapter, while the physical the connection between the cryptographic processor and the rest of the graphics adapter is not available and is not shown. 5. Способ по п.1, в котором упомянутое дешифрирование включает в себя дешифрирование упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности механизмом дешифрирования упомянутого БГО, соединенного для осуществления связи с упомянутым устройством криптографической обработки.5. The method according to claim 1, wherein said decryption includes decrypting said at least one encrypted overlapping surface by a decryption mechanism of said BGO connected to communicate with said cryptographic processing device. 6. Способ по п.1, в котором упомянутое дешифрирование включает в себя либо (А) дешифрирование упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности во время выполнения аппаратурой цифроаналогового преобразования (ЦАП) в графической системе, по мере того как содержимое выводится согласно упомянутому выведению, либо (В) дешифрирование упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности во время выполнения, непосредственно перед тем, как содержимое достигнет аппаратуры ЦАП в графической системе.6. The method according to claim 1, wherein said decryption includes either (A) decrypting said at least one encrypted overlapping surface while the apparatus is performing digital-to-analog conversion (DAC) in the graphics system as the contents are output according to said derivation, or (B) decrypting said at least one encrypted overlapping surface at runtime, just before the contents reach the DAC equipment in the graphics system me 7. Способ по п.1, в котором упомянутое дешифрирование включает в себя дешифрирование упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности перед тем, как содержимое достигнет аппаратуры ЦАП в графической системе, компонентом, не имеющим обратного канала к главной компьютерной системе.7. The method according to claim 1, wherein said decryption includes decrypting said at least one encrypted overlapping surface before the contents reach the DAC equipment in the graphics system, a component that does not have a return channel to the main computer system. 8. Способ по п.1, дополнительно содержащий8. The method according to claim 1, additionally containing повторное шифрование упомянутого содержимого упомянутым, по меньшей мере, одним БГО при осуществлении связи с устройством криптографической обработки перед упомянутым выведением; иre-encrypting said content with said at least one BGO when communicating with a cryptographic processing device before said output; and дешифрирование упомянутого повторно зашифрованного содержимого, по меньшей мере, вторым устройством криптографической обработки во внешнем вычислительном устройстве.decrypting said re-encrypted content with at least a second cryptographic processing device in an external computing device. 9. Способ по п.1, в котором содержимое передается в цифровом виде к внешнему устройству, имеющему второе устройство криптографической обработки, и упомянутое дешифрирование происходит в упомянутом внешнем устройстве.9. The method according to claim 1, in which the content is transmitted digitally to an external device having a second cryptographic processing device, and said decryption takes place in said external device. 10. Способ по п.8, в котором упомянутое внешнее вычислительное устройство представляет собой либо (А) монитор, либо (В) телеприставку, либо (С) устройство визуализации цифровой обработки сигналов (ЦОС).10. The method of claim 8, wherein said external computing device is either (A) a monitor, or (B) a set top box, or (C) a digital signal processing (DSP) visualization device. 11. Способ по п.1, в котором упомянутое дешифрирование включает в себя вычисление криптографического содержимого дешифрированных данных, а упомянутый способ дополнительно содержит11. The method according to claim 1, wherein said decryption includes calculating the cryptographic content of the decrypted data, and said method further comprises передачу упомянутого криптографического содержимого к программному приложению либо устройству, чтобы гарантировать, что отображенные пикселы являются пикселами, переданными в связи с упомянутым запрашиванием от программного приложения либо устройства.transmitting said cryptographic content to a software application or device to ensure that the displayed pixels are pixels transmitted in connection with said request from a software application or device. 12. Способ по п.1, в котором, по меньшей мере, один бит каждого пиксела в первичной поверхности используется для определения членства в виртуальной защищенной поверхности для этого пиксела, причем графический адаптер выбирает подходящий ключ дешифрирования для пиксела на основании упомянутого, по меньшей мере, одного бита.12. The method according to claim 1, in which at least one bit of each pixel in the primary surface is used to determine membership in a virtual protected surface for that pixel, wherein the graphics adapter selects a suitable decryption key for the pixel based on said at least , one bit. 13. Способ по п.12, в котором, если упомянутый, по меньшей мере, один бит содержит нулевое значение, то виртуальная защищенная поверхность, связанная с упомянутым, по меньшей мере, одним битом, интерпретируется как область, не подлежащая дешифрированию.13. The method of claim 12, wherein if said at least one bit contains a null value, then the virtual protected surface associated with said at least one bit is interpreted as being non-decryptable. 14. Способ по п.1, дополнительно включающий, когда доступны дешифрированные пиксельные значения, выбор компонентом выбора пиксела в упомянутом, по меньшей мере, одном БГО пиксельного значения либо (А) второго зашифрованного защищенного оверлея, либо (В) первого зашифрованного конфиденциального оверлея, либо (3) первичной поверхности.14. The method according to claim 1, further comprising, when the decoded pixel values are available, selecting a pixel selection component in said at least one BGO pixel value either (A) a second encrypted secure overlay or (B) a first encrypted confidential overlay, or (3) the primary surface. 15. Способ по п.1, в котором упомянутое запрашивание включает в себя, по меньшей мере, (А) ограничивающую источник или место назначения рамку упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности, (В) целевой цветовой код упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности, (С) в случае первого зашифрованного конфиденциального оверлея, описание ключевого указателя шифрования содержимого оверлейного обратного буфера, в который должны отражаться данные, (D) в случае второго зашифрованного защищенного оверлея, описание ячейки памяти, куда записывается, по меньшей мере, одно из циклического избыточного кода (ЦИК), меры целостности и значения содержимого дешифрированного содержимого оверлея, (Е) ограничивающую источник или место назначения рамку, по меньшей мере, одной зашифрованной первичной поверхности, и (F) целевой цветовой код упомянутой, по меньшей мере, одной зашифрованной первичной поверхности.15. The method according to claim 1, wherein said request includes at least (A) a bounding source or destination frame of said at least one encrypted overlapping surface, (B) a target color code of said at least at least one encrypted overlapping surface, (C) in the case of the first encrypted confidential overlay, a description of the key pointer to encrypt the contents of the overlay reverse buffer to which the data should be reflected, (D) in the case of the second encrypted protection of the overlay, a description of the memory cell where at least one of the cyclic redundancy code (CEC) is written, integrity measures and values of the contents of the decrypted overlay content, (E) the border of the source or destination frame of at least one encrypted primary surface , and (F) the target color code of said at least one encrypted primary surface. 16. Способ по п.15, в котором программное приложение либо устройство вычисляет, по меньшей мере, одно из циклического избыточного кода (ЦИК), меры целостности и значения содержимого, если упомянутое программное приложение либо устройство имеет отношение к целостности содержимого.16. The method of claim 15, wherein the software application or device calculates at least one of a cyclic redundancy code (CEC), integrity measures, and content values, if said software application or device relates to content integrity. 17. Способ по п.1, в котором, по меньшей мере, один командный буфер, посланный в блок видео декодера, по меньшей мере, одного БГО, присущего упомянутому запрашиванию, зашифровывается упомянутым программным приложением либо устройством и дешифрируется упомянутым блоком видео декодера при осуществлении связи с упомянутым блоком криптографической обработки.17. The method according to claim 1, in which at least one command buffer sent to the video decoder block of at least one BGO inherent in said request is encrypted by said software application or device and decrypted by said video decoder block when implemented communication with said cryptographic processing unit. 18. Способ по п.17, дополнительно содержащий обнаружение несанкционированного доступа к упомянутому, по меньшей мере, одному командному буферу либо (А) с помощью двух проходов перед использованием, по меньшей мере, одного командного буфера, либо (В) после того, как командный буфер использован.18. The method according to 17, further comprising detecting unauthorized access to the at least one command buffer, either (A) using two passes before using at least one command buffer, or (B) after command buffer used. 19. По меньшей мере, один машиночитаемый носитель данных, содержащий исполняемые компьютером модули, в том числе исполняемые компьютером команды для криптографической защиты охраняемого содержимого, используемые в достоверной графической системе вычислительного устройства, причем эта достоверная графическая система имеет видеопамять, по меньшей мере, один блок графической обработки (БГО) и устройство криптографической обработки, соединенное для осуществления связи с упомянутым, по меньшей мере, одним БГО, при этом исполняемые компьютером модули содержат19. At least one computer-readable storage medium containing computer-executable modules, including computer-executable instructions for cryptographic protection of protected content, used in a reliable graphics system of a computing device, wherein this reliable graphics system has video memory of at least one block graphic processing (BGO) and a cryptographic processing device connected to communicate with said at least one BGO, while executable computers rum modules contain средство для запрашивания графической системы программным приложением либо устройством выполнить обработку либо визуализацию охраняемого содержимого, при этом упомянутое средство для запрашивания включает в себя средство для передачи сеансового ключа упомянутым программным приложением либо устройством в графическую систему, и средство для передачи упомянутого охраняемого содержимого к зашифрованным перекрывающим поверхностям, которые перекрывают, по меньшей мере, одну первичную поверхность упомянутой видеопамяти, включая первый зашифрованный конфиденциальный оверлей для базовой визуализации охраняемого содержимого и второй зашифрованный защищенный оверлей, специально спроектированный для существующих чувствительных пользовательских интерфейсов, причем упомянутый второй зашифрованный защищенный оверлей находится всегда наверху и не закрывается, и содержимое второго зашифрованного защищенного оверлея проверяется упомянутым, по меньшей мере, одним БГО,means for requesting a graphic system with a software application or device to process or visualize the protected content, wherein said requesting means includes means for transmitting the session key by said software application or device to the graphics system, and means for transmitting said protected content to encrypted overlapping surfaces which overlap at least one primary surface of said video memory, including the first an encrypted confidential overlay for basic visualization of the protected content and a second encrypted secured overlay specially designed for existing sensitive user interfaces, said second encrypted secured overlay being always at the top and not closing, and the contents of the second encrypted secured overlay are checked by said at least one BGO , средство для дешифрирования содержимого упомянутой, по меньшей мере, одной зашифрованной части видеопамяти упомянутым, по меньшей мере, одним БГО при осуществлении связи с упомянутым устройством криптографической обработки, при этом упомянутое дешифрирование включает в себя дешифрирование содержимого первого зашифрованного защищенного оверлея вторым компонентом дешифрирования потокового шифра;means for decrypting the contents of said at least one encrypted part of the video memory by said at least one BGO while communicating with said cryptographic processing device, said decryption comprising decrypting the contents of the first encrypted secure overlay by the second decryption component of the stream cipher; средство для выполнения, по меньшей мере, обработки или визуализации упомянутого дешифрированного содержимого, по меньшей мере, одним БГО; иmeans for performing at least processing or visualization of said decrypted content with at least one BGO; and средство для выведения упомянутого содержимого, по меньшей мере, из одного БГО.means for removing said content from at least one BGO. 20. Носитель данных по п.19, в котором, если выход упомянутого средства для выведения отличается от охраняемого содержимого в упомянутом средстве для запрашивания, настроенном для любой обработки, выполняемой на упомянутом охраняемом содержимом упомянутым, по меньшей мере, одним БГО, то упомянутое программное приложение либо устройство предупреждается об этом различии.20. The storage medium according to claim 19, in which, if the output of the said means for removing is different from the protected content in the said means for requesting, configured for any processing performed on the said protected content by the said at least one BGO, then said software an application or device is warned about this difference. 21. Носитель данных по п.19, в котором упомянутое средство для дешифрирования содержимого упомянутой, по меньшей мере, одной зашифрованной части видеопамяти включает в себя средство для дешифрирования геометрической части первичной поверхности, при этом пикселы иные, чем в геометрической части, не дешифрируются.21. The storage medium according to claim 19, wherein said means for decrypting the contents of said at least one encrypted part of the video memory includes means for decrypting the geometric part of the primary surface, while pixels other than the geometric part are not decrypted. 22. Носитель данных по п.19, в котором криптографический процессор постоянно связан с графическим адаптером либо (А) добавлением этого криптографического процессора к существующей микросхеме, либо (В) добавлением этого криптографического процессора в качестве отдельной микросхемы к графическому адаптеру, при этом физическое соединение между криптографическим процессором и остальной частью графического адаптера недоступно и не показывается.22. The storage medium according to claim 19, in which the cryptographic processor is constantly connected to the graphics adapter, either (A) adding this cryptographic processor to an existing chip, or (B) adding this cryptographic processor as a separate chip to the graphics adapter, while the physical connection between the cryptographic processor and the rest of the graphics adapter is inaccessible and not shown. 23. Носитель данных по п.19, в котором упомянутое средство для дешифрирования включает в себя средство для дешифрирования упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности механизмом дешифрирования упомянутого БГО, соединенного для осуществления связи с упомянутым устройством криптографической обработки.23. The storage medium according to claim 19, wherein said decryption means includes means for decrypting said at least one encrypted overlapping surface by a decryption mechanism of said BGO connected to communicate with said cryptographic processing device. 24. Носитель данных по п.19, в котором упомянутое средство для дешифрирования включает в себя либо (А) средство для дешифрирования упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности во время выполнения аппаратурой цифроаналогового преобразования (ЦАП) в графической системе, по мере того как содержимое выводится согласно упомянутому выведению, либо (В) средство для дешифрирования упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности во время выполнения непосредственно перед тем, как содержимое достигнет аппаратуры ЦАП в графической системе.24. The storage medium according to claim 19, in which said means for decryption includes either (A) means for decrypting said at least one encrypted overlapping surface during the execution of digital-to-analog conversion (DAC) equipment in a graphics system, as after the contents are output according to said derivation, or (B) means for decrypting said at least one encrypted overlapping surface at run time immediately before the contents mine will reach the DAC hardware in the graphics system. 25. Носитель данных по п.19, в котором упомянутое средство для дешифрирования включает в себя средство для дешифрирования упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности перед тем, как содержимое достигнет аппаратуры ЦАП в графической системе, компонентом, не имеющим обратного канала к главной компьютерной системе.25. The storage medium according to claim 19, wherein said decryption means includes means for decrypting said at least one encrypted overlapping surface before the contents reach the DAC equipment in the graphics system, a component that does not have a return channel to main computer system. 26. Носитель данных по п.19, дополнительно содержащий26. The storage medium according to claim 19, further comprising средство для повторного шифрования упомянутого содержимого упомянутым, по меньшей мере, одним БГО при осуществлении связи с устройством криптографической обработки перед упомянутым выведением упомянутым средством для выведения; иmeans for re-encrypting said content with said at least one BGO when communicating with a cryptographic processing device before said output by said output means; and средство для дешифрирования упомянутого повторно зашифрованного содержимого, по меньшей мере, вторым устройством криптографической обработки во внешнем вычислительном устройстве.means for decrypting said re-encrypted content with at least a second cryptographic processing device in an external computing device. 27. Носитель данных по п.19, в котором содержимое передается в цифровом виде к внешнему устройству, имеющему второе устройство криптографической обработки, а упомянутое дешифрирование упомянутого средства для дешифрирования осуществляется в упомянутом внешнем устройстве.27. The storage medium according to claim 19, in which the content is transmitted digitally to an external device having a second cryptographic processing device, and said decryption of said decryption means is carried out in said external device. 28. Носитель данных по п.26, в котором упомянутое внешнее вычислительное устройство представляет собой либо (А) монитор, либо (В) телеприставку, либо (С) устройство визуализации цифровой обработки сигналов (ЦОС).28. The storage medium according to claim 26, wherein said external computing device is either (A) a monitor, or (B) a set top box, or (C) a digital signal processing (DSP) visualization device. 29. Носитель данных по п.19, в котором упомянутое средство для дешифрирования включает в себя средство для вычисления криптографического содержимого дешифрированных данных, а упомянутые исполняемые компьютером модули дополнительно содержат средство для передачи упомянутого криптографического содержимого к программному приложению либо устройству, чтобы гарантировать, что отображенные пикселы являются пикселами, переданными в связи с упомянутым запрашиванием от программного приложения либо устройства через упомянутое средство для запрашивания.29. The storage medium of claim 19, wherein said decryption means includes means for calculating the cryptographic content of the decrypted data, and said computer-executable modules further comprise means for transmitting said cryptographic content to a software application or device to ensure that the displayed pixels are pixels transmitted in connection with said request from a software application or device through said means for interrogation. 30. Носитель данных по п.19, в котором, по меньшей мере, один бит каждого пиксела в первичной поверхности используется для определения членства в виртуальной защищенной поверхности для этого пиксела, причем графический адаптер выбирает подходящий ключ дешифрирования для пиксела на основании упомянутого, по меньшей мере, одного бита.30. The storage medium according to claim 19, in which at least one bit of each pixel in the primary surface is used to determine membership in a virtual protected surface for that pixel, and the graphics adapter selects a suitable decryption key for the pixel based on said at least at least one bit. 31. Носитель данных по п.30, в котором, если упомянутый, по меньшей мере, один бит содержит нулевое значение, то виртуальная защищенная поверхность, связанная с упомянутым, по меньшей мере, одним битом, интерпретируется как область, не подлежащая дешифрированию.31. The storage medium according to claim 30, wherein if said at least one bit contains a null value, then the virtual protected surface associated with said at least one bit is interpreted as an area not to be decrypted. 32. Носитель данных по п.19, дополнительно содержащий средство для выбора, когда доступны дешифрированные пиксельные значения, компонентом выбора пиксела в упомянутом, по меньшей мере, одном БГО пиксельного значения либо (А) второго зашифрованного защищенного оверлея, либо (В) первого зашифрованного конфиденциального оверлея, либо (3) первичной поверхности.32. The storage medium according to claim 19, further comprising a means for selecting, when the decoded pixel values are available, the pixel selection component in said at least one BGO pixel value of either (A) a second encrypted secure overlay or (B) a first encrypted confidential overlay, or (3) primary surface. 33. Носитель данных по п.19, в котором упомянутое запрашивание упомянутого средства для запрашивания включает в себя, по меньшей мере, (А) ограничивающую источник или место назначения рамку упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности, (В) целевой цветовой код упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности, (С) в случае первого зашифрованного конфиденциального оверлея, описание ключевого указателя шифрования содержимого оверлейного обратного буфера, в который должны отражаться данные, (D) в случае второго зашифрованного защищенного оверлея, описание ячейки памяти, куда записывается, по меньшей мере, одно из циклического избыточного кода (ЦИК), меры целостности и значения содержимого дешифрированного содержимого оверлея, (Е) ограничивающую источник или место назначения рамку, по меньшей мере, одной зашифрованной первичной поверхности, и (F) целевой цветовой код упомянутой, по меньшей мере, одной зашифрованной первичной поверхности.33. The storage medium according to claim 19, wherein said requesting of said means for requesting includes at least (A) a source or destination bounding box of said at least one encrypted overlapping surface, (B) a target color code of said at least one encrypted overlapping surface, (C) in the case of a first encrypted confidential overlay, a description of a key encryption indicator of the contents of the overlay inverse buffer, to which should be reflected data, (D) in the case of the second encrypted secure overlay, a description of the memory cell where at least one of the cyclic redundancy code (CEC) is written, integrity measures and values of the contents of the decrypted overlay content, (E) the frame that limits the source or destination at least one encrypted primary surface, and (F) a target color code of said at least one encrypted primary surface. 34. Носитель данных по п.33, в котором программное приложение либо устройство вычисляет, по меньшей мере, одно из циклического избыточного кода (ЦИК), меры целостности и значения содержимого, если упомянутое программное приложение либо устройство имеет отношение к целостности содержимого.34. The storage medium according to claim 33, wherein the software application or device calculates at least one of a cyclic redundancy code (CEC), integrity measures, and content values, if said software application or device relates to the integrity of the content. 35. Носитель данных по п.19, в котором, по меньшей мере, один командный буфер, переданный в блок видео декодера, по меньшей мере, одного БГО соответственно упомянутому запрашиванию, зашифровывается упомянутым программным приложением либо устройством и дешифрируется упомянутым блоком видео декодера при осуществлении связи с упомянутым блоком криптографической обработки.35. The storage medium according to claim 19, in which at least one command buffer transmitted to the video decoder block of the at least one BGO according to said request is encrypted by said software application or device and decrypted by said video decoder block communication with said cryptographic processing unit. 36. Носитель данных по п.35, дополнительно содержащий средство для обнаружения несанкционированного доступа к упомянутому, по меньшей мере, одному командному буферу либо (А) с помощью двух проходов перед использованием, по меньшей мере, одного командного буфера, либо (В) после того, как командный буфер использован.36. The storage medium of claim 35, further comprising means for detecting unauthorized access to said at least one command buffer, either (A) using two passes before using at least one command buffer, or (B) after of how the command buffer is used. 37. Вычислительное устройство, содержащее средство для криптографической защиты охраняемого содержимого в связи с использованием достоверной графической системы вычислительного устройства, причем эта достоверная графическая система имеет видеопамять, по меньшей мере, один блок графической обработки (БГО) и устройство криптографической обработки, соединенное для осуществления связи с упомянутым, по меньшей мере, одним БГО, содержащее37. A computing device containing means for cryptographic protection of protected content in connection with the use of a reliable graphic system of a computing device, this reliable graphic system having video memory, at least one graphic processing unit (BGO) and a cryptographic processing device connected for communication with said at least one BGO containing средство для запрашивания графической системы программным приложением либо устройством выполнить обработку либо визуализацию охраняемого содержимого, при этом упомянутое средство для запрашивания включает в себя средство для передачи сеансового ключа упомянутым программным приложением либо устройством в графическую систему и средство для передачи упомянутого охраняемого содержимого к зашифрованным перекрывающимся поверхностям, которые перекрывают, по меньшей мере, одну первичную поверхность упомянутой видеопамяти, включая первый зашифрованный конфиденциальный оверлей для базовой визуализации охраняемого содержимого и второй зашифрованный защищенный оверлей, специально спроектированный для существующих чувствительных пользовательских интерфейсов, причем упомянутый второй зашифрованный защищенный оверлей находится всегда наверху и не закрывается, и содержимое второго зашифрованного защищенного оверлея проверяется упомянутым, по меньшей мере, одним БГО,means for requesting a graphic system with a software application or device to process or visualize the protected content, wherein said requesting means includes means for transmitting a session key by said software application or device to a graphics system and means for transmitting said protected content to encrypted overlapping surfaces, which overlap at least one primary surface of said video memory, including the first a second encrypted confidential overlay for basic visualization of the protected content and a second encrypted secured overlay specially designed for existing sensitive user interfaces, said second encrypted secured overlay being always at the top and not closing, and the contents of the second encrypted secured overlay are checked by said at least one BGO средство для дешифрирования содержимого упомянутой, по меньшей мере, одной зашифрованной части видеопамяти упомянутым, по меньшей мере, одним БГО при осуществлении связи с упомянутым устройством криптографической обработки, при этом упомянутое дешифрирование включает в себя дешифрирование содержимого первого зашифрованного конфиденциального оверлея первым компонентом дешифрирования потокового шифра и дешифрирование содержимого второго зашифрованного защищенного оверлея вторым компонентом дешифрирования потокового шифра;means for decrypting the contents of said at least one encrypted portion of the video memory by said at least one BGO in communication with said cryptographic processing device, said decryption comprising decrypting the contents of the first encrypted confidential overlay by the first decryption component of the stream cipher and decrypting the contents of the second encrypted secure overlay by the second stream decryption decryption component; средство для выполнения, по меньшей мере, обработки или визуализации упомянутого дешифрированного содержимого, по меньшей мере, одним БГО; иmeans for performing at least processing or visualization of said decrypted content with at least one BGO; and средство для выведения упомянутого содержимого, по меньшей мере, из одного БГО.means for removing said content from at least one BGO. 38. Вычислительное устройство по п.37, в котором, если выход упомянутого средства для выведения отличается от охраняемого содержимого в упомянутом средстве для запрашивания, настроенном для любой обработки, выполняемой на упомянутом охраняемом содержимом упомянутым, по меньшей мере, одним БГО, то упомянутое программное приложение либо устройство предупреждается об этом различии.38. The computing device according to clause 37, wherein if the output of said output means differs from the protected content in said requesting means configured for any processing performed on said protected content by said at least one BGO, said software an application or device is warned about this difference. 39. Вычислительное устройство по п.37, в котором упомянутое средство для дешифрирования содержимого упомянутой, по меньшей мере, одной зашифрованной части видеопамяти включает в себя средство для дешифрирования геометрической части первичной поверхности, благодаря чему пикселы иные, чем в геометрической части, не дешифрируются.39. The computing device according to clause 37, wherein said means for decrypting the contents of said at least one encrypted part of the video memory includes means for decrypting the geometric part of the primary surface, so that pixels other than the geometric part are not decrypted. 40. Вычислительное устройство по п.37, в котором криптографический процессор постоянно связан с графическим адаптером либо (А) добавлением этого криптографического процессора к существующей микросхеме, либо (В) добавлением этого криптографического процессора в качестве отдельной микросхемы к графическому адаптеру, при этом физическое соединение между криптографическим процессором и остальной частью графического адаптера недоступно и не показывается.40. The computing device according to clause 37, in which the cryptographic processor is constantly connected to the graphics adapter either (A) adding this cryptographic processor to an existing chip, or (B) adding this cryptographic processor as a separate chip to the graphics adapter, while the physical connection between the cryptographic processor and the rest of the graphics adapter is inaccessible and not shown. 41. Вычислительное устройство по п.37, в котором упомянутое средство для дешифрирования включает в себя средство для дешифрирования упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности механизмом дешифрирования упомянутого БГО, соединенного для осуществления связи с упомянутым устройством криптографической обработки.41. The computing device according to clause 37, in which the said means for decryption includes means for decrypting the at least one encrypted overlapping surface by the decryption mechanism of the mentioned BGO, connected to communicate with the said cryptographic processing device. 42. Вычислительное устройство по п.37, в котором упомянутое средство для дешифрирования включает в себя либо (А) средство для дешифрирования упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности во время выполнения аппаратурой цифроаналогового преобразования (ЦАП) в графической системе, по мере того как содержимое выводится согласно упомянутому выведению, либо (В) средство для дешифрирования упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности во время выполнения непосредственно перед тем, как содержимое достигнет аппаратуры ЦАП в графической системе.42. The computing device according to clause 37, in which the said means for decryption includes either (A) means for decrypting the at least one encrypted overlapping surface during the execution of the digital-to-analog conversion (DAC) in the graphics system, as after the content is output according to said derivation, or (B) means for decrypting said at least one encrypted overlapping surface at run time immediately before ak content reaches the DAC hardware in the graphics system. 43. Вычислительное устройство по п.37, в котором упомянутое средство для дешифрирования включает в себя средство для дешифрирования упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности перед тем, как содержимое достигнет аппаратуры ЦАП в графической системе, компонентом, не имеющим обратного канала к главной компьютерной системе.43. The computing device according to clause 37, in which the said means for decryption includes means for decrypting said at least one encrypted overlapping surface before the contents reach the DAC equipment in the graphics system, a component that does not have a return channel to main computer system. 44. Вычислительное устройство по п.37, дополнительно содержащее44. The computing device according to clause 37, further comprising средство для повторного шифрования упомянутого содержимого упомянутым, по меньшей мере, одним БГО при осуществлении связи с устройством криптографической обработки перед упомянутым выведением упомянутым средством для выведения; иmeans for re-encrypting said content with said at least one BGO when communicating with a cryptographic processing device before said output by said output means; and средство для дешифрирования упомянутого повторно зашифрованного содержимого, по меньшей мере, вторым устройством криптографической обработки во внешнем вычислительном устройстве.means for decrypting said re-encrypted content with at least a second cryptographic processing device in an external computing device. 45. Вычислительное устройство по п.37, в котором содержимое передается в цифровом виде к внешнему устройству, имеющему второе устройство криптографической обработки, а упомянутое дешифрирование упомянутого средства для дешифрирования осуществляется в упомянутом внешнем устройстве.45. The computing device according to clause 37, in which the content is transmitted digitally to an external device having a second cryptographic processing device, and said decryption of said decryption means is carried out in said external device. 46. Вычислительное устройство по п.44, в котором упомянутое внешнее вычислительное устройство представляет собой либо (А) монитор, либо (В) телеприставку, либо (С) устройство визуализации цифровой обработки сигналов (ЦОС).46. The computing device of claim 44, wherein said external computing device is either (A) a monitor, or (B) a set-top box, or (C) a digital signal processing (DSP) visualization device. 47. Вычислительное устройство по п.37, в котором упомянутое средство для дешифрирования включает в себя средство для вычисления криптографического содержимого дешифрированных данных, а упомянутые исполняемые компьютером модули дополнительно содержат средство для передачи упомянутого криптографического содержимого к программному приложению либо устройству, чтобы гарантировать, что отображенные пикселы являются пикселами, переданными в связи с упомянутым запрашиванием от программного приложения либо устройства через упомянутое средство для запрашивания.47. The computing device according to clause 37, wherein said decryption tool includes means for calculating the cryptographic content of the decrypted data, and said computer-executable modules further comprise means for transmitting said cryptographic content to a software application or device to ensure that the displayed pixels are pixels transmitted in connection with said request from a software application or device through said medium Property to request. 48. Вычислительное устройство по п.37, в котором, по меньшей мере, один бит каждого пиксела в первичной поверхности используется для определения членства в виртуальной защищенной поверхности для этого пиксела, причем графический адаптер выбирает подходящий ключ дешифрирования для пиксела на основании упомянутого, по меньшей мере, одного бита.48. The computing device according to clause 37, in which at least one bit of each pixel in the primary surface is used to determine membership in a virtual protected surface for that pixel, and the graphics adapter selects a suitable decryption key for the pixel based on said at least at least one bit. 49. Вычислительное устройство по п.48, в котором, если упомянутый, по меньшей мере, один бит содержит нулевое значение, то виртуальная защищенная поверхность, связанная с упомянутым, по меньшей мере, одним битом, интерпретируется как область, не подлежащая дешифрированию.49. The computing device of claim 48, wherein if said at least one bit contains a null value, then the virtual protected surface associated with said at least one bit is interpreted as being non-decryptable. 50. Вычислительное устройство по п.37, дополнительно содержащее средство для выбора, когда доступны дешифрированные пиксельные значения, компонентом выбора пиксела в упомянутом, по меньшей мере, одном БГО пиксельного значения либо (А) второго зашифрованного защищенного оверлея, либо (В) первого зашифрованного конфиденциального оверлея, либо (3) первичной поверхности.50. The computing device according to clause 37, further comprising a means for selecting, when the decoded pixel values are available, the pixel selection component in said at least one BGO pixel value, either (A) a second encrypted secure overlay or (B) a first encrypted confidential overlay, or (3) primary surface. 51. Вычислительное устройство по п.37, в котором упомянутое запрашивание упомянутого средства для запрашивания включает в себя, по меньшей мере, (А) ограничивающую источник или место назначения рамку упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности, (В) целевой цветовой код упомянутой, по меньшей мере, одной зашифрованной перекрывающейся поверхности, (С) в случае первого зашифрованного конфиденциального оверлея, описание ключевого указателя шифрования содержимого оверлейного обратного буфера, в который должны отражаться данные, (D) в случае второго зашифрованного защищенного оверлея, описание ячейки памяти, куда записывается, по меньшей мере, одно из циклического избыточного кода (ЦИК), меры целостности и значения содержимого дешифрированного содержимого оверлея, (Е) ограничивающую источник или место назначения рамку, по меньшей мере, одной зашифрованной первичной поверхности, и (F) целевой цветовой код упомянутой, по меньшей мере, одной зашифрованной первичной поверхности.51. The computing device according to clause 37, wherein said requesting said means for requesting includes at least (A) a bounding source or destination frame of said at least one encrypted overlapping surface, (B) a target color the code of the at least one encrypted overlapping surface, (C) in the case of the first encrypted confidential overlay, a description of the key pointer to encrypt the contents of the overlay reverse buffer to which data to be traded, (D) in the case of a second encrypted secure overlay, a description of the memory cell where at least one of the cyclic redundancy code (CEC) is written, integrity measures and values of the contents of the decrypted overlay content, (E) restricting the source or destination a frame of at least one encrypted primary surface, and (F) a target color code of said at least one encrypted primary surface. 52. Вычислительное устройство по п.51, в котором программное приложение либо устройство вычисляет по меньшей одно из циклического избыточного кода (ЦИК), меры целостности и значения содержимого, если упомянутое программное приложение либо устройство имеет отношение к целостности содержимого.52. The computing device of claim 51, wherein the software application or device calculates at least one of a cyclic redundancy code (CEC), integrity measures, and content values if said software application or device is related to the integrity of the content. 53. Вычислительное устройство по п.37, в котором, по меньшей мере, один командный буфер, переданный в блок видео декодера, по меньшей мере, одного БГО соответственно упомянутому запрашиванию, зашифровывается упомянутым программным приложением либо устройством и дешифрируется упомянутым блоком видео декодера при осуществлении связи с упомянутым блоком криптографической обработки.53. The computing device according to clause 37, in which at least one command buffer transmitted to the video decoder unit of at least one BGO according to the aforementioned request is encrypted by said software application or device and decrypted by said video decoder unit communication with said cryptographic processing unit. 54. Вычислительное устройство по п.53, дополнительно содержащее средство для обнаружения несанкционированного доступа к упомянутому, по меньшей мере, одному командному буферу либо (А) с помощью двух проходов перед использованием, по меньшей мере, одного командного буфера, либо (В) после того, как командный буфер использован.54. The computing device of claim 53, further comprising means for detecting unauthorized access to said at least one command buffer, either (A) using two passes before using at least one command buffer, or (B) after of how the command buffer is used.
RU2004110622/09A 2001-12-04 2002-12-03 Methods and systems for cryptographic protection of protected content RU2308077C2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US33761701P 2001-12-04 2001-12-04
US60/337,617 2001-12-04
US33914301P 2001-12-10 2001-12-10
US60/339,143 2001-12-10
US10/124,922 2002-04-18

Publications (2)

Publication Number Publication Date
RU2004110622A RU2004110622A (en) 2005-09-10
RU2308077C2 true RU2308077C2 (en) 2007-10-10

Family

ID=35847687

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2004110622/09A RU2308077C2 (en) 2001-12-04 2002-12-03 Methods and systems for cryptographic protection of protected content

Country Status (2)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2509424C2 (en) * 2009-08-07 2014-03-10 Долби Интернешнл Аб Data stream authentication
RU2511637C2 (en) * 2009-12-30 2014-04-10 Интел Корпорейшн Display data management technology
RU2647631C1 (en) * 2017-05-30 2018-03-16 Акционерное общество "Российская корпорация ракетно-космического приборостроения и информационных систем" (АО "Российские космические системы") Satellite communication system with protection of the remote operation management channel

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2509424C2 (en) * 2009-08-07 2014-03-10 Долби Интернешнл Аб Data stream authentication
US8885818B2 (en) 2009-08-07 2014-11-11 Dolby International Ab Authentication of data streams
RU2511637C2 (en) * 2009-12-30 2014-04-10 Интел Корпорейшн Display data management technology
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
RU2004110622A (en) 2005-09-10
BRPI0205818B1 (en) 2015-06-02
BR0205818A (en) 2004-01-06

Similar Documents

Publication Publication Date Title
RU2310227C2 (en) Methods and systems for authentication of components in graphic system
JP4522645B2 (en) Method and system for cryptographically protecting secure content
CA2771080C (en) Secure media path methods, systems, and architecture
RU2327215C2 (en) System and method for protecting output signal of video card
US7093134B1 (en) Method and apparatus for signing and sealing objects
RU2308077C2 (en) Methods and systems for cryptographic protection of protected content

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20121204