СИСТЕМА НА КРИСТАЛЛЕ ДЛЯ ВЫПОЛНЕНИЯ БЕЗОПАСНОЙ ЗАГРУЗКИ, УСТРОЙСТВО ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЙ, ИСПОЛЬЗУЮЩЕЕ ЕЕ, И СПОСОБ ДЛЯ НЕГО Российский патент 2018 года по МПК G06F21/34 G06F21/57 G06F12/14 

Описание патента на изобретение RU2651213C2

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Способы и устройства по примерным вариантам осуществления общей идеи настоящего изобретения относятся к системе на кристалле, устройству формирования изображений, использующему ее, и способу для него, и, в частности, к системе на кристалле, которая выполняет безопасную загрузку с использованием зашифрованных данных, к устройству формирования изображений, использующему ее, и к способу для него.

ОПИСАНИЕ УРОВНЯ ТЕХНИКИ

С развитием электронных технологий были разработаны электронные продукты различных типов. В частности, в связи с широким использованием компьютеров увеличивается использование компьютерных периферийных устройств. "Компьютерное периферийное устройство" относится к устройству, которое улучшает применение компьютера. Типичными примерами таких компьютерных периферийных устройств являются принтеры, сканеры, копировальные устройства и многофункциональные периферийные устройства.

"Устройство формирования изображений" относится к устройству, которое выполняет задачу по формированию изображений, то есть формирует изображение на бумаге или другом носителе. В целях выполнения задачи формирования изображения может быть использован проявитель, такой как чернила или тонер. Устройство формирования изображений, в котором применяется лазерный способ с использованием тонера, может включать в себя блок зарядки, блок проявки, блок передачи, блок лазерного сканирования и блок закрепления. Блоки, которые используются при выполнении задачи, включая указанные выше блоки, могут называться "расходными блоками". Если расходный блок используется в течение заранее определенного периода времени, его характеристики могут измениться, и нельзя будет ожидать хорошего качества печати. В частности, картридж с тонером, который содержит тонер, должен быть заменен на новый после исчерпания тонера. Следовательно, производители продукта продают расходные блоки отдельно от готовых изделий, если возникает подобная ситуация.

В последние годы расходный блок может иметь встроенную память для точного определения того, нуждается ли расходный блок в замене. В памяти может храниться разнообразная информация по использованию расходного блока. Однако проблема заключается в том, что постороннему лицу легко получить доступ к памяти, встроенной в расходный блок. Соответственно, информация, хранящаяся в памяти, может быть изменена и, таким образом, использование и управление расходным блоком может представлять сложности. Следовательно, предпринимались попытки по усилению безопасности памяти расходного блока.

Однако постороннее лицо может взломать защиту обмена данными устройства с расходным блоком, не относящегося к памяти. В частности, может быть разработано средство для взлома методики безопасности, применяемой для расходного блока, путем изменения процесса загрузки основной памяти, встроенной в основную часть устройства.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Соответственно, имеется потребность в способе повышения безопасности процесса загрузки. В одном или более примерных вариантах осуществления могут преодолеваться указанные выше недостатки и недостатки, не описанные выше. Однако следует понимать, что один или более примерных вариантов осуществления не обязательно требуются для преодоления описанных выше недостатков и могут не преодолевать какие-либо описанные выше проблемы.

Один или более примерных вариантов осуществления общей идеи настоящего изобретения предоставляют систему на кристалле, которая выполняет безопасную загрузку с использованием энергонезависимой памяти, в которой хранятся зашифрованные данные, устройство формирования изображений, имеющее ее, и способ для него.

Дополнительные признаки и полезные свойства общей идеи настоящего изобретения будут частично изложены в приведенном ниже описании и, частично, будут понятны из описания или могут быть изучены при практическом применении общей идеи изобретения.

В соответствии с примерным вариантом осуществления общей идеи настоящего изобретения представлена система на кристалле, содержащая первую память для хранения множества ключей шифрования, вторую память, третью память для хранения значения установки ключа шифрования и центральный процессор (ЦП) для дешифрования зашифрованных данных, которые хранятся во внешней энергонезависимой памяти, с применением ключа шифрования, соответствующего значению установки ключа шифрования, из множества ключей шифрования, для сохранения дешифрованных данных во второй памяти и для выполнения загрузки с использованием данных, хранящихся во второй памяти.

Данные для инициализации могут храниться в первой памяти отдельно от множества ключей шифрования, и ЦП может выполнять инициализацию с использованием данных для инициализации, и может дешифровать зашифрованные данные.

Система на кристалле может дополнительно содержать первую схему для ограничения доступа к ЦП через внешний порт на заранее определенный период времени.

Когда включается питание, первая схема может выдавать сигнал блокировки для блокирования доступа к ЦП, и, когда завершается по меньшей мере дешифрование и аутентификация дешифрованных данных, первая схема может выдавать сигнал разблокировки для разблокирования доступа к ЦП.

Первая схема может содержать первый регистр, и, когда дешифрование и аутентификация дешифрованных данных завершается, ЦП может изменять значение хранения первого регистра.

Система на кристалле может содержать вторую схему и третью схему для управления доступом к первой памяти.

Вторая схема может содержать второй регистр, и третья схема может содержать третий регистр. Когда завершается дешифрование и аутентификация дешифрованных данных, ЦП может сохранять во втором регистре значение управления для блокирования доступа к первой памяти, и может сохранять в третьем регистре значение управления для изменения доступа к первой памяти на доступ ко второй памяти.

ЦП может выполнять бесконечный цикл, когда дешифрование завершается неудачно.

Когда питание включается, ЦП может идентифицировать память, которая назначена посредством значения установки, хранящегося в третьей памяти, или внешнего контакта, и, когда назначена первая память, ЦП может выполнять безопасную загрузку с использованием зашифрованных данных, и, когда назначена вторая память, ЦП может выполнять обычную загрузку с использованием незашифрованных данных, которые хранятся в энергонезависимой памяти.

Первая память может представлять собой масочное постоянное запоминающее устройство (mask ROM) или однократно программируемое (OTP) ROM, и вторая память может представлять собой статическое оперативное запоминающее устройство (SRAM). Третья память может представлять собой память с плавкими перемычками (EFUSE).

Система на кристалле может содержать контроллер памяти, функционально соединенный с ЦП, содержащий по меньшей мере один переключатель для выбора состояния соединения с внешней памятью, при этом контроллер памяти избирательно выдает сигнал записи, принятый от ЦП, во внешнюю память в соответствии с результатом сравнения между первым значением ключа и вторым значением ключа.

Система на кристалле может содержать контроллер памяти, который управляет по меньшей мере одним переключателем для выбора состояния соединения, с тем чтобы выдавать сигнал записи во внешнюю память, когда первое значение ключа и второе значение ключа одинаковы.

Система на кристалле может содержать контроллер памяти, который управляет по меньшей мере одним переключателем с тем, чтобы блокировать соединение с внешней памятью для предотвращения выдачи сигнала записи во внешнюю память.

Система на кристалле может содержать контроллер памяти, который управляет операцией чтения из внешней памяти, даже когда контроллер памяти предотвращает выдачу сигнала записи во внешнюю память.

Система на кристалле может содержать по меньшей мере один переключатель, который включает в себя первый переключатель и второй переключатель, при этом контроллер памяти управляет первым переключателем, с тем чтобы управлять операцией чтения из внешней памяти, и вторым переключателем, с тем чтобы управлять выдачей сигнала записи во внешнюю память.

Система на кристалле может обеспечивать, чтобы в ситуации, когда первое значение ключа и предварительно сохраненное второе значение ключа отличаются друг от друга, контроллер памяти блокировал операцию записи во внешнюю энергонезависимую память.

Примерные варианты осуществления общей идеи настоящего изобретения также могут предоставлять устройство формирования изображений, содержащее расходный блок, в котором установлена микросхема контроля заменяемого пользователем блока (CRUM), и контроллер для выполнения задачи формирования изображения с применением расходного блока и для обновления данных, записанных на микросхему CRUM, в соответствии с задачей формирования изображения. Контроллер может содержать энергонезависимую память для записи зашифрованных данных и для выполнения безопасной загрузки системы на кристалле с использованием зашифрованных данных, когда устройство формирования изображений включается, и для управления устройством формирования изображений в соответствии с командами пользователя, когда безопасная загрузка завершена.

Система на кристалле может содержать первую память для хранения множества ключей шифрования, вторую память, третью память для хранения значения установки ключа шифрования, и ЦП для дешифрования данных, хранящихся в энергонезависимой памяти, с применением ключа шифрования, соответствующего значению установки ключа шифрования, из множества ключей шифрования, для сохранения дешифрованных данных во второй памяти и для осуществления загрузки с использованием данных, хранящихся во второй памяти.

Данные для инициализации могут храниться в первой памяти отдельно от множества ключей шифрования, и ЦП может выполнять инициализацию с использованием данных для инициализации, и может затем дешифровывать зашифрованные данные.

Когда произошло событие загрузки, система на кристалле может ограничивать доступ к ЦП через внешний порт на заранее определенный период времени.

Система на кристалле может дополнительно содержать первую схему, которая, когда устройство формирования изображений включается, выдает сигнал блокировки для блокирования доступа к ЦП, и, когда завершается, по меньшей мере, дешифрование и аутентификация дешифрованных данных, выдает сигнал разблокировки для обеспечения возможности доступа к ЦП.

Первая схема может содержать первый регистр, и, когда завершается, по меньшей мере, дешифрование и аутентификация дешифрованных данных, ЦП может изменять значение хранения первого регистра.

Когда завершается, по меньшей мере, дешифрование и аутентификация дешифрованных данных, ЦП может выполнять задачу по установке значения регистра для блокирования доступа к первой памяти и для изменения доступа к первой памяти на доступ ко второй памяти.

Когда устройство формирования изображений включается, ЦП может идентифицировать память, которая назначена посредством значения установки, хранящегося в третьей памяти, или внешнего контакта, и, когда назначена первая память, ЦП может выполнять безопасную загрузку с использованием зашифрованных данных, и, когда назначена вторая память, ЦП может выполнять обычную загрузку с использованием незашифрованных данных, которые хранятся во внешней энергонезависимой памяти.

Первая память может представлять собой масочную ROM или OTP ROM, и вторая память может представлять собой SRAM. Третья память может представлять собой память EFUSE.

Примерные варианты осуществления общей идеи настоящего изобретения также предоставляют способ загрузки устройства формирования изображений, содержащего энергонезависимую память и систему на кристалле, при этом способ включает в себя инициализацию с использованием данных для инициализации, которые хранятся в первой памяти системы на кристалле, когда инициализация выполнена, дешифрование зашифрованных данных, которые хранятся в энергонезависимой памяти, с применением одного из множества ключей шифрования, которые хранятся в первой памяти, сохранение дешифрованных данных во второй памяти системы на кристалле и выполнение загрузки с использованием данных, которые хранятся во второй памяти.

Способ также может включать в себя, когда устройство формирования изображений включается, идентификацию памяти, которая назначена в соответствии с введенным входным значением через третью память системы на кристалле или внешний контакт, и, когда назначенная память является первой памятью, блокирование доступа к ЦП системы на кристалле.

Способ может дополнительно включать в себя, когда завершается, по меньшей мере, дешифрование и аутентификация дешифрованных данных, обеспечение возможности доступа к ЦП.

Способ также может включать в себя, когда завершается, по меньшей мере, дешифрование и аутентификация дешифрованных данных, блокирование доступа к первой памяти, и выполнение установки регистра для изменения доступа к первой памяти на доступ ко второй памяти.

Примерные варианты общей идеи настоящего изобретения также могут предоставлять электронное устройство, имеющее запоминающее устройство и систему на кристалле, содержащую центральный процессор (ЦП) и контроллер памяти, функционально соединенный с ЦП и запоминающим устройством, при этом контроллер памяти избирательно выдает сигнал записи, принятый от ЦП, в запоминающее устройство в соответствии с результатом сравнения между первым значением ключа и вторым значением ключа.

Электронное устройство может содержать контроллер памяти, который управляет по меньшей мере одним переключателем для выбора состояния соединения, с тем чтобы выдавать сигнал записи в запоминающее устройство, когда первое значение ключа и второе значение ключа одинаковы.

Электронное устройство может содержать контроллер памяти, который управляет по меньшей мере одним переключателем с тем, чтобы блокировать соединение с запоминающим устройством для предотвращения выдачи сигнала записи в запоминающее устройство.

Электронное устройство может содержать контроллер памяти, который управляет операцией чтения из запоминающего устройства, даже когда контроллер памяти предотвращает выдачу сигнала записи в запоминающее устройство.

Примерные варианты осуществления общей идеи настоящего изобретения также могут предоставлять хост-устройство, содержащее запоминающее устройство для хранения множества шифрованных текстов, соответствующих каждой из множества версий, блок связи для приема шифрованного текста, хранящегося в устройстве формирования изображений, когда происходит заранее заданное событие, контроллер для управления устройством формирования изображений с тем, чтобы оно находилось в состоянии ожидания печати, когда шифрованный текст, соответствующий версии встроенного микропрограммного обеспечения устройства формирования изображений, является таким же, как и принятый шифрованный текст, и когда шифрованный текст и версия встроенного микропрограммного обеспечения отличаются друг от друга, контроллер блокирует использование устройства формирования изображений.

В соответствии с описанными выше примерными вариантами осуществления, безопасность процесса загрузки может быть повышена, и, таким образом, вред, вызванный злонамеренным несанкционированным доступом постороннего лица, может быть минимизирован и/или предотвращен.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

Данные и/или другие признаки и полезные свойства общей идеи настоящего изобретения станут ясны, и их будет легче понять на основании приведенного ниже описания вариантов осуществления при рассмотрении совместно с прилагаемыми чертежами, на которых:

Фиг. 1 представляет собой блок-схему, иллюстрирующую систему на кристалле в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения;

Фиг. 2 представляет собой блок-схему последовательности операций, иллюстрирующую способ безопасной загрузки в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения;

Фиг. 3 представляет собой блок-схему, иллюстрирующую систему на кристалле в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения;

Фиг. 4 представляет собой блок-схему, иллюстрирующую главную плату, на которой установлена система на кристалле, в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения;

Фиг. 5 представляет собой блок-схему последовательности операций, иллюстрирующую способ безопасной загрузки в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения;

Фиг. 6 представляет собой блок-схему последовательности операций для иллюстрации способа безопасной загрузки в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения;

Фиг. 7 представляет собой принципиальную схему, подробно иллюстрирующую пример системы на кристалле с фиг. 4;

Фиг. 8 представляет собой вид, иллюстрирующий пример схемы безопасного встроенного микропрограммного обеспечения;

Фиг. 9 представляет собой вид, иллюстрирующий пример карты распределения памяти для выполнения безопасной загрузки;

Фиг. 10 представляет собой блок-схему, иллюстрирующую пример устройства формирования изображений, в которое установлена система на кристалле;

Фиг. 11 представляет собой блок-схему, иллюстрирующую пример CRUM-микросхемы, которая может быть установлен в расходный блок;

Фиг. 12 представляет собой блок-схему последовательности операций, иллюстрирующую способ использования памяти системы на кристалле в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения;

Фиг. 13 представляет собой блок-схему, иллюстрирующую пример системы на кристалле в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения с фиг. 12;

Фиг. 14 и фиг. 15 представляют собой блок-схемы, иллюстрирующие пример системы на кристалле в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения;

Фиг. 16 представляет собой вид, иллюстрирующий пример блока генерации кода, который может быть применен в примерных вариантах осуществления общей идеи настоящего изобретения, проиллюстрированных на фиг. 14 и 15;

Фиг. 17 представляет собой вид, иллюстрирующий примерный вариант осуществления блока генерации кода с фиг. 16;

Фиг. 18 и фиг. 19 представляют собой изображения, иллюстрирующие примерные варианты осуществления общей идеи настоящего изобретения для кода программного обеспечения, который генерируется в блоке генерации кода с фиг. 19;

Фиг. 20-22 представляют собой примерные варианты осуществления общей идеи настоящего изобретения для различной энергонезависимой памяти, которая может применяться с системой на кристалле;

Фиг. 23 представляет собой вид, иллюстрирующий способ обработки контакта записи энергозависимой памяти, которая должная быть деактивирована в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения;

Фиг. 24 представляет собой блок-схему последовательности операций, иллюстрирующую способ управления памятью в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения;

Фиг. 25 представляет собой вид, иллюстрирующий примерный вариант осуществления контроллера памяти для выполнения способа управления памятью по примерному варианту осуществления общей идеи настоящего изобретения, проиллюстрированного на фиг. 24;

Фиг. 26 представляет собой временную диаграмму, иллюстрирующую способ управления печатью в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения;

Фиг. 27 представляет собой вид, иллюстрирующий примерный вариант осуществления хост-устройства для выполнения способа управления печатью в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения, проиллюстрированным на фиг. 26;

Фиг. 28 и фиг. 29 представляют собой изображения, иллюстрирующие примерный вариант осуществления различных шифрованных текстов;

Фиг. 30 представляет собой вид, иллюстрирующий примерный вариант осуществления взломанного шифрованного текста; и

Фиг. 31 представляет собой блок-схему последовательности операций, иллюстрирующую способ управления устройством формирования изображений в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения.

ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

Ниже в настоящем описании, будут подробнее описаны примерные варианты осуществления со ссылкой на прилагаемые чертежи.

Ниже будут приведены подробные ссылки на варианты осуществления общей идеи настоящего изобретения, примеры которых проиллюстрированы на прилагаемых чертежах, на которых везде аналогичные ссылочные позиции обозначают аналогичные элементы. Варианты осуществления описаны ниже в целях объяснения общей идеи настоящего изобретения и со ссылкой на фигуры.

В приведенном ниже описании одинаковые ссылочные позиции используются для одинаковых элементов, когда они изображены на разных чертежах. Объекты, определенные в описании, такие как подробная конструкция и элементы, представлены в целях способствования исчерпывающему пониманию примерных вариантов осуществления. Таким образом, очевидно, что примерные варианты осуществления могут выполняться без этих конкретно определенных объектов. Также, функции или элементы, известные в соответствующей области техники, не описываются подробно, поскольку это затруднит понимание примерных вариантов осуществления по причине внесения ненужных подробностей.

Общепринято, что электронное устройство выполняет процесс загрузки для обеспечения нормального функционирования, когда оно включается. Электронное устройство выполняет инициализацию и загружает и выполняет программу в процессе загрузки. Процесс загрузки, который определяет исходное состояние электронного устройства, может повлиять на параметр функционирования (например, важный параметр функционирования) электронного устройства и, таким образом, фактически может повлиять на электронное устройство в процессе его эксплуатации. Следовательно, если процесс загрузки доступен для изменения каждому, то существует риск того, что может быть загружена программа, загрузка которой не предполагалась пользователем. То есть хакер может быть способен изменить процесс загрузки с тем, чтобы загрузить нужную ему программу, загрузку которой не запрашивал пользователь. Следовательно, существует потребность в способе безопасной загрузки, с тем чтобы процесс загрузки не мог быть изменен произвольно, то есть существует потребность в способе безопасной загрузки. В целях обеспечения безопасной загрузки загрузочные данные могут храниться в энергонезависимой памяти электронного устройства в зашифрованном виде. Система 100 на кристалле управляет функционированием электронного устройства, осуществляет доступ к энергонезависимой памяти, дешифрует зашифрованные данные и выполняет процесс безопасной загрузки. Далее в настоящем документе будет объясняться система на кристалле и способ ее безопасной загрузки в соответствии с различными примерными вариантами осуществления общей идеи настоящего изобретения.

Фиг. 1 представляет собой блок-схему, иллюстрирующую систему на кристалле в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения. Обратимся к фиг. 1; система 100 на кристалле выполняет безопасную загрузку с использованием энергонезависимой памяти 200, в которой хранятся зашифрованные данные. Система 100 на кристалле и энергонезависимая память 200 с фиг. 1 могут быть встроены в электронное устройство (например, в одно электронное устройство). Например, система 100 на кристалле может быть встроена в устройство формирования изображений, такое как устройство 1000 формирования изображений, проиллюстрированное и описанное в связи с фиг. 10. Система 100 на кристалле может быть встроена в любое подходящее электронное устройство. Система на кристалле может представлять собой интегральную схему, программируемое логическое устройство, программируемую пользователем матрицу логических элементов и/или любое подходящее устройство для выполнения безопасной загрузки в соответствии с примерными вариантами осуществления общей идеи настоящего изобретения, изложенными в настоящем описании.

Система 100 на кристалле выполняет процесс безопасной загрузки с применением шифрованных данных, которые хранятся в энергонезависимой памяти 200. В частности, различные данные, такие как символ начала блока загрузки (BSS), ядро, программа инициализации, операционная система (OS), другая OS (беспроводной стек), библиотека методов доступа, эмуляция, фиксированный сегмент, неупорядоченный массив данных, ключ аутентификации, зашифрованная OS и драйвер устройства могут быть зашифрованы и могут храниться в энергонезависимой памяти 200.

Данные могут быть зашифрованы различными способами. Например, может применяться способ стандарта шифрования данных (DES), способ тройного DES (TDES), способ расширенного стандарта шифрования (AES), алгоритм SEED, способ Ривеста – Шамира - Эдльмана (RSA) и алгоритм академического агентства научно-исследовательских институтов (ARIA).

Способом DES называется способ, в котором данные шифруются и дешифруются с применением алгоритма шифрования с симметричными ключами с использованием ключа из 56 бит. Способом TDES называется способ, в котором DES повторяется три раза. Способом AES называется способ, в котором выполняется шифрование/дешифрование блока размером 128 бит с использованием любого ключа, кратного 32 битам, такого как 128, 160, 192, 224, или 256 бит. Способ SEED, который аналогичен способу AES, относится к способу шифрования 128-битных блоков, который шифрует и дешифрует данные с применением ключа шифрования из 128 бит или 256 бит. Способ RSA является одним из видов системы шифрования с открытым ключом, в котором используется односторонняя функция, и алгоритм ARIA представляет собой способ блочного шифрования, в котором шифруется и дешифруется блок из 128 бит с применением ключа 128, 192 или 256 бит.

Различные данные, которые шифруются в различных способах шифрования, описанных выше, могут храниться в энергонезависимой памяти 200. Хранящиеся данные или способ шифрования могут избирательно применяться в соответствии с характеристикой продукта, в который установлена система 100 на кристалле и энергонезависимая память 200 с фиг. 1, или в соответствии с другими условиями эксплуатации.

Обратимся к фиг. 1; система 100 на кристалле содержит первую память 110, вторую память 120 и центральный процессор (ЦП) 130. ЦП 130 может представлять собой процессор и/или любое подходящее устройство для выполнения примерных вариантов осуществления общей идеи настоящего изобретения. Ключ шифрования может храниться в первой памяти 110. Первая память 110 может быть реализована посредством применения масочного постоянного запоминающего устройства (ROM) или однократно программируемой памяти (OTP).

Масочное ROM представляет собой память, в которую данные помещаются заранее во время производства, и пользователю не разрешается изменять данные. Память OTP может быть использована во внутрисхемном программировании, но она представляет собой тип программируемого ROM, которое не позволяет изменять данные, после того, как она была запрограммирована.

Ключ шифрования представляет собой ключ для дешифрования данных, которые хранятся в энергонезависимой памяти 200, в частности, загрузочного кода. В энергонезависимой памяти 200 могут храниться данные, которые зашифрованы с применением одного из описанных выше способов, и ключ шифрования, соответствующий шифрованным данным, которые могут храниться в первой памяти 110.

В первой памяти 110 может храниться информация о загрузчике. Загрузчиком называется программа, которая должна быть выполнена заранее до запуска OS, должна завершить все операции, необходимые для запуска ядра, и в конце запустить OS. То есть OS разделяется на ядро, в котором запускаются реальные команды, оболочку, которая передает команды, содержащиеся в программе, в ядро, и пользовательский интерфейс (UI), через который выполняется управление ядром и оболочкой. Загрузчиком называется программа, которая подготавливает аппаратное обеспечение до запуска ядра. В частности, информация частного загрузчика может храниться в первой памяти 110. Информация частного загрузчика может содержать информацию, необходимую для инициализации системы.

Вторая память 120 является внутренней памятью, которая используется для осуществления операции загрузки. Вторая память 120 может представлять собой SRAM, которой не требуется инициализация. Однако это не должно рассматриваться как ограничение, и вторая память 120 может быть любой памятью, подходящей для выполнения примерных вариантов осуществления общей идеи настоящего изобретения в соответствии с изложенным в настоящем описании.

ЦП 130 дешифрует зашифрованные данные, которые хранятся в энергонезависимой памяти 200, размещенной вне системы 100 на кристалле, с применением ключа шифрования, хранящегося в первой памяти 110, и сохраняет дешифрованные данные во второй памяти 120. ЦП 130 может выполнять загрузку с использованием данных, хранящихся во второй памяти 120. Способ дешифрования может соответствовать способу шифрования данных.

Например, если применяется способ AES, то данные шифруются посредством повторения процесса AddRoundKey, который выполняет операцию XOR в отношении данных, которые должны быть зашифрованы, и исходно введенного ключа шифрования, процесса SubBytes, который заменяет результат операции XOR в соответствии с конкретным правилом, процесс ShiftRows, который сдвигает строку данных, и процесса MixColumn, который перемешивает строку данных 10 раз. В энергонезависимой памяти 200 могут храниться данные, которые зашифрованы описанным выше способом. ЦП 130 может дешифровать зашифрованные данные посредством повторения обратных процессов, соответствующих описанным выше процессам шифрования. Дешифрованные данные хранятся во второй памяти 120, и ЦП 130 выполняет последующий процесс загрузки с использованием хранящихся данных.

Если применяется способ RSA, то данные шифруются и дешифруются с применением открытого ключа {N, E} и частного ключа {N, D}. В частности, выбираются два больших простых числа 'p' и 'q' (то есть простые числа, превышающие заранее определенное значение) и рассчитывается модуль N=p*q и PI(N). Также выбирается E случайным образом, при этом E является взаимно простым с PI(N)=(p-a)(q-1). D, которое подчиняется соотношению E*D mod PI(N)-1, вычисляется с применением расширенного алгоритма Евклида. В результате шифрование RSA может выполняться с применением открытого ключа {N, E} и частного ключа {N, D}. Шифрование RSA может выполняться с использованием формулы E(M)=MAE mod N=C. M обозначает данные, которые должны быть зашифрованы. В энергонезависимой памяти 200 может храниться загрузочный код, который зашифрован в соответствии с данной формулой. В этом случае ЦП 130 может выполнять RSA-дешифрование с использованием формулы D(C)=CAD mod N=((MAE)AD) mod N=M. Дешифрованные данные хранятся во второй памяти 120, и ЦП 130 выполняет последующий процесс загрузки с использованием хранящихся данных.

В соответствии с описанным выше способом, система 100 на кристалле загружает данные, хранящиеся во внешней памяти 200, в нее в зашифрованном состоянии, дешифрует данные и выполняет операцию загрузки. Соответственно, даже если постороннее лицо получит несанкционированный доступ к данным, которыми обмениваются внешняя память 200 и система 100 на кристалле, процесс загрузки не сможет быть изменен, и безопасность загрузки может быть повышена.

Фиг. 2 представляет собой блок-схему последовательности операций, подробно иллюстрирующую способ безопасной загрузки в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения. Обратимся к фиг. 2; если электронное устройство, в котором установлена система на кристалле (например, система на кристалле 100), включается в операции S210, то система на кристалле осуществляет доступ к первой памяти 110 и считывает данные, хранящиеся в первой памяти 110, в операции S220. В частности, ЦП 130 переходит к вектору сброса, которому выделен конкретный адрес, и вызывает инструкцию. В данном примерном варианте осуществления адрес вектора сброса может быть задан как первая память 110.

Если задана первая память 110, то ЦП 130 выполняет безопасную загрузку с использованием данных, хранящихся в первой памяти 110. В первой памяти 110 могут храниться различные данные, такие как код для инициализации системы (например, системы на кристалле 100) и код или ключ шифрования для дешифрования зашифрованного внешнего программного кода.

ЦП 130 обнаруживает код для инициализации системы в первой памяти 110 и выполняет задачу инициализации в отношении аппаратного обеспечения электронного устройства в операции S230. Задача инициализации может включать в себя перевод генератора тактовых импульсов, используемого в системе на кристалле 110, с использованием внутренней схемы фазовой автоматической подстройки частоты (PLL) или инициализация контроллера с двойной скоростью (DDR) для использования памяти DDR. Задача инициализации может также включать в себя различные операции инициализации, такие как первоначальное управление различными приложениями, инициализация установки для формирования канала связи между внутренними или внешними устройствами электронного устройства, инициализация значения памяти, настройка значения внутреннего регистра, настройка ввода/вывода (I/O), последовательная настройка, получение MAC-адреса и настройка порта Ethernet. Задача инициализации может включать в себя подготовку аппаратного обеспечения, установленного в электронном устройстве наряду с системой 100 на кристалле. Такие операции инициализации могут быть реализованы рядом способов в соответствии с типом электронного устройства, в котором установлена система 100 на кристалле. Код, хранящийся в первой памяти 110, может быть использован для других операций. Например, ЦП 130 данных считывает значение установки опции контакта загрузки (SPI/NAND/SD) и передает (то есть записывает) данные во вторую память 120 согласно соответствующей опции загрузки.

ЦП 130 дешифрует зашифрованные данные, которые загружаются в систему 100 на кристалле в операции S240. ЦП 130 может дешифровать данные с применением ключа шифрования, хранящегося в первой памяти 110. ЦП 130 сохраняет дешифрованные данные во второй памяти 120 или памяти DDR в операции S250. ЦП 130 выполняет загрузку с использованием дешифрованных данных в операции S260.

То есть ЦП 130 может выполнять загрузку с использованием таких данных, как дешифрованный символ начала блока загрузки (BSS), код ядра, программа инициализации, OS, другая OS (беспроводной стек), библиотека методов доступа, эмуляция, фиксированный сегмент и неупорядоченный массив данных. "Загрузка" относится к операциям загрузки ядра, выполнения оболочки, выполнения UI и запуска OS.

В соответствии с примерным вариантом осуществления, описанным выше, безопасная загрузка может быть выполнена с использованием первой памяти 110 и второй памяти 120 системы 100 на кристалле, которые не являются зашифрованными, при этом зашифрованные данные хранятся во внешней энергонезависимой памяти 200.

Фиг. 3 представляет собой блок-схему, иллюстрирующую систему на кристалле в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения. Обратимся к фиг. 3; система 100 на кристалле может содержать третью память 140 в дополнение к первой памяти 110, второй памяти 120 и ЦП 130.

В соответствии с примерным вариантом осуществления общей идеи настоящего изобретения, множество ключей шифрования может храниться в первой памяти 110. Значение установки для выбора одного из множества ключей шифрования может храниться в третьей памяти 140. Такое значение установки называется "значением установки ключа шифрования". Третья память 140 может представлять собой память с плавкими перемычками (EFUSE), которая является типом памяти OPT. Однако это не должно рассматриваться как ограничение, и третья память 140 может представлять собой любую подходящую память для выполнения примерных вариантов осуществления общей идеи настоящего изобретения в соответствии с изложенным в настоящем описании.

ЦП 130 определяет, какой из множества ключей шифрования, хранящихся в первой памяти 110, будет выбран, в соответствии с значением установки (то есть значением установки ключа шифрования), хранящимся в третьей памяти 140. Если ключ становится известным, то производитель системы 100 на кристалле или электронного устройства, в котором установлена система 100, изменяет ключ путем изменения значения установки ключа шифрования в третьей памяти 140.

В соответствии с данным примерным вариантом осуществления, даже если один ключ шифрования станет известным, то не будет необходимости в замене всей системы на кристалле, и ЦП 130 может решить эту проблему путем изменения значения установки, запрограммированного в третьей памяти 140.

Другие операции второй памяти 120 и ЦП 130 являются такими же, как описаны в приведенном выше первом примерном варианте осуществления, и поэтому избыточное объяснение не приводится.

Фиг. 4 представляет собой блок-схему, иллюстрирующую главную плату 300, на которой установлена система 100 на кристалле и энергонезависимая память 200. Главная плата 300 может быть размещена, например, в электронном устройстве. Обратимся к фиг. 4; система 100 на кристалле и энергонезависимая память 200 могут быть установлены на одной главной плате 300. Помимо системы 100 на кристалле и энергонезависимой памяти 200, различные элементы (например, компоненты аппаратного обеспечения электронного устройства, такие как, например, интерфейс связи, пользовательский интерфейс, процессор обработки изображений, датчик изображений, звуковой процессор и т.д.) могут быть установлены на главной плате 300, но не проиллюстрированы в целях удобства изложения.

Система 100 на кристалле содержит первую память 110, вторую память 120, ЦП 130, третью память 140 и шину 150. Обратимся к фиг. 4; ЦП 130 может быть соединен с различными элементами, включая первую, вторую и третью память 110, 120 и 140 через шину 150. Шина 150 может содержать различные типы шин, такие как адресная шина, шина данных и шина управления.

Система 100 на кристалле, проиллюстрированная на фиг. 3 и 4, может соответствующим образом выбирать способ шифрования с использованием третьей памяти 140 (например, DES, TDES, SEED, RSA, ARIA и т.д.).

Фиг. 5 представляет собой блок-схему последовательности операций, иллюстрирующую способ безопасной загрузки системы на кристалле, проиллюстрированной на фиг. 3 или 4. Обратимся к фиг. 5; если электронное устройство, в котором установлена система 100 на кристалле, включается в операции S510, ЦП 130 системы 100 на кристалле осуществляет доступ к первой памяти 110 в операции S520 и идентифицирует данные для инициализации. Доступ к первой памяти 110 может осуществляться в соответствии с инструкцией, то есть вызываться из вектора сброса. ЦП 130 инициализирует аппаратное обеспечение (например, компоненты аппаратного обеспечения электронного устройства, такие как одно или более запоминающих устройств, интерфейс связи и т.д.) в соответствии с идентифицированным данными для инициализации в операции S530. Пример операции инициализации был описан выше со ссылкой на фиг. 2, и избыточное объяснение не приводится. ЦП 130 может запрещать доступ к себе через внешний порт в процессе выполнения безопасной загрузки.

Если инициализация завершена, ЦП 130 идентифицирует значение установки, которое хранится в третьей памяти 140, в операции S540, и выбирает ключ шифрования, соответствующий значению установки, из множества ключей шифрования, хранящихся в первой памяти 110, в операции S550. Если ключ шифрования выбран, ЦП 130 дешифрует зашифрованные данные, которые хранятся в энергонезависимой памяти 200, с применением ключа шифрования, и выполняет аутентификацию в операции S560. Дешифрованные данные копируются во вторую память 120 или память DDR.

Как описано выше, данные дешифруются в соответствии с различными алгоритмами шифрования, такими как способ DES, способ TDES, способ AES, способ SEED, способ RSA и способ ARIA.

Аутентификация представляет собой процесс проверки действия кода аутентификации данных. Для проведения аутентификации может быть применен алгоритм аутентификации, такой как HMAC-SHA256, HMAC-SHA1 и HMAC-MD5, и/или любой подходящий алгоритм аутентификации для выполнения примерного варианта осуществления общей идеи настоящего изобретения. Данные алгоритмы представляют собой основанные на ключе алгоритмы, в которых используется один секретный ключ. В частности, HMAC определен в RFC 204 (преобразование длинного ключа в рабочий ключ для кода аутентификации сообщения). Значение ключа шифрования для дешифрования и значение для аутентификации могут храниться в первой памяти 110, как описано выше.

Если код аутентификации не является действующим, или дешифрование завершается неудачей в операции S570, то ЦП 130 останавливает выполнение программы безопасной загрузки и/или попадает в бесконечный цикл в операции S595.

Если дешифрование и аутентификация завершаются успешно, и все подготовки системы завершены, ЦП 130 изменяет таблицу адресов в операции S580. Соответственно, когда выполняется попытка доступа к первой памяти 110, доступ принудительно заменяется на доступ ко второй памяти 120.

ЦП 130 выполняет загрузку с использованием дешифрованных данных, которые копируются во вторую память 120, в операции S590. Процесс загрузки был описан выше, и поэтому избыточное объяснение не приводится.

В приведенном выше примерном варианте осуществления была описана система на кристалле, которая выполняет безопасную загрузку, и соответствующие операции. Однако в соответствии с примерным вариантом осуществления, безопасная загрузка или обычная загрузка может быть избирательно выполнена в соответствии с окружением, в котором применяется система на кристалле.

Фиг. 6 представляет собой блок-схему последовательности операций, иллюстрирующую способ загрузки системы на кристалле в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения. В соответствии с примерным вариантом осуществления, в энергонезависимой памяти 200 могут совместно храниться зашифрованные данные и незашифрованные данные.

В этом состоянии, если электронное устройство включается в операции S610, ЦП 130 определяет, выполнять ли безопасную загрузку или обычную загрузку в операции S615. То есть, если включается питание, ЦП 130 переходит к вектору сброса и вызывает инструкцию. В качестве вектора сброса может быть указана первая память 110 или вторая память 120. То есть первая память 110 и вторая память 120 отображаются на один и тот же адрес (например, 0xffff0000) через шину 150. Если ЦП 130 идентифицирует адрес 0xffff0000 из вектора сброса, ЦП 130 осуществляет доступ к первой памяти 110 или второй памяти 120 в соответствии с указанным. Память может быть назначена посредством значения назначения, которое вводится через внешний контакт, соединенный с ЦП 130, или значения назначения, которое хранится в третьей памяти 140.

Если указана вторая память 120, то определено, что в операции S615: N выполняется обычная загрузка, а не безопасная загрузка. В этом случае ЦП 130 осуществляет доступ к энергонезависимой памяти 200 и выполняет обычную загрузку с использованием незашифрованных данных.

Если указана первая память 110, то определено, что в операции S615: Y выполняется безопасная загрузка. Если выполняется безопасная загрузка, то ЦП 130 осуществляет доступ к первой памяти 110 в операции S625 и обнаруживает данные для инициализации в операции S630. До этого ЦП 130 может запретить доступ к себе через внешний порт.

ЦП 130 инициализирует базовое аппаратное обеспечение с использованием данных для инициализации в операции S630. ЦП 130 загружает зашифрованные данные, которые хранятся в энергонезависимой памяти 200, во вторую память 120.

ЦП 130 определяет, установлен или нет режим безопасной загрузки, в операции S635. То есть ЦП 130 может определять, выполнять ли безопасную загрузку, независимо от того, назначена ли первая память 110 или нет, с использованием внешнего контакта (или первого внешнего контакта), или третьей памяти 140. Например, даже если незашифрованные данные хранятся в энергонезависимой памяти 200, ЦП 130 может выполнять загрузку с использованием первой памяти 110. В этом случае дешифрование не выполняется. Определение того, является ли режим режимом безопасной нагрузки или нет, основано на другом значении назначения, хранящемся в третьей памяти 140, или другом внешнем контакте (далее в настоящем описании называемым вторым внешним контактом).

Если установлен режим безопасной загрузки, то ЦП 130 выполняет дешифрование и аутентификацию с применением ключа шифрования, который хранится в первой памяти 110, в операции S640. Дешифрование и аутентификация могут выполняться в соответствии с описанными выше различными алгоритмами (например, DES, TDES, AES, SEED, RSA, ARIA и т.д.).

Если по меньшей мере одна операция из дешифрования и аутентификации завершается неудачей в операции S645: N, ЦП 130 входит в бесконечный цикл в операции S660. То есть ЦП 130 прекращает выполнять режим безопасной загрузки. Если дешифрование и аутентификация успешно завершились в операции S645: Y, ЦП 130 изменяет таблицу адресов в операции S650. ЦП 130 может управлять использованием второй памяти 120 вместо первой памяти 110. Соответственно, невозможно получить доступ к коду, хранящемуся в первой памяти 110, после изменения таблицы адресов. В то же время, невозможно отследить код и значение ключа с помощью JTAG, и адрес для чтения устанавливается на 0xffffff при осуществлении доступа.

Когда изменена таблица адресов, ЦП 130 переходит к данным, скопированным во вторую память 120 (например, к первому загрузчику) и выполняет операцию загрузки с использованием этих данных в операции S655. "Первый загрузчик" относится к загрузчику, который загружает второй загрузчик в память. Основные функции загрузчика по предоставлению UI и загрузке ядра выполняются вторым загрузчиком. Загрузчик может быть разделен на первый и второй загрузчики в случае недостаточного объема памяти.

Как было описано выше, система 100 на кристалле может быть реализована в различных формах и может выполнять безопасную загрузку. Описанные выше примерные варианты осуществления могут быть изменены совместно по меньшей мере с одним другим примерным вариантом осуществления. Фигуры и описания, относящиеся к данным примерным вариантам осуществления, не приводятся.

Фиг. 7 представляет собой изображение, подробно иллюстрирующее пример системы на кристалле. Обратимся к фиг. 7; система 100 на кристалле может содержать контроллер DDR 185 и различные схемы 155, 160, 165, 170, 175 и 180 в дополнение к первой памяти 110, второй памяти 120, ЦП 130, третьей памяти 140 и шине 150. На фиг. 7 первая память 110 реализована посредством использования масочной ROM, и вторая память 120 реализована посредством использования SRAM. Третья память 140 реализована посредством использования памяти EFUSE. В третьей памяти 140 может храниться значение установки (ключи 1, 2 и 3) для выбора ключа шифрования и значения назначения (масочная ROM) для установки того, будет ли выполняться безопасная загрузка.

Каждая из схем 155, 160, 165, 170, 175 и 180 может представлять собой, например, регистр, логическую схему или мультиплексор. Первая схема 155 содержит первый регистр 155-1. ЦП 130 может управлять доступом к ЦП через внешний порт с использованием первой схемы 155. В частности, первая схема 155 вводит сигнал JTAG_EN, соответствующий значению, внесенному в первый регистр 155-1, в ЦП 130.

То есть, если генерируется событие загрузки, четвертый контур 170 выдает результат операции ИЛИ, выполненной в отношении значения, которое введено через внешний контакт, и значения назначения, которое введено через третью память 140. Событие загрузки включает в себя событие, при котором система 100 на кристалле или устройство (например, электронное устройство), в котором установлена система на кристалле, включается. Если должна быть выполнена безопасная загрузка, то в третью память 140 может быть записана '1'. Соответственно, четвертый контур 170 выводит '1'. Выходное значение четвертого контура 170 вводится во вторую схему 160 и третью схему 165.

Вторая схема 160 и третья схема 165 содержат второй и третий регистры 160-1 и 165-1, соответственно, для управления доступом к первой памяти 110. Выходное значение '1' четвертого контура 170, которое должно быть подано на вход второй схемы 160, инвертируется. Соответственно, '0' подается на вход второй схемы 160. Вторая схема 160 выводит значение операции ИЛИ, выполненной в отношении входного значения '0' и значения хранения второго регистра 160-1, с использованием элемента ИЛИ. Поскольку '0' может быть записан во второй регистр 160-1 в исходном состоянии, вторая схема 160 в итоге выводит '0' на первую схему 155.

Первая схема 155 содержит первый регистр 155-1. Первая схема 155 содержит мультиплексор для избирательного вывода значения, хранящегося в первом регистре 155-1, или внешнего значения. Если '0' подается на вход из второй схемы 160, то первая схема 155 выдает сигнал для блокирования доступа к ЦП 130. Соответственно, доступ к ЦП через внешний порт может быть ограничен на заранее определенный период времени, то есть на период времени, в течение которого выполняется безопасная загрузка после того, как включается устройство с SOC 100.

Если устройство включается, ЦП 130 идентифицирует память, которая указана в соответствии с значением установки, хранящемся в третьей памяти 140, или с входным значением, введенным через внешний контакт. Если указанная память является первой памятью 110, ЦП 130 сохраняет первое значение (например, '1') для блокирования доступа к ЦП в первом регистре 155-1.

Если подготовка системы (например, по меньшей мере, дешифрование и аутентификация дешифрованных данных) завершена, то ЦП 130 сохраняет второе значение (например, '0') для обеспечения возможности доступа к ЦП в первом регистре 155-1. Значение хранения второго регистра 160-1 второй схемы 160 также может быть изменено.

В частности, если подготовка системы завершена, ЦП 130 записывает значение управления (например, '1') для блокирования доступа к первой памяти 110 во второй регистр 160-1, и блокирует считывание данных из всех областей первой памяти 110. Если значение хранения второго регистра 160-1, изменяется на '1', то выходное значение второй схемы 160 изменяется на '1'.

ЦП 130 записывает значение управления (например, '1') для изменения доступа к первой памяти 110 на доступ ко второй памяти 120 в третий регистр 165-1. В этом случае доступ к первой памяти 110 автоматически заменяется на доступ ко второй памяти 120, когда ЦП 130 осуществляет доступ к первой памяти 110. Поскольку дешифрованный код копируется во вторую память 120 заранее, ЦП 130 может его использовать.

Четвертая схема 170 может содержать элемент ИЛИ для предоставления значения назначения, которое вводится через внешний контакт или третью память 140. ЦП 130 может определять, выполнять ли безопасную загрузку или нет, в соответствии со значением назначения, которое вводится через четвертую схему 170.

Мультиплексор 175 избирательно выдает выходное значение из второй памяти 120 или второй схемы 160 в шину 150.

Флэш-загрузчиком 180 называется флэш-память для хранения загрузчика. Флэш-загрузчик 180 загружает частный загрузчик, хранящийся в энергонезависимой памяти 200, когда выполняется обычная загрузка. ЦП 130 выполняет обычную загрузку с применением флэш-загрузчика 180.

Контроллер DDR 185 представляет собой контроллер, который управляет чтением/записью (R/W) данных во внешней DDR-памяти 400. Как описано выше, система 100 на кристалле может быть реализована в различных формах и может применяться совместно с энергонезависимой памятью 200 и DDR-памятью 300. Детальная конфигурация системы 100 на кристалле не ограничивается проиллюстрированным на фиг. 7, и может быть осуществлена в различных других формах. Другой примерный вариант осуществления системы 100 на кристалле будет подробно объяснен со ссылкой на прилагаемые чертежи.

Фиг. 8 представляет собой вид, иллюстрирующий пример схемы данных, которые хранятся в первой памяти 110. Обратимся к фиг. 8; в первой памяти 110 хранится код 910 аутентификации, заголовок 920 безопасного загрузчика и первый загрузчик 930.

Код аутентификации 910 может быть зашифрован и сохранен в соответствии с различными алгоритмами шифрования (например, DES, TDES, AES, SEED, RSA, ARIA и т.д.). Например, код аутентификации 910 может быть зашифрован (например, зашифрован с применением таких способов шифрования как DES, TDES, AES, SEED, RSA, ARIA и т.д.) и сохранен в соответствии с таким алгоритмом аутентификации, как HMAC-SHA256, HMAC-SHA1 и HMAC-MD5, в соответствии с описанным выше.

Заголовок 920 безопасного загрузчика может содержать информацию электронной подписи, величину смещения, метеорологическую информацию и идентификатор пользователя. Заголовок 920 безопасного загрузчика может быть зашифрован и сохранен с помощью одного из множества алгоритмов шифрования, таких как способ DES, способ TDES, способ AES, алгоритм SEED, способ RSA и алгоритм ARIA.

Первый загрузчик 930 может быть зашифрован и сохранен в зашифрованном состоянии в целях внутренней безопасности.

На фиг. 8 загрузчик 930 может быть установлен для запуска в соответствии с множеством инструкций NOP (то есть отсутствия операций) в целях внутренней безопасности.

Фиг. 9 представляет собой вид, иллюстрирующий пример карты 940 распределения памяти системы 100 на кристалле. Обратимся к фиг. 9; частный загрузчик хранится по конкретному адресу в первой памяти 110. Частный загрузчик может быть использован для обычной загрузки.

Если выполняется безопасная загрузка, ЦП 130 может загружать первый загрузчик, хранящийся в энергонезависимой памяти 200, в область 191 регистра (второй памяти 120) или конкретную область 192 второй памяти 120. ЦП 130 дешифрует первый загрузчик с применением ключа шифрования и копирует дешифрованный первый загрузчик в конкретную область 121 второй памяти 120. Вторая память 120 может быть предоставлена с одной или более областями, такими как секция 122 RW для чтения/записи, из которых данные могут быть считаны или в которые данные могут быть записаны, и область 123 общего назначения.

Как описано выше, система 100 на кристалле может обрабатывать зашифрованные данные внешней энергонезависимой памяти 200 с использованием различных внутренних запоминающих устройств.

Производитель электронного устройства или поставщик услуг, который использует электронное устройство, может иметь потребность в безопасном хранении его/ее секретного ключа в электронном устройстве. Секретный ключ может быть использован для различных целей. Например, секретный ключ может быть использован в шифровании некоторых или всех областей ядра, или в создании безопасного канала связи между электронным устройством и производителем, или между электронным устройством и поставщиком услуг. Первая память 110 или третья память 140 системы 100 на кристалле может быть реализована посредством применения памяти OTP, и в ней может храниться описанный выше секретный ключ.

Система 100 на кристалле в соответствии с описанными выше различными вариантами осуществления может применяться в электронных устройствах различных типов. Например, система на кристалле может применяться в устройстве формирования изображений, таком как принтер, многофункциональное периферийное устройство, факсимильный аппарат или сканер.

В соответствии с примерным вариантом осуществления, устройство формирования изображений может содержать множество расходных блоков (например, автоподатчик бумаги, блок зарядки, лазерное сканирующее устройство, блок проявки, блок переноса, блок закрепления, блок выпуска бумаги, блок сканирования и привод сканирования и контроллер. Контроллер выполняет задачу формирования изображения с применением расходных блоков. Если микросхема CRUM (контроля заменяемого пользователем блока) установлена в расходном блоке, контроллер может обновлять данные, которые записаны на микросхеме CRUM, в соответствии с задачей формирования изображения.

Контроллер может содержать энергонезависимую память (например, энергонезависимую память 200) и систему на кристалле (например, систему 100 на кристалле). В энергонезависимую память могут записываться зашифрованные данные. Если устройство формирования изображений включается, система на кристалле выполняет безопасную загрузку с использованием зашифрованных данных, которые хранятся в энергонезависимой памяти, и, если безопасная загрузка завершилась, управляет устройством формирования изображений в соответствии с командами пользователя.

Фиг. 10 представляет собой блок-схему, иллюстрирующую пример устройства формирования изображений. Обратимся к фиг. 10; устройство 1000 формирования изображений содержит контроллер 1100, запоминающее устройство 1200, пользовательский интерфейс 1300, блок 1400 связи, источник 1500 питания и множество расходных блоков 1600-1 - 1600-n.

Запоминающее устройство 1200 может содержать накопитель на жестком диске (HDD) или другие запоминающие устройства (например, твердотельный накопитель (SSD), запоминающий элемент, и т.д.). Запоминающее устройство 1200 не обязательно реализуется посредством использования внутренней памяти, и может быть реализовано посредством использования внешней памяти, которая съемно устанавливается в устройство 1000 формирования изображений.

Пользовательский интерфейс 1300 может принимать различные команды выбора от пользователя. Пользовательский интерфейс 1300 может включать в себя панель дисплея и по меньшей мере одну кнопку. В данном случае панель дисплея может быть реализована посредством сенсорного экрана. По меньшей мере одна кнопка может быть реализована как часть сенсорного экрана. Пользовательский интерфейс 1300 может предоставлять различные экраны UI, и пользователь может вводить различные пользовательские команды путем непосредственного прикосновения к экрану UI или путем манипуляций с кнопкой пользовательского интерфейса 1300.

Блок 1400 связи может быть соединен с внешним устройством через сеть или локальную сеть (LAN), и может принимать данные и команды. То есть блок 1400 связи может быть соединен с ПК(персональный компьютер)-хостом через локальный интерфейс или может быть соединен с множеством внешних устройств проводным или беспроводным образом через сеть. Стандарт 802.11 IEEE США, европейский стандарт гипер LAN или японский стандарт MMAC-PC могут быть использованы в качестве стандарта беспроводной связи. Помимо этого, для связи могут быть использованы различные способы связи, такие как Wifi, Bluetooth, Zigbee или коммуникация ближнего поля (NFC).

Источник 1500 питания подает питание к каждому из элементов устройства 1000 формирования изображений (например, контроллеру 1100 и множеству расходных блоков 1600-1 - 1600-n). В частности, источник 1500 питания получает общее питание переменным током от внешнего источника (AC_IN), преобразует его в питание постоянным током с электрическим потенциалом, соответствующим каждому элементу, используя такие элементы, как преобразователь, инвертор и выпрямитель, и выдает питание постоянным током (DC_OUT).

Контроллер 1100 содержит систему на кристалле 100 и энергонезависимую память 200. Соответственно, если устройство 1000 формирования изображений включается, контроллер 1100 выполняет безопасную загрузку. Безопасная загрузка может быть выполнена различными способами в соответствии с описанным выше (например, как описано выше в связи с фиг. 5-6). Система 100 на кристалле, которая выполняет безопасную загрузку, и ее операции были описаны выше, и поэтому избыточное объяснение не приводится.

Если загрузка завершается, контроллер 1100 управляет общим функционированием устройства формирования изображений в соответствии с данными и командами внешнего устройства, которое соединяется с устройством формирования изображений через блок 1400 связи, или в соответствии с пользовательской командой выбора, которая вводится через пользовательский интерфейс 1300.

В частности, если команда печати выполняется в драйвере принтера, который установлен в PC-хосте или приложении, драйвер принтера PC-хоста генерирует данные печати путем преобразования соответствующего документа в заранее определенный язык принтера. Контроллер 1100 получает такие данные печати через блок 1400 связи. Контроллер 1100 преобразует данные печати в растровое изображение, состоящее из "0" и "1" с использованием таблицы полутонов, и управляет множеством расходных блоков 1600-1 - 1600-n с целью печати растрового изображения на бумаге.

Могут быть представлены различные типы расходных блоков 1600-1 - 1600-n в соответствии с типом устройства формирования изображений 100. Если устройство формирования изображений представляет собой лазерное многофункциональное периферийное устройство, то расходные блоки 1600-1 - 1600-n могут представлять собой автоподатчик бумаги, блок зарядки, лазерное сканирующее устройство, блок проявки, блок переноса, блок закрепления, блок выпуска бумаги, блок сканирования и привод сканирования. По меньшей мере некоторые расходные блоки 1600-1 - 1600-n могут содержать микросхемы CRUM 1610-1 - 1610-n.

Микросхемы CRUM 1610-1 - 1610-n могут быть реализованы путем использовании только памяти, или могут быть реализованы путем включения памяти и ЦП. Микросхемы CRUM 1610-1 - 1610-n могут иметь OS (операционная система) отдельно от контроллера 1100, и могут сами выполнять инициализацию, используя OS. Микросхемы CRUM 1610-1 - 1610-n выполняют аутентификацию в отношении контроллера 1100, и, если аутентификация завершается успешно, могут выполнять передачу данных шифрования. Микросхемы CRUM 1610-1 - 1610-n могут быть реализованы в различных формах.

Фиг. 11 представляет собой блок-схему, подробно иллюстрирующую пример микросхемы CRUM. Обратимся к фиг. 11; микросхема CRUM 1610 содержит память 1611 OS, энергонезависимую память 1612, энергозависимую память 1613, ЦП 1614, блок 1615 криптографии (криптоблок), детектор 1616 несанкционированного доступа и интерфейс 1617. Хотя это не проиллюстрировано, микросхема CRUM 1610 может содержать блок синхронизации для выдачи сигнала синхронизации и генератор случайных чисел для генерации случайных значений для аутентификации. Однако некоторые из элементов могут быть удалены и могут быть включены в другой элемент. Криптоблок 1615 может представлять собой интегральную схему, процессор, программируемую пользователем матрицу логических элементов, программируемое логическое устройство и/или любое подходящее устройство для осуществления криптографии (например, чтобы зашифровать данные, и/или дешифровать данные) в соответствии с примерными вариантами осуществления общей идеи настоящего изобретения, изложенными в настоящем описании. Детектор 1616 несанкционированного доступа может представлять собой интегральную схему, сенсор, процессор, программируемую пользователем матрицу логических элементов, программируемое логическое устройство и/или любое подходящее устройство для обнаружения несанкционированного доступа к расходному блоку (например, первому расходному блоку 1600-1, второму расходному блоку 1600-2, и т.д.) в соответствии с примерными вариантами осуществления общей идеи настоящего изобретения, изложенными в настоящем описании. Интерфейс 1617 может представлять собой любой подходящий интерфейс связи для передачи данных и приема данных, например, от главного контроллера 1100 (например, как проиллюстрировано на фиг. 10), который содержит систему 100 на кристалле.

В памяти 1611 OS хранится операционная система (OS) для управления расходными блоками 1600-1 - 1600-n. В энергонезависимой памяти 1612 могут храниться один или более элементов данных и программ для расходного блока (например, любого из расходных блоков 1600-1 - 1600-n) и микросхемы CRUM (например, одной или более из первой микросхемы CRUM 1610-1 - 1610-n). В частности, в энергонезависимой памяти 1612 может храниться информация электронной подписи, один или более кодов программы шифрования, информация о состоянии расходных блоков (например, информация об остатке тонера, информация о времени замены, числе копий, которые могут быть напечатаны), уникальная информация (например, информация о производителе, информация о дате производства, серийный номер, название модели продукта) и информация о послепродажном обслуживании. ЦП 1614 может загружать программу и данные, которые хранятся в энергонезависимой памяти 1612, в энергозависимую память 1613, и может использовать их.

Криптоблок 1615 поддерживает алгоритм шифрования и может запустить выполнение ЦП 1614 аутентификации в отношении контроллера 1100, представленного в устройстве формирования изображений, или выполнение зашифрованной передачи (например, через интерфейс 1617). В частности, криптоблок 1615 может выполнять аутентификацию или передачу данных шифрования с применением описанных выше различных алгоритмов шифрования.

Детектор 1616 несанкционированного доступа защищает и/или предотвращает различные попытки физического взламывания. То есть детектор 1616 несанкционированного доступа контролирует и защищает расходный блок (например, любой из расходных блоков 1600-1 - 1600-n) от несанкционированного доступа. В частности, детектор 1616 несанкционированного доступа контролирует рабочую среду, например, напряжение, температуру, давление, свет и частоту, и, если имеется попытка, такая как Decap (то есть вскрытие корпуса микросхемы CRUM 1610, чтобы определить, как она работает) или любое другое действие несанкционированного доступа, детектор 1616 несанкционированного доступа удаляет или физически блокирует данные (например, данные, хранящиеся в энергозависимой памяти 1613, энергонезависимой памяти 1612, и/или памяти 1611 OS). В этом случае, детектор 1616 несанкционированного доступа может содержать отдельный источник питания.

Посредством предоставления криптоблока 1615 и детектора 1616 несанкционированного доступа в соответствии с описанным выше, можно поддерживать систематическую безопасность данных с применением как аппаратного обеспечения, так и программного обеспечения.

Интерфейс 1617 соединяет ЦП 1614 и контроллер 1100 друг с другом через проводной и/или беспроводной канал связи. В частности, интерфейс 1617 может быть реализован с применением последовательного интерфейса, или проводного и/или беспроводного интерфейса.

Как описано выше, система 100 на кристалле может быть установлена в устройство формирования изображений и может выполнять безопасную загрузку. Соответственно, система на кристалле может минимизировать и/или препятствовать возможности постороннего лица по изменению процесса загрузки или взлому данных расходного блока (например, любого из расходных блоков 1600-1 - 1600-n). Система 100 на кристалле может быть установлена и применена в различных электронных устройствах помимо устройства формирования изображений.

Как описано выше, система 100 на кристалле первоначально использует первую память 110 и впоследствии функционирует, используя вторую память 120. Важная информация, такая как различные данные, связанные с инициализацией, ключ шифрования для дешифрования кодов и коды начальной загрузки и т.д., может храниться в первой памяти 110. Таким образом, когда использование первой памяти 110 завершено, необходимо минимизировать и/или предотвратить изменение данных первой памяти 110, или предотвратить утечку данных из первой памяти 110, путем блокирования доступа к первой памяти 110. Для этого, как описано в связи с фиг. 7, в пределах системы 100 на кристалле могут быть дополнительно подготовлены вторая схема 160 и третья схема 165. Однако конфигурация системы 110 на кристалле не ограничивается указанным, и могут быть внесены различные изменения.

Фиг. 12 представляет собой блок-схему последовательности операций, иллюстрирующую способ использования памяти в системе на кристалле в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения. Согласно фиг. 12, когда питание устройства формирования изображений включается в операции S1210, ЦП 130 осуществляет доступ к первой памяти 110 в операции S1220. Соответственно, ЦП 130 выполняет различные операции посредством использования программы и данных, которые хранятся в первой памяти, в операции S1230. Например, когда данные для инициализации хранятся в первой памяти 110, ЦП 130 выполняет инициализацию устройства формирования изображений посредством использования данных для инициализации. Когда инициализация завершается, ЦП 130 считывает зашифрованные данные из энергонезависимой памяти 200 и дешифрует данные с применением ключа шифрования, хранящегося в первой памяти 110. ЦП 130 сохраняет дешифрованные данные во второй памяти 120.

Операция загрузки выполняется посредством использования второй памяти 120, а не использования первой памяти 110. Таким образом, ЦП 130 больше не должен использовать первую память 110. Поэтому ЦП 130 блокирует доступ к первой памяти 110 в операции S1240. ЦП 130 выполняет следующую операцию посредством доступа ко второй памяти 120 в операции S1250.

Так как операция дешифрования и операция загрузки конкретно описываются в различных примерных вариантах осуществления, как показано выше, то повторные описания не приводятся.

Фиг. 13 представляет собой вид, иллюстрирующий примерный вариант осуществления общей идеи системы на кристалле по настоящему изобретению. Как проиллюстрировано на фиг. 13, система 100 на кристалле может содержать первый контроллер памяти 1310, второй контроллер памяти 1320 и блок 1330 коммутации. Система 100 на кристалле может содержать первую память 110, вторую память 120, ЦП 130, третью память 140, шину 150, контроллер DDR 185, и схемы 155, 160, 165, 170, 175 и 180. Другие элементы кроме контроллера 1310 первой памяти, контроллера 1320 второй памяти, и блока 1330 коммутации конкретно описываются выше в связи с фиг. 7, и поэтому их повторное описание не приводится.

Контроллер 1310 первой памяти представляет собой элемент и/или устройство для управления доступом к первой памяти 110. Контроллер 1310 первой памяти может представлять собой интегральную схему, процессор, программируемое логическое устройство, программируемую пользователем матрицу логических элементов и/или любое подходящее устройство для управления доступом к первой памяти 110 в соответствии с примерными вариантами осуществления общей идеи настоящего изобретения. Когда сигнал считывания принят от ЦП 130, контроллер 1310 первой памяти считывает данные из области, определяемой сигналом считывания, в пределах первой памяти 110, и выдает данные ЦП 130. Контроллер 1320 второй памяти может управлять доступом ко второй памяти 120. Контроллер 1320 второй памяти может выполнять чтение и запись, так же как и контроллер 1310 первой памяти. Контроллер 1320 второй памяти может представлять собой интегральную схему, процессор, программируемое логическое устройство, программируемую пользователем матрицу логических элементов и/или любое подходящее устройство для управления доступом к первой памяти 110 в соответствии с примерными вариантами осуществления общей идеи настоящего изобретения.

Блок 1330 коммутации представляет собой элемент и/или электронное устройство для избирательного соединения контроллера 1310 первой памяти или контроллера 1320 второй памяти с шиной 150. То есть, как описано выше, ЦП 130 использует первую память 110, пока данные энергонезависимой памяти 200 дешифруются после включения устройства (например, устройства формирования изображений, электронного устройства и т.д.), и после этого ЦП 130 использует вторую память 120. Блок 1330 коммутации соединяет контроллер 1310 первой памяти с шиной 150, когда ЦП 130 находится в состоянии функционирования, для использования первой памяти 110, и соединяет контроллер 1320 второй памяти с шиной 150, когда использование первой памяти 110 завершается.

Как проиллюстрировано на фиг. 13, контроллер 1310 первой памяти содержит регистр 1311. Значение управления доступом к первой памяти 110 сохраняется в регистре 1311. Значение управления доступом представляет собой значение, указывающее включение или блокирование доступа к первой памяти 110. Значение управления доступом может включать одно или более битовых значений.

Как проиллюстрировано на фиг. 13, данные из регистра 1311, встроенного в контроллер 1310 первой памяти, подаются на вход третьей схемы 165. В отличие от примерного варианта осуществления общей идеи настоящего изобретения, проиллюстрированного на фиг. 7, третья схема 165 не содержит инвертор и логический элемент ИЛИ. Вместо этого третья схема 165 может содержать логический элемент "И" 165-2. Логический элемент "И" 165-2 выдает '1', когда все из значений хранения, хранящихся в третьем регистре 165-1, значения хранения, хранящегося в регистре 1311, и выходного значения, выдаваемого четвертой схемой 170, равны '1'. Таким образом, когда ЦП 130 сохраняет значение управления доступом, которое имеет значение '0' в регистре 1311, третья схема 165 выдает '0' независимо от значения хранения, хранящегося в третьем регистре 165-1, и выходного значения, выдаваемого четвертой схемой 170.

Когда система 100 на кристалле включается и/или получает питание от источника питания, значение управления доступом, например '1', сохраняется в регистре 1311. Таким образом, третья схема 160 выдает '1' в блок 1330 коммутации. Блок 1330 коммутации содержит первый мультиплексор 1331, второй мультиплексор 1332 и третий мультиплексор 1333. Первый мультиплексор 1331 избирательно выдает одно из значений, которые выдаются контроллером 1310 первой памяти и контроллером 1320 второй памяти, на шину 150 согласно значению, которое выдается третьей схемой 160. Фиг. 13 иллюстрирует структуру схемы, при которой, когда третьей схемой 165 выдается '1', на шину 150 передается значение, которое выдает контроллер 1310 первой памяти, и, когда третьей схемой 165 выдается '0', на шину 150 передается значение, которое выдает контроллер 1320 второй памяти. Второй мультиплексор 1332 и третий мультиплексор 1333 выдают значение, которое подается с шины 150 в соответствии с выходным значением третьей схемы 165, контроллеру 1310 первой памяти или контроллеру 1320 второй памяти.

В соответствии с примерными вариантами осуществления общей идеи настоящего изобретения, проиллюстрированными и описанными в связи с фиг. 12 и 13, первой памяти 110, такой как MASKROM, и второй памяти 120, такой как внутренняя память, может быть выделено одно и то же адресное пространство, и они могут использоваться избирательно согласно порядку загрузки. То есть, после того как код, сохраненный в первой памяти 110, был использован в начале, на заключительном этапе только команда шины '1' и ввод данных '1' могут иметь силу в пределах блока 1330 коммутации путем установки регистра 1311. Даже если ЦП, 130 осуществляет доступ к тому же самому адресу, то подсоединяется вторая память 120, и таким образом, безопасность первой памяти 110 повышается и/или усиливается. Хотя на фиг. 13 проиллюстрировано, что регистр 1311 располагается внутри контроллера 1310 первой памяти, это, естественно, не является ограничением. Например, регистр 1311 может быть размещен вне контроллера 1310 первой памяти, и различные логические схемы, которые могут быть установлены на начальной стадии (то есть установлены однократно и не изменяться впоследствии), могут быть встроены в контроллер 1310 первой памяти вместо регистра 1311.

Если блок 1330 коммутации подготовлен (например, посредством установки регистра 1311 и/или в соответствии с выходными сигналами контроллера 1320 второй памяти и/или второй схемы 160), то для системы 100 на кристалле отсутствует необходимость непосредственного соединения с ведомыми устройствами, такими как контроллер 1310 первой памяти и контроллер 1320 второй памяти, с использованием шины 150, и, таким образом, размер логической схемы можно сократить.

В примерных вариантах осуществления общей идеи настоящего изобретения, обсуждаемых выше, система 100 на кристалле выполняет инициализацию или безопасную загрузку путем использования различных кодов программного обеспечения, хранящихся в первой памяти 110, третьей памяти 140 и т.д. Однако существует риск того, что злоумышленник может осуществить взлом непосредственно ROM внутри системы 100 на кристалле, например, первой памяти 110, посредством процесса вскрытия. Таким образом, в примерном варианте осуществления общей идеи настоящего изобретения код программного обеспечения может быть сгенерирован в системе 100 на кристалле автономно, и может использоваться в соответствии с подробно обсуждаемым ниже.

Фиг. 14 представляет собой блок-схему, иллюстрирующую систему 100 на кристалле в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения. Как проиллюстрировано на фиг. 14, система 100 на кристалле содержит первую память 110, вторую память 120, ЦП 130, третью память 140, шину 150 и блок 1400 генерации кода. Первая память 110, вторая память 120, ЦП 130, третья память 140 и шина 150 подробно описаны выше.

Блок 1400 генерации кода генерирует один или более кодов программного обеспечения. ЦП 130 может использовать не только данные, хранящиеся в первой, второй или третьей памяти 110, 120, и 140, но также и код программного обеспечения, сгенерированный в блоке 1400 генерации кода.

Как описано выше, различные данные, такие как код для инициализации системы, код для дешифрования зашифрованного кода внешней программы и ключ шифрования, и т.д., могут храниться в первой памяти 110. Блок 1400 генерации кода может генерировать, по меньшей мере, часть данных, которые хранятся в первой памяти 110, и предоставлять данные ЦП 130.

ЦП 130 может выполнять инициализацию посредством использования кода программного обеспечения, сгенерированного в блоке 1400 генерации кода, наряду с данными, хранящимися в первой памяти 110. Например, не все коды инициализации хранятся в первой памяти 110, и, в некоторых примерных вариантах осуществления общей идеи настоящего изобретения, некоторые не хранящиеся коды генерируются блоком 1400 генерации кода. При этом ЦП 130 может выполнять инициализацию, получая некоторые программные коды от блока 1400 генерации кода, приближаясь к вектору сброса и считывая код инициализации в первой памяти 110. В примерном варианте осуществления общей идеи настоящего изобретения, ЦП 130 может выполнять различные операции путем использования значения, сохраненного в первой памяти 110 и выходных данных блока 1400 генерации кода. Поэтому, даже если первая память 110 взламывается, третье лицо (то есть хакер) не сможет узнать весь код инициализации.

Фиг. 15 иллюстрирует систему на кристалле в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения. Как проиллюстрировано на фиг. 15, система 100 на кристалле не содержит первую память 110, и содержит блок 1400 генерации кода. Система 100 на кристалле содержит вторую память 120, ЦП 130 и третью память 140, и шину 150, которые подробно описываются выше. Блок 1400 генерации кода может генерировать различные данные, такие как код инициализации системы, дешифрованный код, ключ шифрования, и т.д. ЦП 130 вводит адрес в блок 1400 генерации кода, и получает код программного обеспечения, который сгенерирован в соответствии с адресом. Таким образом, в примерном варианте осуществления, проиллюстрированном на фиг. 15, который не содержит первую память 110, ЦП 130 может выполнять инициализацию путем использования кодов, сгенерированных блоком 1400 генерации кода (например, в отличие от использования кодов, сохраненных в памяти, такой как первая память 110).

Фиг. 16 иллюстрирует примерный вариант осуществления блока 1400 генерации кода, который применяется в примерном варианте осуществления общей идеи настоящего изобретения, проиллюстрированном на фиг. 14 и/или фиг. 15. Как проиллюстрировано на фиг. 16, блок 1400 генерации кода включает в себя декодер адресов 1410, множество регистров 1420-1, 1420-2 - 1420-n и мультиплексор 1430. Декодер адресов 1410 может представлять собой интегральную схему, процессор, программируемую пользователем матрицу логических элементов, программируемое логическое устройство и/или любое подходящее устройство для декодирования адреса. Регистры 1420-1, 1420-2 и 1420-n могут быть регистрами в одном или более запоминающих устройствах.

Декодер 1410 адресов получает адрес от ЦП 130 и декодирует адрес. Мультиплексор 1430 получает декодированный адрес в декодере 1410 адресов и осуществляет доступ к одному или более регистров из множества регистров 1420-1 - 1420-n в соответствии с адресом.

В частности, мультиплексор 1430 выборочно считывает значения регистра (например, значения данных в одном или более регистрах), сохраненные в регистре из множества регистров 1420-1 - 1420-n, определяемом адресом, декодированным в декодере 1410 адресов, и генерирует код программного обеспечения путем объединения значений регистров.

Фиг. 17 иллюстрирует примерный вариант осуществления блока генерации кода в соответствии с представленной общей концепцией изобретения. Блок 1700 генерации кода, проиллюстрированный на фиг. 17, может использоваться вместо блока 1400 генерации кода, проиллюстрированного на фиг. 14 и/или 15. Как проиллюстрировано на фиг. 17, блок 1700 генерации кода включает в себя декодер 1710 адресов, первый блок 1720 генерации, множество регистров инструкций 1730-1 - 1730-n и 1750-1 - 1750-m, множество мультиплексоров инструкций 1740 и 1760, средство 1770 форматирования кода, второй блок 1780 генерации, множество регистров 1790-1 - 1790-x данных, мультиплексор 1800 данных и мультиплексор 1810.

Декодер адресов 1710 получает адрес от ЦП 130 и декодирует адрес, и выдает первому блоку 1720 генерации и второму блоку 1780 генерации декодированный адрес. Первый блок 1720 генерации считывает адрес инструкции из декодированного адреса в декодере 1710 адресов и генерирует адрес инструкции. Адрес инструкции, сгенерированный в первом блоке 1720 генерации, выдается множеству мультиплексоров инструкций (например, мультиплексорам 1740 и 1760 инструкций, соответственно).

Хотя фиг. 17 иллюстрирует только два мультиплексора 1740 и 1760 инструкций, число мультиплексоров инструкций может быть изменено в соответствии с числом групп различных регистров инструкций. То есть регистры инструкций могут быть сгруппированы согласно числу выходных сигналов от первого блока 1720 генерации, который выдает адреса инструкций, и мультиплексор могут быть предоставлен для каждой группы регистров инструкций.

Регистры инструкций 1730-1 - 1730-n и 1750-1 - 1750-m могут быть сгруппированы в соответствии с полем, составляющим код программного обеспечения, и разделены на множество групп. В регистрах инструкций 1730-1 - 1730-n и 1750-1 - 1750-m может храниться определенный код, составляющий код программного обеспечения, или по меньшей мере один бит данных. Фиг. 17 иллюстрирует регистр инструкций, разделенный суммарно на n групп (например, регистры 1730-1, 1730-2 и 1730-n).

Множество мультиплексоров 1740 и 1760 инструкций, выборочно считывают значение регистра (например, значение данных в регистре) из регистра инструкций (например, из регистров инструкций 1730-1 - 1730-n и 1750-1 - 1750-m), которые сопоставляются в соответствии с адресом инструкции. Например, когда первый, третий, четвертый и пятый регистры в пределах первой группы, и второй, третий, пятый и шестой регистры в пределах n-ой группы, определены в адресе инструкции, первый мультиплексор 1740, который соответствует первой группе, считывает значение регистра из первого, третьего, четвертого и пятого регистров 1740-1, 3, 4 и 5. Первый мультиплексор 1760, который соответствует n-ой группе, считывает значение регистра из второго, третьего, пятого и шестого регистров 1750-2, 3, 5 и 6. Считанные значений передаются средству 1770 форматирования кода.

Средство 1770 форматирования кода комбинирует значения, которые считываются из множества мультиплексоров 1740 и 1760 инструкций, и генерирует код (то есть инструкции). Средство 1770 форматирования кода может представлять собой, например, схему и/или любое подходящее устройство для объединения значений и генерации инструкций и/или кода.

Второй блок 1780 генерации генерирует адрес данных, основанный на адресе, который декодируется в декодере 1710 адресов. Второй блок 1780 генерации предоставляет мультиплексору 1800 данных сгенерированный адрес данных.

Мультиплексор 1800 данных выборочно считывает значения регистра (например, значение данных в регистре) из множества регистров 1790-1 - 1790-x данных в соответствии с адресом данных. Различные данные делятся на части и могут храниться в одном или более из множества регистров 1790-1 - 1790-x данных. Одно или более значений регистра (например, значения данных, хранящиеся в регистрах 1790-1 - 1790-x), которые получает мультиплексор 1800 данных, мультиплексируются мультиплексором 1800 данных и выдаются мультиплексору 1810.

Мультиплексор 1810 может объединить код, сгенерированный в средстве 1770 форматирования кода, и данные, сгенерированные в мультиплексоре 1800 данных, и сгенерировать код программного обеспечения. Сгенерированный код программного обеспечения может быть передан ЦП 130 или может быть скопирован во вторую память 120.

ЦП 130 может выполнять не только операцию инициализации, но также и различные другие операции посредством использования кода программного обеспечения, сгенерированного в блоке 1400 генерации кода.

Фиг. 18 и 19 представляют собой изображения, иллюстрирующие примерные варианты осуществления общей идеи настоящего изобретения для кода программного обеспечения, который генерируется в блоке генерации кода (например, блоке 1400 генерации кода, проиллюстрированном на фиг. 14 и 15, и/или блоке 1700 генерации кода, проиллюстрированном на фиг. 17).

Согласно фиг. 18, код программного обеспечения может содержать множество полей 1910-1950. Различные данные, такие как условие (проиллюстрировано как поле 1910 на фиг. 18), Opcode (то есть код операции, который определяет операцию, которая должна быть выполнена; проиллюстрировано как поле 1920 на фиг. 18), и значение регистра (например, значения в любом из регистров 0, 1, или 2, проиллюстрированные в полях 1930, 1940 и 1950, соответственно, на фиг. 18) могут храниться в одном или более полях 1910-1950. Блок 1400 генерации кода или блок 1700 генерации кода может генерировать код программного обеспечения, как проиллюстрировано на фиг. 18, считывая значения регистра из группы регистров, соответствующей каждому полю, и объединяя значения (например, путем использовании мультиплексора).

Фиг. 19 иллюстрирует примерный вариант осуществления общей идеи кода программного обеспечения по настоящему изобретению. В то время как код программного обеспечения на фиг. 18 может содержать поля, которые имеют один и тот же размер, код программного обеспечения на фиг. 19 может содержать поля, размеры которых отличаются друг от друга. Как проиллюстрировано на фиг. 19, подготавливается поле 1960 условия и поле 1970 Opcode (то есть кода операции), при этом другие данные могут храниться в отдельном поле 1980. То есть поле 1960 условия и поле 1970 кода операции могут иметь одинаковый размер, и отдельное поле 1980 может иметь другой (то есть больший) размер. Альтернативно, все поля из поля 1960 условия, поля 1970 кода операции и отдельного поля 1980 могут иметь разный размер.

Код программного обеспечения может быть сконфигурирован в различных формах. Обычно, код программного обеспечения делится в соответствии с определенными секциями, такими как командная часть, операторная часть и т.д. Эти команды в соответствующем разделе обычно аналогичны, и, таким образом, если код оптимизируется и устройство аппаратного обеспечения создается с учетом оптимизированного кода, можно уменьшить размер устройства аппаратного обеспечения. То есть код может быть оптимизирован с целью ускорения его выполнения, или таким образом, чтобы он выполнялся с меньшим объемом памяти или других ресурсов, или требовал меньшей мощности. Устройство аппаратного обеспечения, такое как система 100 на кристалле, можно уменьшить в размере, например, снижая объем и/или размер памяти (например, первой памяти 110, второй памяти 120 и/или третьей памяти 140). Устройство (например, система 100 на кристалле) также может потреблять меньше мощности, когда выполняется оптимизированный код.

Как описано в приведенных выше различных примерных вариантах осуществления общей идеи настоящего изобретения, программа шифрования или данные шифрования хранятся во внешней памяти 200 (проиллюстрированной, например, на фиг. 1, 3, 4, 7 и 13-15), которая не встраивается в систему 100 на кристалле. Внешняя память 200 может представлять собой долговременную флэш-память, из которой данные могут быть считаны или в которую данные могут быть записаны.

Флэш-память (то есть энергонезависимая память 200) может иметь различные типы в соответствии со спецификацией интерфейса и внутренней структурой. В частности, флэш-память может представлять собой последовательную и/или параллельную флэш-память на основании ЦП 130 и спецификации интерфейса, и может представлять собой флэш-память НЕ-И или НЕ-ИЛИ, основанную на внутренней структуре флэш-памяти.

Фиг. 20 иллюстрирует строение контактов флэш-памяти НЕ-ИЛИ 2000. Флэш-память НЕ-ИЛИ 2000 может использоваться в качестве долговременной флэш-памяти 200, проиллюстрированной на фиг. 1, 3, 4, 7 и 13-15. Как проиллюстрировано на фиг. 20, флэш-память НЕ-ИЛИ 2000 может содержать различные контакты, такие как контакт 2010 WE#. Контакт 2010 WE# используется для управления операцией записи шины командного интерфейса. То есть, когда контакт 2010 WE# принимает сигнал, операция записи может быть выполнена на флэш-памяти НЕ-ИЛИ 2000.

Фиг. 21 иллюстрирует строение контакта флэш-памяти НЕ - И 2100. Флэш-память НЕ - И 2100 может использоваться в качестве долговременной флэш-памяти 200, проиллюстрированной на фиг. 1, 3, 4, 7 и 13-15. Как проиллюстрировано на фиг. 21, флэш-память НЕ - И 2100 может содержать различные контакты, такие как контакт 2110 WE#. Контакт 2110 WE# используется для приема сигнала записи для флэш-памяти НЕ - И 2100.

Фиг. 22 иллюстрирует строение контакта последовательного периферийного интерфейса (SPI) флэш-памяти 2200. Флэш-память SPI 2200 может использоваться в качестве долговременной флэш-памяти 200, проиллюстрированной на фиг. 1, 3, 4, 7 и 13-15. Согласно фиг. 22, флэш-память SPI 2200 содержит контакт 2210 W# для операции записи.

ЦП 130 может выполнять операцию записи посредством использования контакта, встроенного в каждую флэш-память (например, энергонезависимую память 200, которая может являться флэш-памятью НЕ-ИЛИ 2000, флэш-памятью НЕ - И 2100, и/или флэш-памятью SPI 2200). Как описано выше, флэш-память шифруется, но значение ключа шифрования системы 100 на кристалле может быть обнаружено. Когда значение ключа шифрования обнаруживается, есть риск, что встроенное микропрограммное обеспечение, хранящееся во флэш-памяти, может быть изменено. Таким образом, необходимо заранее минимизировать возможность того и/или воспрепятствовать тому, чтобы флэш-память была изменена. В соответствии с примерным вариантом осуществления общей идеи настоящего изобретения, может быть деактивирован контакт записи внешней памяти. То есть контакт 2010 WE# флэш-памяти НЕ-ИЛИ 2000, контакт 2110 WE# флэш-памяти НЕ - И 2100 и/или контакт W# 2210 флэш-памяти SPI 2200 может быть деактивирован, чтобы минимизировать возможность и/или воспрепятствовать возможности изменения флэш-память посредством неразрешенной операции (то есть операции взламывания).

Фиг. 23 представляет собой вид, иллюстрирующий систему 100 на кристалле и структуру внешней памяти в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения. Фиг. 23 иллюстрирует ситуацию, когда флэш-память НЕ-ИЛИ (такая как флэш-память НЕ-ИЛИ 2000, проиллюстрированная на фиг. 20) используется в качестве внешней памяти (например, энергонезависимой памяти 200). В настоящем описании система 100 на кристалле может также содержать контроллер 2310 флэш-памяти НЕ-ИЛИ для управления флэш-памятью НЕ-ИЛИ 2000. Контроллер 2310 флэш-памяти НЕ-ИЛИ может представлять собой, например, схему и/или интегральную схему для управления операциями флэш-памяти НЕ-ИЛИ 2000, такими как операция чтения и/или операция записи.

ЦП 130 может считывать различные данные и программное обеспечение, которые хранятся во флэш-памяти НЕ-ИЛИ 2000, через контроллер 2310 флэш-памяти НЕ-ИЛИ. ЦП 130 может выдавать сигнал записи во флэш-память НЕ-ИЛИ 2000 через контроллер 2310 флэш-памяти НЕ-ИЛИ.

Однако, как проиллюстрировано на фиг. 23, контакт 2010 записи флэш-памяти НЕ-ИЛИ 2000 может быть деактивирован. Процесс деактивации может быть выполнен различными способами. Фиг. 23 иллюстрирует состояние, в котором контакт записи связывается с деактивирующим терминалом 2320, который подготавливается на главной плате, в которой установлена система 100 на кристалле, и флэш-памятью НЕ-ИЛИ 2000. При этом, даже если сигнал записи выдается в контроллере 2310 флэш-памяти НЕ-ИЛИ, сигнал записи не может быть подан на вход контакта 2010 записи, и, таким образом, невозможно изменить данные флэш-памяти НЕ-ИЛИ 2000, когда контакт 2010 записи деактивирован.

Фиг. 23 иллюстрирует только флэш-память НЕ-ИЛИ 2000, но, как описано выше, энергонезависимая память, то есть внешняя память (например, энергонезависимая память 200) может быть сконфигурирована в различных формах, таких как флэш-память НЕ - И 2100 или флэш-память SPI 2200, и т.д., и одна система 100 на кристалле может быть соединена с различными типами флэш-памяти. Контакт записи может быть деактивирован в этих флэш-памятях 2100 и 2200, таким образом, блокируя операцию изменения данных.

В соответствии с примерным вариантом осуществления общей идеи настоящего изобретения, когда система на кристалле встречает особое условие, может быть выполнена запись во внешнюю память.

Фиг. 24 представляет собой блок-схему последовательности операций, иллюстрирующую способ управления памятью в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения. В соответствии с примерным вариантом осуществления, система 100 на кристалле может содержать контроллер памяти для управления доступом к внешней долговременной памяти.

Когда событие записи происходит в операции S2410, контроллер памяти получает сигнал записи и первое значение ключа от ЦП 130 в операции S2420. Пользователь может ввести первое значение ключа, которое получает система 100 на кристалле, через пользовательский интерфейс (например, пользовательский интерфейс 1300, проиллюстрированный на фиг. 10), или первое значение ключа может быть введено ЦП 130 автоматически. ЦП 130 может случайным образом выбрать одно значение из предварительно сохраненного множества значений ключа, и может выдать номер выбранного значения ключа контроллеру памяти, или может выдать само значение ключа.

Когда первое значение ключа принято в операции S2420, контроллер памяти (например, контроллер 2310 флэш-памяти НЕ-ИЛИ, проиллюстрированный на фиг. 23) сравнивает полученное первое значение ключа с предварительно сохраненным вторым значением ключа в операции S2430. Если в операции S2440 определяется, что эти два значения ключа совпадают друг с другом, контроллер памяти (например, контроллер 2310 флэш-памяти НЕ-ИЛИ, проиллюстрированный на фиг. 23) выполняет операцию записи во внешнюю память (например, флэш-память НЕ-ИЛИ 2000, проиллюстрированную на фиг. 23) в операции S2450. Если полученное первое значение ключа не совпадает с предварительно сохраненным вторым значением ключа в операции S2430, то контроллер памяти блокирует и/или предотвращает операцию записи во внешнюю память.

Фиг. 25 представляет собой вид, иллюстрирующий примерный вариант осуществления контроллера памяти, который выполняет способ управления памятью в соответствии с проиллюстрированным на фиг. 24. Согласно фиг. 25, контроллер 2500 памяти содержит блок 2510 передачи сигналов, хранилище 2520 значения ключа, блок 2530 сравнения, контроллер 2540 доступа к памяти, процессор 2550 сигналов и блок 2560 генерации сигналов. В примерных вариантах осуществления общей идеи настоящего изобретения, контроллер 2500 памяти может быть заменен контроллером 2310 флэш-памяти НЕ-ИЛИ, проиллюстрированным на фиг. 23. Блок 2510 передачи сигналов может представлять собой схему, интегральную схему и/или любое подходящее устройство для сравнения и передачи сигналов в соответствии с примерными вариантами осуществления общей идеи настоящего изобретения, изложенными в настоящем описании. Хранилище 2520 значения ключа может представлять собой запоминающее устройство. Блок 2530 сравнения может представлять собой схему, интегральную схему, программируемое логическое устройство или программируемую пользователем матрицу логических элементов, и/или любое подходящее устройство для сравнения сигналов.

Блок 2560 генерации сигналов может представлять собой схему, интегральную схему, программируемое логическое устройство или программируемую пользователем матрицу логических элементов, и/или любое подходящее устройство для генерации сигналов (например, сигнала синхронизации, сигнала выбора ведомого устройства и/или сигнала выбора микросхемы и т.д.) в соответствии с примерными вариантами осуществления общей идеи настоящего изобретения. Блок 2560 генерации сигналов может принимать и генерировать сигналы с целью взаимодействия с одним или более устройствами, коммуникационно связанными с интерфейсом, таким как последовательный периферийный интерфейс (SPI). Блок 2560 генерации сигналов может взаимодействовать, например, с сенсорами, устройствами управления, интерфейсами связи, памятью и/или дисплеем, которые могут быть установлены, например, на главной плате 300, проиллюстрированной на фиг. 4 и описанной выше. Конечный автомат 2561 может генерировать и выдавать одно или более операционных состояний блока генерации сигналов во время взаимодействия с одним или более устройствами.

Как проиллюстрировано на фиг. 25, блок передачи 2510 сигнала принимает различные сигналы через шину (например, шину 150, проиллюстрированную на фиг. 4 и 13-15), такую как APB (усовершенствованная периферийная шина), и передает сигналы блоку 2530 сравнения или процессору 2550 сигналов и т.д. В частности, когда первое значение ключа передано от ЦП 130, блок 2510 передачи сигналов сохраняет первое значение ключа в регистре 2511 и предоставляет блоку 2530 сравнения сохраненное первое значение ключа.

По меньшей мере одно второе значение ключа может быть сохранено в хранилище 2520 значений ключа.

Когда первое значение ключа передано через блок 2510 передачи сигналов, блок 2530 сравнения сравнивает второе значение ключа, сохраненное в хранилище 2520 значений ключа, с полученным вторым значением ключа.

Блок 2530 сравнения может выдать сигнал, такой как '0' или '1', в соответствии с результатом сравнения. То есть блок 2530 сравнения может сравнить первое значение ключа и второе значение ключа, и выдать сигнал в соответствии с тем, является ли первое значение ключа таким же, как второе значение ключа (например, блоком 2530 сравнения может быть выдана '1'), и выдать другой сигнал, когда первое значение ключа отличается от второго сигнала ключа (например, блоком 2530 сравнения может быть выдан '0').

Процессор 2550 сигналов может выборочно вывести сигнал записи, переданный от ЦП 130 к внешней долговременной памяти (например, долговременной памяти 200, проиллюстрированной на фиг. 1, 3, 4, 7 и 13-15, и/или флэш-памяти NOR 2000, проиллюстрированной на фиг. 23), в соответствии с результатом сравнения, произведенного блоком 2530 сравнения. Сигнальный процессор 2550 может передать сигнал, который считывается из внешней долговременной памяти 200, контроллеру 2540 доступа к памяти.

Процессор 2550 сигналов может содержать первый переключатель 2551-1 для управления операцией записи, второй переключатель 2551-2 для управления операцией чтения, преобразователь 2552 для преобразования отправленного или принятого сигнала в заранее определенный формат данных, и блок 2553 фильтрации и т.д. Первый переключатель 2551-1 или второй переключатель 2551-2 могут представлять собой одну или более логических схем. Преобразователь 2552 и блок 2553 фильтрации могут представлять собой схемы, интегральные схемы и/или любое подходящее устройство для преобразования сигнала или фильтрации сигнала, соответственно, согласно примерным вариантам осуществления, изложенным в настоящем описании. Таким образом, контроллер 2540 доступа к памяти и преобразователь 2552 могут быть подсоединены или блокированы в соответствии с выходным значением результата сравнения блока 2530 сравнения.

Например, когда первое значение ключа, которое сохранено в регистре 2511, отличается от второго значения ключа, которое сохранено в хранилище 2520 значений ключа, блок 2530 сравнения выдает '0', и когда первое значение ключа совпадает со вторым значение ключа, блок 2530 сравнения может выдавать '1'. Когда блок 2530 сравнения выдает '0', первый переключатель 2551-1 может отключить соединение с преобразователем 2552. Соответственно, когда первый переключатель 2551-1, который управляет операцией записи, отключает соединение с преобразователем 2552, вывод не может осуществляться. То есть соединение между контроллером 2540 доступа к памяти и преобразователем 2552 сигнального процессора 2550 отключается первым переключателем 2551-1. Альтернативно, может выдаваться фиксированное значение, например, только '0', даже если произвольное значение вводится контроллером 2540 доступа к памяти. Когда '1' выводится блоком 2530 сравнения, первый переключатель 2551-1 передает выходной сигнал от контроллера 2540 доступа к памяти преобразователю 2552.

Преобразователь 2552 преобразует вывод сигнала записи из контроллера 2540 доступа к памяти в данные памяти и передает данные во внешнюю долговременную память 200 (например, как проиллюстрировано на фиг. 1, 3, 4, 7 и 13-15), или, альтернативно, во флэш-память ИЛИ-НЕ 2000, проиллюстрированную на фиг. 23.

Блок 2553 фильтрации фильтрует данные, которые считаны из энергонезависимой памяти 200 (например, как проиллюстрировано на фиг. 1, 3, 4, 7 и 13-15, или альтернативно, из флэш-памяти ИЛИ-НЕ 2000, проиллюстрированной на фиг. 23), и передает данные преобразователю 2552. Преобразователь 2552 предоставляет второму переключателю 2551-2 переданные данные. Второй переключатель 2551-2 сконфигурирован для передачи входных значений от преобразователя 2552 контроллеру 2540 доступа к памяти. Когда '0' выдается блоком 2530 сравнения, второй переключатель 2555-2 также отключает соединение между преобразователем 2552 и контроллером 2540 доступа к памяти, и когда блоком 2530 сравнения выдается '1', второй переключатель 2555-2 соединяет преобразователь 2552 и контроллер 2540 доступа к памяти. Фиг. 25 иллюстрирует второй переключатель 2551-2 вместе с первым переключателем 2551-1, но, в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения, второй переключатель 2551-2 может быть исключен, с тем чтобы операция чтения всегда была доступна. То есть в примерных вариантах осуществления общей идеи настоящего изобретения второй переключатель 2551-2 может быть исключен, с тем чтобы данные могли быть считаны из энергонезависимой памяти 200 или флэш-памяти ИЛИ-НЕ 2000, и считанные данные могли быть предоставлены преобразователю 2552 и контроллеру 2540 доступа к памяти, с тем чтобы считанные данные могли быть предоставлены ЦП 130.

Контроллер 2540 доступа к памяти выполняет операцию записи или операцию чтения в отношении внешней памяти 200 (например, как проиллюстрировано на фиг. 1, 3, 4, 7 и 13-15, или, альтернативно, в отношении флэш-памяти ИЛИ-НЕ 2000, проиллюстрированной на фиг. 23) согласно сигналу записи или сигналу считывания, который вводится через APB или AHB (усовершенствованная высокопроизводительная шина). Как описано выше, когда первое значение ключа, введенное ЦП 130 (и, например, сохраненное в регистре 2511 блока 2510 передачи сигналов) является таким же, как предварительно сохраненное второе значение ключа (например, сохраненное в хранилище 2520 значений ключа), контроллер 2540 доступа к памяти может записать различные данные в энергонезависимая память 200 (или, альтернативно, во флэш-память ИЛИ-НЕ 2000, проиллюстрированную на фиг. 23). В противном случае контроллер 2540 доступа к памяти не может записать данные в энергонезависимую память 200, даже если контроллер 2540 доступа к памяти выдает сигнал записи.

Как описано выше, в соответствии с различными примерными вариантами осуществления общей идеи настоящего изобретения, попытки изменения программы или данных, которые хранятся в энергонезависимой памяти, могут быть минимизированы и/или предотвращены.

В соответствии с примерными вариантами осуществления общей идеи настоящего изобретения, описанными выше, зашифрованный код может храниться в энергонезависимой памяти. Когда значение ключа не существует, этот код не может быть дешифрован. Однако, когда значение ключа обнаруживается, зашифрованный код, сохраненный в энергонезависимой памяти, может использоваться, будучи дешифрованным, и может быть использован путем генерации кода встроенного микропрограммного обеспечения, который модифицировался случайным образом. Даже если значение ключа не может быть считано из устройства формирования изображений, может произойти "утечка" значения ключа у производителя устройства формирования изображений. Примерные варианты осуществления общей идеи настоящего изобретения, изложенные в настоящем описании, минимизируют возможность того и/или препятствуют тому, чтобы код встроенного микропрограммного обеспечения был изменен случайным образом хакером, когда значение ключа было обнаружено.

Фиг. 26 представляет собой блок-схему последовательности операций, иллюстрирующую способ управления печатью в соответствии с примерным вариантом осуществления общей идеи настоящего изобретения. Как проиллюстрировано на фиг. 26, хост-устройство 2600 взаимодействует с устройством 1000 формирования изображений, и управляет операциями устройства 1000 формирования изображений. Передача между хост-устройством 2600 и устройством 1000 формирования изображений может происходить через проводной и/или беспроводной канал связи. Хост-устройство 2600 может являться сервером, персональным компьютером, ноутбуком, планшетным компьютером, смартфоном, переносным медиапроигрывателем, цифровым фотоаппаратом и/или любым другим электронным устройством.

Как описано выше, когда значение ключа, сохраненное в устройстве 1000 формирования изображений, обнаруживается, можно изменить встроенное микропрограммное обеспечение. Таким образом, хакер может выполнять шифрование и дешифрование случайным образом, или выполнять шифрование и/или дешифрование в соответствии с командами хакера, и, таким образом, становится трудно управлять устройством формирования изображений. В данном примерном варианте осуществления общей идеи настоящего изобретения хост-устройство 2600 сравнивает шифрованный текст, используемый устройством 1000 формирования изображений, с предварительно сохраненным шифрованным текстом, и может определить, находится ли устройство 1000 формирования изображений в нормальном состоянии или во взломанном состоянии.

В частности, хост-устройство 2600 сохраняет шифрованный текст в операции S2610. Шифрованный текст содержит программу, такую как встроенное микропрограммное обеспечение, которое шифрует предварительно заданное значение ключа. Встроенное микропрограммное обеспечение может быть обновлено (например, обновляться часто, обновляться периодически и т.д.) в целях улучшения емкости или возможностей устройства 1000 формирования изображений, и при этом генерируется его новая версия. Таким образом, шифрованный текст изменяется в соответствии с версией встроенного микропрограммного обеспечения, но шифрованный текст одной и той же версии встроенного микропрограммного обеспечения всегда одинаков. Когда значение ключа обнаруживается, и встроенное микропрограммное обеспечение взламывается, модифицированное встроенное микропрограммное обеспечение обычно работает нормально, но шифрованный текст модифицированного встроенного микропрограммного обеспечения изменяется на другую версию, которая визуально отличается от обычного текста. Хост-устройство 2600 может сопоставлять шифрованный текст встроенного микропрограммного обеспечения, зашифрованный обычным образом, с информацией о версии встроенного микропрограммного обеспечения, и сохранять их. Шифрованный текст и информация о версии могут быть сохранены наряду с драйвером принтера хост-устройства 2600.

Когда происходит событие (например, случайно произошедшее событие), хост-устройство 2600 может запросить шифрованный текст и информацию о версии у устройства 1000 формирования изображений в операции S2615. В данном случае событие может включать в себя различные события, такие как событие, для которого приближается предопределенный временной интервал, событие, при котором вводится команда печати, событие, при котором устанавливается драйвер принтера, событие, при котором происходит передача между хост-устройством 2600 и устройством 1000 формирования изображений, и событие, когда устройство 100 формирования изображений включается и завершается загрузка. Помимо этих событий, событие может включать различные ситуации, такие как проверка, является ли шифрованный текст поддельным или нет.

Когда запрос на шифрованный текст и информацию о версии принимается от хост-устройства 2600 в операции S2615, при этом загрузка завершается в операции S2620, устройство 1000 формирования изображений передает предварительно сохраненный шифрованный текст и информацию о версии хост-устройству 2600 в операции S2625.

Хост-устройство 2600 может получать шифрованный текст и информацию о версии от устройства 1000 формирования изображений. Хост-устройство 2600 может сохранять информацию о различных версиях и шифрованный текст, соответствующий информации о версии. Хост-устройство 2600 сравнивает шифрованный текст, соответствующий полученной информации о версии, с полученным шифрованным текстом из множества предварительно сохраненной информации о версиях в операции S2630.

После сравнения шифрованного текста, соответствующего полученной информации о версии, с полученным шифрованным текстом из множества предварительно сохраненной информации о версиях в операции S2630, если эти два шифрованных текста не совпадают друг с другом, то определяется, что шифрованный текст является поддельным, в операции S2635. Если определено, что шифрованный текст подделан, хост-устройство 2600 регистрирует устройство 1000 формирования изображений в списке принтеров в операции S2645. Принтеры из списка принтеров могут быть заблокированы относительно выполнения операции печати, в результате чего устройство 1000 формирования изображений становится недоступным.

Если определено, что шифр не является поддельным, хост-устройство 2600 переходит в состояние ожидания печати в операции S2640. Когда пользователем вводится команда печати (например, хост-устройство 2600 получает команду печати от пользователя), хост-устройство 2600 передает данные печати и команду задания печати устройству 1000 формирования изображений, и выполняет печать.

Фиг. 27 представляет собой блок-схему, иллюстрирующую примерный вариант осуществления общей идеи настоящего изобретения для хост-устройства, выполняющего способ управления печатью, проиллюстрированный на фиг. 26. Как проиллюстрировано на фиг. 27, хост-устройство 2600 содержит запоминающее устройство 2610, контроллер 2620 и блок 2630 связи. Хост-устройство 2600 может представлять собой ПК, ноутбук, мобильный телефон, PDA, планшетный ПК, и сервер, и т.д. Запоминающее устройство 2610 может представлять собой устройство памяти, и контроллер может представлять собой ЦП, процессор, интегральную схему, программируемое логическое устройство, программируемую пользователем матрицу логических элементов, и/или любое подходящее устройство контроллера. Блок связи может представлять собой любое устройство для получения и передачи данных через проводной и/или беспроводной канал связи.

В запоминающем устройстве 2610 может храниться шифрованный текст. Шифрованный текст может быть сохранен в запоминающем устройстве 2610 отдельно (то есть отдельно от других данных, хранящихся в запоминающем устройстве 2610) в соответствии с версиями различных встроенных микропрограммных обеспечений. Когда запоминающее устройство 2610 соединяется с одним или более устройствами (то есть хост-устройство 2600, содержащее запоминающее устройство 2610, взаимодействует с одним или более устройствами через блок 2630 связи), шифрованный текст, содержащий идентификационную информацию, такую как название модели, наименование производителя, серийный номер, название встроенного микропрограммного обеспечения, версию встроенного микропрограммного обеспечения, и т.д. может быть сохранен индивидуально для каждого устройства.

Когда происходит заранее определенное событие, блок 2630 связи может принять шифрованный текст, хранящийся в устройстве формирования изображений. Как описано выше, заранее определенное событие может включать в себя проверку, является ли шифрованный текст поддельным или нет, запрос шифрованного текста у устройства формирования изображений и получение шифрованного текста. При этом наряду с шифрованным текстом может быть получена информация о версии и идентификационная информация.

Контроллер 2620 считывает шифрованный текст, соответствующий версии встроенного микропрограммного обеспечения устройства 1000 формирования изображений, из множества шифрованных текстов, хранящихся в запоминающем устройстве 2610, путем использования информации о версии и идентификационной информации и т.д., которые получены от устройства 1000 формирования изображений. Контроллер 2620 сравнивает считанный шифрованный текст с полученным шифрованным текстом. Если эти два шифрованных текста совпадают друг с другом, контроллер 2620 определяет, что шифрованный текст не является поддельным, и контроллер 2620 переводит устройство 1000 формирования изображений в состояние ожидания печати. Если эти два шифрованных текста отличаются друг от друга, контроллер 2620 определяет, что шифрованный текст является поддельным, и контроллер 2620 блокирует использование устройства 1000 формирования изображений.

Фиг. 28 и 29 представляют собой изображения, иллюстрирующие примерные варианты осуществления общей идеи настоящего изобретения для простого текста и шифрованного текста, соответствующих версиям, которые отличаются друг от друга. На фиг. 28, когда простой текст (версия 1) 2820 шифруется значением ключа 2810 согласно версии 1 в операции S2830, генерируется шифрованный текст (версия 1) 2840. Шифрованный текст (версия 1) 2840 может быть сохранен в энергонезависимой памяти. В соответствии с различными примерными вариантами осуществления общей идеи настоящего изобретения, изложенными выше, когда выполняется загрузка, или когда должны быть выполнены различные операции, ЦП 130 считывает код шифрования, хранящийся в энергонезависимой памяти (например, в энергонезависимой памяти 200), то есть шифрованный текст (версия 1) 2840. ЦП 130 дешифрует шифрованный текст (версия 1) 2840 путем использования значения ключа 2810 в операции S2850, которое является тем же самым значением ключа (например, ключа 2810), которое использовалось при шифровании в операции S2830, и генерирует простой текст (версия 1) 2820, и использует простой текст (версия 1) 2820.

Фиг. 29 представляет собой примерный вариант осуществления простого текста и шифрованного текста в соответствии с версией 2. Даже если предполагается, что значение ключа 2810 на фиг. 29 является тем же самым, что и значение ключа 2810 из версии 1, простой текст 2920 в соответствии с версией 2 отличается от простого текста 2820 версии 1, и, таким образом, шифрованный текст 2940 после шифрования в операции S2930 также отличается от версии 1. В операции S2950 шифрованный текст 2940 дешифруется ЦП 130 в операции S2950 с использованием значения ключа 2810 с целью генерации версии 2 простого текста 2920, с тем чтобы ЦП 130 мог использовать простой текст (версия 2) 2920.

Таким образом, шифрованный текст, соответствующий версии устройства, сохраняется в каждом устройстве формирования изображения и используется, при этом множество шифрованных текстов, соответствующих каждой из множества версий, может храниться в хост-устройстве 2600.

Фиг. 30 иллюстрирует состояние, в котором произошла утечка значения ключа и код был взломан. Шифрованный текст 3020 взломанного кода не является официально выпущенной версией, но является шифрованным текстом 3020, который был получен путем модификации оригинального текста хакером с целью генерации нового простого текста 3010 и последующего применения значения ключа 2810 (который был обнаружен и/или для которого произошла утечка) к простому тексту 3010 во время операций S2930 и S2950 шифрования и дешифрования, соответственно. То есть новый простой текст (то есть взломанный код) 3010 шифруется в операции S2930 с применением ключа 2810 с целью формирования шифрованного текста 3020. Шифрованный текст 3020 дешифруется в операции S2950 с применением ключа 2810 с целью формирования нового простого текста 3010 (то есть взломанного кода). Когда этот шифрованный текст 3020 сохранен в энергонезависимой памяти, ЦП 130 должен выполнить загрузку в соответствии с тем, что было предложено хакером, и, таким образом, будет трудно осуществлять обычное управление устройством формирования изображений. Однако в настоящем описании шифрованный текст не регистрируется в хост-устройстве 2600, и, таким образом, хост-устройство 2600 может определить, находится ли устройство 1000 формирования изображений в нормальном состоянии или во взломанном состоянии, путем проверки шифрованного текста.

В частности, когда информация о версии устройства 1000 формирования изображений не является предварительно сохраненной информацией о версии, или даже если она является предварительно сохраненной информацией о версии, но при этом шифрованный текст, соответствующий информации о версии, отличается от шифрованного текста устройства 1000 формирования изображений, контроллер 2620 определяет, что информация была взломана. Поэтому, контроллер 2620 блокирует использование соответствующего устройства 1000 формирования изображения.

В соответствии с данным примерным вариантом осуществления, даже когда значение ключа было обнаружено, модифицирование встроенного микропрограммного обеспечения хакером может быть минимизировано и/или предотвращено.

Когда устройство формирования изображений выполняет загрузку, главный контроллер, содержащий систему 100 на кристалле, может выполнять задачу, запрошенную пользователем, путем управления функционированием различных расходных блоков (например, расходных блоков в устройстве 1000 формирования изображений). Как описано на фиг. 10, расходные блоки 1600-1 - 1600-n могут быть подготовлены по-разному в соответствии с типом устройства 1000 формирования изображений. Один или больше расходных блоков 1600-1 - 1600-n могут содержать микросхемы CRUM 1610-1 - 1610-n.

Микросхемы CRUM 1610-1 - 1610-n могут выполнять аутентификацию с главным контроллером 1100 (то есть содержащим систему 100 на кристалле), и, когда аутентификация завершается, может быть выполнена передача данных шифрования. Аутентификация может быть выполнена различными способами.

В соответствии с примерным вариантом осуществления процесса аутентификации, если главный контроллер (например, главный контроллер 1100) должен выполнить аутентификацию, запрос на аутентификацию может быть передан микросхеме CRUM (например, по меньшей мере одной из микросхем CRUM 1610-1 - 1610-n). При этом главный контроллер может передать первое значение по крайней мере одной микросхеме CRUM. Главный контроллер может генерировать первое значение случайным образом, или может использовать предварительно сохраненное фиксированное значение. Если принят запрос на аутентификацию, микросхема CRUM генерирует второе значение (например, значение может быть сгенерировано случайным образом), и микросхема CRUM генерирует сеансовый ключ с использованием первого значения и второго значения, и затем генерирует первый MAC (код аутентификации сообщения). Микросхема CRUM может передать сгенерированный первый MAC вместе со вторым значением основному контроллеру. Второе значение, так же как и первое значение, может быть случайным значением и/или случайным фиксированным значением. Когда принято второе значение, главный контроллер генерирует сеансовый ключ с использованием первого значения и второго значения, которые сгенерированы основным контроллером, и генерирует второй MAC с использованием сеансового ключа. Главный контроллер сравнивает второй MAC с первым MAC, и, когда они совпадают, определяет, что аутентификация для микросхемы CRUM завершена. В этом процессе главный контроллер проверяет информацию электронной подписи, хранящуюся в микросхеме CRUM, и выполняет аутентификацию.

Когда первый MAC отличается от второго MAC, главный контроллер (например, главный контроллер 1100, проиллюстрированный на фиг. 10), определяет, что аутентификация не была пройдена, и выполняет аутентификацию снова. При этом частота выполнения аутентификации может быть ограничена. Альтернативно, аутентификация может выполняться главным контроллером периодически.

Фиг. 31 представляет собой блок-схему последовательности операций, иллюстрирующую способ управления в соответствии с примерным вариантом осуществления. Как проиллюстрировано на фиг. 31, в операции S3110 определяется, была ли успешной аутентификация микросхемы CRUM. Если аутентификация микросхемы CRUM не была успешной, устройство формирования изображений сохраняет частоту отказов путем подсчета числа отказов в операции S3120. То есть в операции S3120 может подсчитываться и сохраняться количество выполнений аутентификации микросхемы CRUM (и число не пройденных аутентификаций). Главный контроллер (например, главный контроллер 1100, проиллюстрированный на фиг. 10) или система на кристалле (например, система 100 на кристалле) устройства формирования изображений (например, устройства 1000 формирования изображений, определяет, превышает ли частота отказов заранее определенную пороговую частоту, в операции S3130.

Если определено, что частота отказов превышает пороговую частоту в операции S3130, то функция штрафа выполняется в операции S3140. В частности, может быть выдано голосовое сообщение или визуальное сообщение, указывающее, что аутентификация не была пройдена, или устройство формирования изображений может быть включено, или переведено в состояние, в котором печать будет невозможна. Соединение между соответствующей микросхемой CRUM и главным контроллером может быть блокировано, и внешнее хост-устройство или другие серверные устройства могут быть уведомлены о том, что аутентификация не была пройдена.

Если определено, что частота меньше пороговой частоты в операции S3130, главный контроллер запрашивает у пользователя, хочет ли пользователь выполнить аутентификацию еще раз, в операции S3150. Таким образом, когда пользователь запрашивает повторную аутентификацию, главный контроллер выполняет аутентификацию описанным выше способом в операции S3160.

Если в операции S3110 было определено, что аутентификация была успешной, главный контроллер выполняет взаимодействие шифрования с соответствующей микросхемой CRUM в операции S3170. Например, главный контроллер может передавать зашифрованное коммуникационное сообщение путем шифрования различных данных и команд, и микросхема CRUM может ответить зашифрованным коммуникационным сообщением. В зашифрованном коммуникационном сообщении может использоваться MAC. Например, когда генерируется коммуникационное сообщение, которое будет передано микросхеме CRUM, главный контроллер генерирует третий MAC, применяя ключ и алгоритм шифрования для данных. К коммуникационному сообщению может добавлен третий MAC, и оно может быть передано микросхеме CRUM.

Микросхема CRUM извлекает разделы данных из полученного коммуникационного сообщения и генерирует четвертый MAC, применяя описанный выше ключ и алгоритм шифрования. Микросхема CRUM сравнивает третий MAC, считанный из переданного коммуникационного сообщения, и сгенерированный четвертый MAC. Если определено, что третий и четвертый MAC совпадают, то сообщение считается легитимным, и выполняется задача, соответствующая сообщению. Если определено, что третий и четвертый MAC отличаются друг от друга, то сообщение считается нелегитимным, и, следовательно, может быть проигнорировано.

Как описано выше, в соответствии с различными примерными вариантами осуществления общей идеи настоящего изобретения, взламывание устройства формирования изображений может быть минимизировано и/или предотвращено. В описанных выше различных примерных вариантах осуществления это для удобства объясняется на основании устройства формирования изображений, но примерные варианты осуществления общей идеи настоящего изобретения не ограничиваются функционированием устройства формирования изображений. То есть способы, приведенные в описанных выше различных примерных вариантах осуществления, могут быть применены к электронным устройствам различных типов, отличным от устройства формирования изображений.

Приведенные выше различные способы или операции могут быть выполнены программой, хранящейся на долговременном машиночитаемом носителе. Долговременный машиночитаемый носитель относится к носителю, на котором данные хранятся полупостоянным образом, в отличие от хранения данных в течение очень короткого периода времени, такому как регистр, кэш, и память, и который может считываться устройством. В частности, описанные выше различные приложения или программы могут быть сохранены на долговременном машиночитаемом носителе, таком как компакт-диск (CD), цифровой универсальный диск (DVD), жесткий диск, Диск Blu-ray, флэш-карта для универсальной последовательной шины (USB), карта памяти и постоянная память (ROM), и могут предоставляться.

В частности, долговременный машиночитаемый носитель, на котором хранится код программы, может выполнять инициализацию с использованием данных для инициализации, которые сохранены в первой памяти системы на кристалле. Когда выполняется инициализация, может выполняться дешифрование зашифрованных данных, которые хранятся в энергонезависимой памяти, с применением одного из множества ключей шифрования, которые хранятся в первой памяти. Дешифрованные данные могут находиться во второй памяти системы на кристалле, и операция загрузки может быть выполнена, в свою очередь, с использованием данных, которые хранятся во второй памяти.

Несмотря на то, что было показано и описано несколько вариантов осуществления общей идеи настоящего изобретения, специалистам в данной области техники будет понятно, какие изменения могут быть произведены в этих вариантах осуществления без отступления от принципов и формы общей концепции изобретения, объем которой определяется в пунктах прилагаемой формулы изобретения и их эквивалентах.

Похожие патенты RU2651213C2

название год авторы номер документа
СИСТЕМА НА КРИСТАЛЛЕ ДЛЯ ВЫПОЛНЕНИЯ БЕЗОПАСНОЙ НАЧАЛЬНОЙ ЗАГРУЗКИ, ИСПОЛЬЗУЮЩЕЕ ЕЕ УСТРОЙСТВО ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЯ И СПОСОБ ЕЕ ИСПОЛЬЗОВАНИЯ 2013
  • Дзанг Тае-Хонг
  • Ли Дзонг-Сеунг
  • Дзун Дзин-Хви
RU2628325C2
БЛОК, ИСПОЛЬЗУЮЩИЙ ОПЕРАЦИОННУЮ СИСТЕМУ, И УСТРОЙСТВО ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЙ, ИСПОЛЬЗУЮЩЕЕ ЕЕ 2009
  • Ли Дзае-Сунг
  • Ли Йоон-Тае
  • Чо Вон-Ил
RU2452009C1
CRUM-МИКРОСХЕМА И УСТРОЙСТВО ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЯ ДЛЯ ВЗАИМНОГО ОБМЕНА ДАННЫМИ И СПОСОБ ДЛЯ ЭТОГО 2012
  • Ли Дзае-Йоон
  • Воо Хонг-Рок
RU2627116C2
БЛОК, ИСПОЛЬЗУЮЩИЙ ОПЕРАЦИОННУЮ СИСТЕМУ, И УСТРОЙСТВО ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЯ, ИСПОЛЬЗУЮЩЕЕ ЭТОТ БЛОК 2009
  • Чо Вон-Ил
  • Ли Дзае-Сунг
  • Ли Йоон-Тае
RU2452006C1
КОМАНДА НА ШИФРОВАНИЕ СООБЩЕНИЯ С АУТЕНТИФИКАЦИЕЙ 2017
  • Грайнер Дэн
  • Следжел Тимоти
  • Цёллин Кристиан
  • Джекоби Кристиан
  • Папроцкий Володимир
  • Вишегради Тамаш
  • Бюндген Райнхард Теодор
  • Брэдбери Джонатан
  • Пураник Адитья Нитин
RU2727152C1
БЛОК, ИСПОЛЬЗУЮЩИЙ ОПЕРАЦИОННУЮ СИСТЕМУ, И УСТРОЙСТВО ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЯ, ИСПОЛЬЗУЮЩЕЕ ЕГО 2012
  • Ли Дзае-Сунг
  • Ли Йоон-Тае
  • Чо Вон-Ил
RU2611014C2
БЛОК, ИСПОЛЬЗУЮЩИЙ ОПЕРАЦИОННУЮ СИСТЕМУ, И УСТРОЙСТВО ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЯ, ИСПОЛЬЗУЮЩЕЕ ЕГО 2012
  • Ли Дзае-Сунг
  • Ли Йоон-Тае
  • Чо Вон-Ил
RU2598331C2
БЛОК, ИСПОЛЬЗУЮЩИЙ ОПЕРАЦИОННУЮ СИСТЕМУ, И УСТРОЙСТВО ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЯ, ИСПОЛЬЗУЮЩЕЕ ЕГО 2009
  • Ли Дзае-Сунг
  • Ли Йоон-Тае
  • Чо Вон-Ил
RU2471229C2
ИНИЦИАЛИЗАЦИЯ, ПОДДЕРЖАНИЕ, ОБНОВЛЕНИЕ И ВОССТАНОВЛЕНИЕ ЗАЩИЩЕННОГО РЕЖИМА РАБОТЫ ИНТЕГРИРОВАННОЙ СИСТЕМЫ, ИСПОЛЬЗУЮЩЕЙ СРЕДСТВО УПРАВЛЕНИЯ ДОСТУПОМ К ДАННЫМ 2003
  • Фостер Эрик М.
  • Холл Уилльям Э.
  • Росу Марсель-Каталин
RU2295834C2
СПОСОБЫ И СИСТЕМЫ ДЛЯ КРИПТОГРАФИЧЕСКОЙ ЗАЩИТЫ ОХРАНЯЕМОГО СОДЕРЖИМОГО 2002
  • Инглэнд Пол
  • Пейнадо Маркус
  • Уилт Николас П.
RU2308077C2

Иллюстрации к изобретению RU 2 651 213 C2

Реферат патента 2018 года СИСТЕМА НА КРИСТАЛЛЕ ДЛЯ ВЫПОЛНЕНИЯ БЕЗОПАСНОЙ ЗАГРУЗКИ, УСТРОЙСТВО ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЙ, ИСПОЛЬЗУЮЩЕЕ ЕЕ, И СПОСОБ ДЛЯ НЕГО

Группа изобретений относится к системам на кристалле, которые выполняют безопасную загрузку с использованием зашифрованных данных. Техническим результатом является повышение безопасности процесса начальной загрузки. Предложена система на кристалле для выполнения безопасной загрузки. Система содержит первую память для хранения множества сохраненных ключей шифрования, вторую память, третью память для хранения сохраненного значения установки ключа шифрования, а также содержит центральный процессор (ЦП) для дешифрования зашифрованных данных, которые хранятся во внешней энергонезависимой памяти, с применением ключа шифрования, соответствующего значению установки ключа шифрования, из множества ключей шифрования, для сохранения дешифрованных данных во второй памяти и для осуществления загрузки с использованием данных, хранящихся во второй памяти. При этом ЦП выполнен с возможностью изменения таблицы адресов первой памяти, так чтобы управлять второй памятью для доступа вместо первой памяти, если дешифрование является успешным. 3 н. и 11 з.п. ф-лы, 31 ил.

Формула изобретения RU 2 651 213 C2

1. Система на кристалле для выполнения безопасной загрузки, содержащая:

первую память для хранения множества сохраненных ключей шифрования;

вторую память;

третью память для хранения сохраненного значения установки ключа шифрования и

ЦП для дешифрования зашифрованных данных, которые хранятся во внешней энергонезависимой памяти, с применением ключа шифрования, соответствующего значению установки ключа шифрования, из множества ключей шифрования, для сохранения дешифрованных данных во второй памяти и для осуществления загрузки с использованием данных, хранящихся во второй памяти,

при этом ЦП выполнен с возможностью изменения таблицы адресов первой памяти, так чтобы управлять второй памятью для доступа вместо первой памяти, если дешифрование является успешным.

2. Система на кристалле по п. 1, в которой данные для инициализации хранятся в первой памяти отдельно от множества ключей шифрования,

при этом ЦП выполняет инициализацию с использованием данных для инициализации и дешифрует зашифрованные данные.

3. Система на кристалле по п. 2, дополнительно содержащая первую схему для ограничения доступа к ЦП через внешний порт на заранее определенный период времени.

4. Система на кристалле по п. 3, в которой, когда включается питание, первая схема выдает сигнал блокировки для блокирования доступа к ЦП и, когда завершается по меньшей мере дешифрование и аутентификация дешифрованных данных, первая схема выдает сигнал разблокировки для разблокирования доступа к ЦП.

5. Система на кристалле по п. 4, в которой первая схема содержит первый регистр,

при этом, когда по меньшей мере дешифрование и аутентификация дешифрованных данных завершается, ЦП изменяет значение хранения первого регистра.

6. Система на кристалле по п. 5, дополнительно содержащая вторую схему и третью схему для управления доступом к первой памяти.

7. Система на кристалле по п. 6, в которой вторая схема содержит второй регистр и третья схема содержит третий регистр,

при этом, когда завершается по меньшей мере дешифрование и аутентификация дешифрованных данных, ЦП сохраняет во втором регистре значение управления для блокирования доступа к первой памяти и сохраняет в третьем регистре значение управления для изменения доступа к первой памяти на доступ ко второй памяти.

8. Система на кристалле по п. 1, в которой ЦП выполняет бесконечный цикл, когда дешифрование завершается неудачно.

9. Система на кристалле по п. 1, в которой, когда включается питание, ЦП идентифицирует память, которая назначена посредством значения установки, хранящегося в третьей памяти, или внешнего контакта, и, когда назначена первая память, ЦП выполняет безопасную загрузку с использованием зашифрованных данных, и, когда назначена вторая память, ЦП выполняет обычную загрузку с использованием незашифрованных данных, которые хранятся в энергонезависимой памяти.

10. Система на кристалле по п. 1, в которой первая память представляет собой масочное постоянное запоминающее устройство (ROM) или однократно программируемое (OTP) ROM,

при этом вторая память представляет собой статическое оперативное запоминающее устройство (SRAM),

при этом третья память представляет собой память с плавкими перемычками (EFUSE).

11. Устройство формирования изображений, содержащее:

расходный блок, в котором установлена микросхема контроля заменяемого пользователем блока (CRUM), и

контроллер для выполнения задачи формирования изображения с применением расходного блока и для обновления данных, записанных на микросхему CRUM, в соответствии с задачей формирования изображения,

при этом контроллер содержит:

энергонезависимую память для записи зашифрованных данных и

систему на кристалле по п. 1.

12. Устройство формирования изображений по п. 11, в котором, когда произошло событие загрузки, система на кристалле ограничивает доступ к ЦП через внешний порт на заранее определенный период времени.

13. Способ загрузки устройства формирования изображений, содержащего энергонезависимую память и систему на кристалле по п. 1, при этом упомянутый способ содержит:

инициализацию устройства формирования изображений с использованием данных для инициализации, которые хранятся в первой памяти системы на кристалле;

когда инициализация выполнена, дешифрование зашифрованных данных, которые хранятся в энергонезависимой памяти, с применением одного из множества ключей шифрования, которые хранятся в первой памяти;

сохранение дешифрованных данных во второй памяти системы на кристалле;

выполнение операции загрузки с использованием данных, которые хранятся во второй памяти, и

изменение таблицы адресов первой памяти, так чтобы управлять второй памятью для доступа вместо первой памяти, если дешифрование является успешным.

14. Способ по п. 13, дополнительно содержащий:

когда устройство формирования изображений включается, идентификацию памяти, которая назначена в соответствии с входным значением, введенным через третью память системы на кристалле или внешний контакт, и,

когда назначенная память является первой памятью, блокирование доступа к ЦП системы на кристалле.

Документы, цитированные в отчете о поиске Патент 2018 года RU2651213C2

Колосоуборка 1923
  • Беляков И.Д.
SU2009A1
Способ обработки целлюлозных материалов, с целью тонкого измельчения или переведения в коллоидальный раствор 1923
  • Петров Г.С.
SU2005A1
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем 1924
  • Волынский С.В.
SU2012A1
Колосоуборка 1923
  • Беляков И.Д.
SU2009A1
УСТРОЙСТВО И СПОСОБ ДЛЯ МНОГОФУНКЦИОНАЛЬНОГО УСТРОЙСТВА АУТЕНТИФИКАЦИИ 2004
  • Гантман Александр
  • Роуз Грегори Дж.
  • Стинстра Джэк
  • Ноеренберг Джон В. Ii
RU2376629C2
СПОСОБ И СИСТЕМА РАСПРЕДЕЛЕННОЙ РАЗРАБОТКИ ПРОГРАММЫ ДЛЯ ПРОГРАММИРУЕМОГО ПОРТАТИВНОГО НОСИТЕЛЯ ИНФОРМАЦИИ 2002
  • Голльнер Михаэль
  • Кизингер Даниель
RU2289157C2

RU 2 651 213 C2

Авторы

Дзанг Тае-Хонг

Ли Дзонг-Сеунг

Дзун Дзин-Хви

Даты

2018-04-18Публикация

2013-12-05Подача