RU2456663C2 - Прогрессивная начальная загрузка для беспроводного устройства - Google Patents

Прогрессивная начальная загрузка для беспроводного устройства Download PDF

Info

Publication number
RU2456663C2
RU2456663C2 RU2010121177/08A RU2010121177A RU2456663C2 RU 2456663 C2 RU2456663 C2 RU 2456663C2 RU 2010121177/08 A RU2010121177/08 A RU 2010121177/08A RU 2010121177 A RU2010121177 A RU 2010121177A RU 2456663 C2 RU2456663 C2 RU 2456663C2
Authority
RU
Russia
Prior art keywords
code
code image
image
wireless device
security information
Prior art date
Application number
RU2010121177/08A
Other languages
English (en)
Other versions
RU2010121177A (ru
Inventor
Раджеев ПРАБХАКАРАН (US)
Раджеев ПРАБХАКАРАН
Аршад БЕБАЛ (US)
Аршад БЕБАЛ
Аджит Б. ПАТИЛ (US)
Аджит Б. ПАТИЛ
Лаура ЮАНЬ (US)
Лаура ЮАНЬ
Тарун КАРРА (US)
Тарун КАРРА
Том КУО (US)
Том КУО
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Publication of RU2010121177A publication Critical patent/RU2010121177A/ru
Application granted granted Critical
Publication of RU2456663C2 publication Critical patent/RU2456663C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Abstract

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

Description

УРОВЕНЬ ТЕХНИКИ
I. Область техники, к которой относится изобретение
Настоящее изобретение относится, в основном, к электронной аппаратуре и, в частности, к методам начальной загрузки беспроводного устройства при включении питания.
II. Уровень техники
Беспроводное устройство (например, сотовый телефон) обычно работает на основе программных кодов, которые управляют аппаратными средствами в беспроводном устройстве и поддерживают различные разработанные функции. Программные коды могут храниться в энергонезависимой памяти большого объема и могут загружаться в более быструю энергозависимую память при включении питания. Энергонезависимой памятью большого объема может быть флэш-память типа NAND (НЕ-И), которая может экономно хранить большое количество данных, но обращение к которой может выполняться только постранично. Страницей может быть наименьший блок данных, который может извлекаться из флэш-памяти типа NAND, и она может составлять четыре килобайта (KB) или некоторый другой размер. Более быстрой энергозависимой памятью может быть синхронное динамическое оперативное запоминающее устройство (SDRAM), которое может поддерживать произвольный доступ. Памяти могут выбираться так, чтобы обеспечивать требуемую емкость памяти и возможность доступа, и чтобы она была максимально экономичной.
Когда включается питание беспроводного устройства, все программные коды могут загружаться из энергонезависимой памяти большого объема в более быструю энергозависимую память. Когда все программные коды будут загружены, беспроводному устройству может быть разрешено принимать пользовательские вводы и выполнять выбранные пользователем функции. Количество программных кодов для загрузки при включении питания может быть большое, и время начальной загрузки может быть относительно продолжительным. Следовательно, пользователю может потребоваться продолжительный период времени ожидания перед тем как беспроводное устройство будет работающим.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В одном аспекте устройство включает в себя процессор, выполненный с возможностью программирования первого и второго образа кода в устройство памяти, используемое для беспроводного устройства, причем первый образ кода загружается из устройства памяти для начальной загрузки беспроводного устройства и для обеспечения работоспособности беспроводного устройства, второй образ кода загружается из устройства памяти, когда беспроводное устройство является работающим, для дополнительной начальной загрузки беспроводного устройства.
В другом аспекте способ включает в себя программирование первого образа кода в устройство памяти, используемое для беспроводного устройства, причем первый образ кода загружается из устройства памяти для начальной загрузки беспроводного устройства и обеспечения работоспособности беспроводного устройства. Способ дополнительно включает в себя программирование второго образа кода в устройство памяти, причем второй образ кода загружается из устройства памяти, когда беспроводное устройство является работающим, для дополнительной начальной загрузки беспроводного устройства.
В другом аспекте устройство включает в себя средство программирования первого образа кода в устройство памяти, используемое для беспроводного устройства, причем первый образ кода загружается из устройства памяти для начальной загрузки беспроводного устройства и обеспечения работоспособности беспроводного устройства, и средство программирования второго образа кода в устройство памяти, причем второй образ кода загружается из устройства памяти, когда беспроводное устройство является работающим, для дополнительной начальной загрузки беспроводного устройства.
В другом аспекте устройство включает в себя контроллер памяти, выполненный с возможностью загрузки первого образа кода из устройства памяти для начальной загрузки беспроводного устройства, и главный контроллер, выполненный с возможностью обеспечения работоспособности беспроводного устройства после загрузки первого образа кода, и в котором контроллер памяти дополнительно выполнен с возможностью загрузки второго образа кода из внешней памяти, когда беспроводное устройство является работающим, для дополнительной начальной загрузки беспроводного устройства.
В другом аспекте способ включает в себя загрузку первого образа кода из внешней памяти для начальной загрузки беспроводного устройства, обеспечение работоспособности беспроводного устройства после загрузки первого образа кода и загрузку второго образа кода из внешней памяти, когда беспроводное устройство является работающим, для дополнительной начальной загрузки беспроводного устройства.
В другом аспекте устройство включает в себя средство загрузки первого образа кода из внешней памяти для начальной загрузки беспроводного устройства, средство обеспечения работоспособности беспроводного устройства после загрузки первого образа кода и средство загрузки второго образа кода из внешней памяти, когда беспроводное устройство является работающим, для дополнительной начальной загрузки беспроводного устройства.
В другом аспекте компьютерный программный продукт включает в себя машиночитаемый носитель, содержащий код, вызывающий загрузку компьютером первого образа кода из внешней памяти для начальной загрузки беспроводного устройства, код, вызывающий обеспечение работоспособности компьютером беспроводного устройства после загрузки первого образа кода, и код, вызывающий загрузку компьютером второго образа кода из внешней памяти, когда беспроводное устройство является работающим, для дополнительной начальной загрузки беспроводного устройства.
В другом аспекте устройство включает в себя контроллер памяти, выполненный с возможностью извлечения множества страниц образа кода из внешней памяти, причем множество страниц ассоциируется с отдельной информацией безопасности, и аутентификации каждой страницы, извлеченной из внешней памяти, на основе информации безопасности для страницы.
В другом аспекте способ включает в себя извлечение множества страниц образа кода из внешней памяти, причем множество страниц ассоциируется с отдельной информацией безопасности, и аутентификацию каждой страницы, извлеченной из внешней памяти, на основе информации безопасности для страницы.
В другом аспекте устройство включает в себя средство извлечения множества страниц образа кода из внешней памяти, причем множество страниц ассоциируется с отдельной информацией безопасности, и средство аутентификации каждой страницы, извлеченной из внешней памяти, на основе информации безопасности для страницы.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 изображает блок-схему устройства беспроводной связи.
Фиг.2 изображает программирование сегментов без страничной организации и со страничной организацией флэш-памяти типа NAND.
Фиг.3 изображает второй образ кода и таблицу хеш-дайджестов.
Фиг.4 изображает загрузку и аутентификацию первого и второго образа кода.
Фиг.5 изображает модули в первом образе кода.
Фиг.6 изображает SDRAM в беспроводном устройстве.
Фиг.7 изображает 2-уровневую структуру, используемую для отслеживания состояния загрузки страниц второго образа кода.
Фиг.8 изображает процесс программирования устройства памяти.
Фиг.9 изображает процесс прогрессивной начальной загрузки беспроводного устройства при включении питания.
Фиг.10 изображает процесс аутентификации второго образа кода.
Фиг.11 изображает программирующую станцию.
ПОДРОБНОЕ ОПИСАНИЕ
Методы начальной загрузки, описанные в данном документе, могут использоваться для различных электронных устройств, таких как устройства беспроводной связи, карманные устройства, игровые устройства, вычислительные устройства, устройства бытовой электроники, компьютеры и т.д. Для ясности, методы описаны ниже для устройства беспроводной связи, имеющего память, такую как флэш-память типа NAND и SDRAM.
Фиг.1 изображает блок-схему устройства 100 беспроводной связи согласно аспекту изобретения, которым может быть сотовый телефон, персональный цифровой помощник (PDA), микротелефонная трубка, карманное устройство, беспроводный модуль, терминал, модем и т.д. Беспроводное устройство 100 может быть способно обеспечивать двустороннюю связь с одной или несколькими системами беспроводной связи по тракту передачи и тракту приема. В тракте передачи цифровая секция 120 может обеспечивать данные, подлежащие передаче беспроводным устройством 100. Передатчик (TMTR) 114 может обрабатывать данные для генерирования радиочастотного (РЧ) выходного сигнала, который может передаваться через антенну 112 на базовые станции. В тракте приема сигналы, передаваемые базовыми станциями, могут приниматься антенной 112 и подаваться на приемник (RCVR) 116. Приемник 116 может приводить в определенное состояние и оцифровывать принятый сигнал и подавать отсчеты на цифровую секцию 120 для дальнейшей обработки.
Цифровая секция 120 может включать в себя различные блоки обработки, интерфейса и памяти, которые поддерживают цифровую обработку для беспроводного устройства 100. В разработке, показанной на фиг.1, цифровая секция 120 включает в себя процессор 122 модема, центральный блок обработки (CPU)/компьютер 124 с сокращенным набором команд (RISC), главный контроллер 130, статическое оперативное запоминающее устройство (SRAM) 132, постоянное запоминающее устройство (ROM) 134, контроллер 140 флэш-памяти типа NAND и контроллер 142 SDRAM, все из которых могут обмениваться данными друг с другом по одной или нескольким шинам 160. Процессор 122 модема может выполнять обработку для передачи и приема данных, например, кодирование, модуляцию, демодуляцию, декодирование и т.д. CPU/RISC 124 может выполнять обработку общего назначения для беспроводного устройства 100, например, обработку для аудио, видео, графики и/или других приложений. Главный контроллер 130 может управлять работой различных блоков в цифровой секции 120. SRAM 132 может хранить программные коды и данные, используемые контроллерами и процессорами в цифровой секции 120. ROM 134 может хранить код 136 начальной загрузки и корневой открытый ключ 138. Код 136 начальной загрузки может выполнять первоначальную часть начальной загрузки при включении питания и может запускать загрузку программных кодов из флэш-памяти 150 типа NAND, когда включается питание беспроводного устройства 100. Корневой открытый ключ 138 может использоваться для функций обеспечения безопасности, например, для аутентификации программных кодов, загружаемых из флэш-памяти 150 типа NAND.
Контроллер 140 флэш-памяти типа NAND может способствовать пересылке данных между флэш-памятью 150 типа NAND и цифровой секцией 120. Контроллер 142 SDRAM может способствовать пересылке данных между SDRAM 152 и цифровой секцией 120. Главный контроллер 130 может управлять работой контроллера 140 флэш-памяти типа NAND и/или контроллера 142 SDRAM. Например, главный контроллер 130 может управлять непосредственной загрузкой программных кодов из флэш-памяти 150 типа NAND в SDRAM 152 во время начальной загрузки, например, когда включается питания беспроводного устройства 100.
Флэш-память 150 типа NAND и SDRAM 152 могут обеспечивать массовую память для блоков обработки в цифровой секции 120. Флэш-память 150 типа NAND может обеспечивать энергонезависимое запоминающее устройство для программных кодов и данных, используемых цифровой секцией 120. Флэш-память 150 типа NAND также может быть заменена другими типами энергонезависимой памяти, например, флэш-памятью типа NOR (НЕ-ИЛИ). SDRAM 152 может обеспечивать запоминающее устройство с возможностью произвольного доступа для программных кодов и данных, используемых цифровой секцией 120. SDRAM 152 также может быть заменена другими типами энергозависимой памяти, например, SRAM, динамическое оперативное запоминающее устройство (DRAM) и т.д.
Как правило, цифровая секция 120 может включать в себя любое количество блоков обработки, интерфейса и памяти. Цифровая секция 120 также может быть реализована одним или несколькими процессорами цифровой обработки сигналов (DSP), микропроцессорами, RISC-процессорами и т.д. Цифровая секция 120 может изготавливаться на одной или нескольких специализированных интегральных схемах (специализированных ИС) и/или интегральных схемах (ИС) некоторого другого типа.
Как показано на фиг.1, беспроводное устройство 100 может использовать архитектуру памяти с различными типами памяти. SDRAM 152 представляет собой энергозависимую память, которая теряет свои данные, если отключается питание. К SDRAM 152 обращение может выполняться произвольным образом, и оно обычно используется в качестве главной динамически выделяемой памяти. Флэш-память 150 типа NAND представляет собой энергонезависимую память, которая может хранить свои данные даже после отключения питания. Флэш-память 150 типа NAND имеет большую емкость, хорошее быстродействие для продолжительного доступа к памяти и низкую стоимость. Однако флэш-память 150 типа NAND имеет плохие рабочие характеристики для произвольного доступа к памяти, и обращение к ней обычно выполняется блоками страниц, постранично, причем каждая страница имеет определенный размер (например, 4 KB).
Архитектура памяти на фиг.1 включает в себя как флэш-память 150 типа NAND, так и SDRAM 152 и способна обеспечивать большую емкость памяти с произвольным доступом при уменьшенной стоимости. Для этой архитектуры памяти программные коды могут постоянно храниться в флэш-памяти 150 типа NAND. Программные коды могут управлять аппаратными средствами в беспроводном устройстве 100, а также поддерживать различные разработанные функции и особенности. При включении питания беспроводное устройство 100 может выполнять начальную загрузку, которая может вызывать пересылку программных кодов из флэш-памяти 150 типа NAND в SDRAM 152. Флэш-память 150 типа NAND может хранить большое количество программных кодов. Следовательно, количество времени для загрузки всех программных кодов из флэш-памяти 150 типа NAND в SDRAM 152 при включении питания может быть относительно большим.
В одном аспекте программные коды, подлежащие хранению в флэш-памяти 150 типа NAND, могут разделяться на множество образов кода, которые могут храниться в разных сегментах флэш-памяти 150 типа NAND. Сегмент также может упоминаться как раздел, секция и т.д. В одной разработке программные коды могут разделяться на первый и второй образы кода. Первый образ кода может включать в себя программные коды, используемые для поддержки базовой функциональной возможности беспроводного устройства 100, и может храниться в сегменте без страничной организации флэш-памяти 150 типа NAND. Второй образ кода может включать в себя остальные программные коды и может храниться в сегменте со страничной организацией флэш-памяти 150 типа NAND. Для прогрессивной начальной загрузки при включении питания сначала может загружаться первый образ кода из сегмента без страничной организации флэш-памяти 150 типа NAND в SDRAM 152. Когда первый образ кода будет загружен, беспроводное устройство 100 может быть включенным и может производить впечатление работающего для пользователя. Когда беспроводное устройство 100 является работающим, второй образ кода может загружаться из сегмента со страничной организацией флэш-памяти 150 типа NAND в SDRAM 152, например, в качестве фоновой задачи и/или по запросу, когда необходимо. Прогрессивная начальная загрузка может уменьшать количество времени для включения беспроводного устройства 100 при включении питания, что может улучшать опыт взаимодействия пользователя и обеспечивать другие преимущества.
Программные коды, хранимые в флэш-памяти 150 типа NAND, могут включать в себя коды, которые управляют работой беспроводного устройства 100, приложениями более высоких уровней, которые поддерживают различные разработанные особенности и функции, коды заводского испытания и/или другие типы кодов. Может быть желательным или необходимым удостовериться, авторизованы ли или нет для использования программные коды, хранимые в флэш-памяти 150 типа NAND, допуская исполнение программных кодов, которые авторизованы, и предотвращая исполнение программных кодов, которые не авторизованы. Кроме того, может быть желательным обеспечить безопасность эффективным образом для многочисленных образов кода, используемых для прогрессивной начальной загрузки.
В другом аспекте безопасность может эффективно обеспечиваться для прогрессивной начальной загрузки посредством выполнения аутентификации для всего первого образа кода и также для каждой страницы второго образа кода. Сначала может полностью загружаться первый образ кода из флэш-памяти 150 типа NAND при включении питания и может аутентифицироваться при загрузке. Второй образ кода может разделяться на страницы и загружаться постранично из флэш-памяти 150 типа NAND. Страницы второго образа кода могут загружаться в различных порядках, в зависимости от обращений к памяти. Каждая страница второго образа кода может аутентифицироваться индивидуально, позволяя выполнять загрузку и использование страницы безотносительно других страниц второго образа кода.
Фиг.2 изображает разработку флэш-памяти 150 типа NAND, которая включает в себя сегмент 210 без страничной организации и сегмент 220 со страничной организацией, согласно аспекту изобретения. В данной разработке сегмент 210 без страничной организации хранит первый образ 212 кода, таблицу 214 хеш-дайджестов, сертификат 216 и цифровую подпись 218. Сертификат 216 может включать в себя криптографическую информацию, используемую для аутентификации сегмента 210 без страничной организации и сегмента 220 со страничной организацией. Цифровая подпись 218 может генерироваться как по первому образу 212 кода, так и по хеш-таблице 214 и может использоваться для аутентификации этих двух частей. Первый образ 212 кода может включать в себя программные коды и/или данные, подлежащие загрузке из флэш-памяти 150 типа NAND до включения беспроводного устройства 100, например, коды для драйверов, пользовательского интерфейса (UI), модема и т.д. Таблица 214 может включать в себя криптографические хеш-дайджесты для индивидуальных страниц второго образа 222 кода. Второй образ 222 кода может включать в себя программные коды и/или данные, подлежащие загрузке из флэш-памяти 150 типа NAND после включения беспроводного устройства 100, например, коды для приложений более высоких уровней. Как правило, образ кода может включать в себя программные коды, данные и т.д.
Фиг.2 также изображает разработку процесса 200 для программирования сегмента 210 без страничной организации и сегмента 220 со страничной организацией флэш-памяти 150 типа NAND. Процесс 200 может выполняться во время производства флэш-памяти 150 типа NAND, подготовки к работе беспроводного устройства 100 и т.д. Разработка по фиг.2 использует два набора криптографических ключей: (1) набор секретного и открытого ключей для подписи и аутентификации сегмента 210 без страничной организации, которые упоминаются как секретный ключ x и открытый ключ x, и (2) набор секретного и открытого ключей для аутентификации исходного объекта, которые упоминаются как корневой секретный ключ r и корневой открытый ключ r. Корневой секретный ключ r и секретный ключ x представляют собой секрет и известны только исходному объекту, которым может быть поставщик исходного кода, производитель и т.д. Корневой открытый ключ r сделан доступным беспроводному устройству 100 и используется для верификации цифровых подписей, генерируемых при помощи корневого секретного ключа r. Открытый ключ x используется для верификации цифровых подписей, сгенерированных при помощи секретного ключа x, и может посылаться в сертификате 216.
Функция 232 подписи может генерировать цифровую подпись по открытому ключу x и, возможно, другой информации, используя корневой секретный ключ r. Эта цифровая подпись может упоминаться как подпись cx и может использоваться для аутентификации исходного объекта. Функция 232 подписи может реализовать алгоритм RSA (Райвеста, Шамира и Адлемана), алгоритм цифровой подписи (DSA) или некоторый другой криптографический алгоритм (цифровой подписи или шифрования). Генератор 234 сертификата может формировать сертификат, содержащий подпись cx, открытый ключ x и, возможно, другую информацию, такую как идентификатор исходного объекта, криптографический алгоритм, выбранный для использования, дата истечения срока действия сертификата и т.д. Этот сертификат может храниться в флэш-памяти 150 типа NAND в виде сертификата X.509 или в некотором другом формате, известном в технике. Корневой открытый ключ r может быть сделан доступным для беспроводного устройства 100 любым образом и может безопасно храниться в ROM 134 в беспроводном устройстве 100 на фиг.1.
В разработке, показанной на фиг.2, второй образ 222 кода может обрабатываться и сохраняться первым, а первый образ 212 кода может обрабатываться и сохраняться следующим. Блок 252 разделения на страницы может принимать и разделять второй образ 222 кода на страницы определенного размера (например, 4 KB) и может обеспечивать постраничную передачу на функцию 254 безопасного хеша и также на флэш-память 150 типа NAND. Функция 254 может хешировать каждую страницу от блока 252 посредством алгоритма безопасного хеша и обеспечивать хеш-дайджест для этой страницы. Функция 254 может реализовать SHA-1 (алгоритм безопасного хеша), SHA-2 (который включает в себя SHA-224, SHA-256, SHA-384 и SHA512), MD-4 (дайджест сообщений), MD-5 или некоторый другой алгоритм безопасного хеша, известный в технике. Алгоритм безопасного хеша имеет криптографические свойства, так что функция между входным сообщением и его дайджестом (который представляет собой псевдослучайную битовую строку) является необратимой, и очень мала вероятность отображения двух входных сообщений на одинаковый дайджест. Алгоритм безопасного хеша может принимать входное сообщение любой длины и может обеспечивать хеш-дайджест фиксированной длины. Генератор 256 таблиц может генерировать таблицу хеш-дайджестов для всех страниц второго образа 222 кода и может сохранять эту таблицу в виде таблицы 214 хеш-дайджестов в флэш-памяти 150 типа NAND.
Первый образ 212 кода может подаваться на мультиплексор (Mux) 242 и также сохраняться в флэш-памяти 150 типа NAND. Мультиплексор 242 также может принимать таблицу 214 хеш-дайджестов от генератора 256 и может последовательно подавать первый образ 212 кода и таблицу 214 хеш-дайджестов на функцию 244 безопасного хеша. Функция 244 может хешировать как первый образ 212 кода, так и таблицу 214 хеш-дайджестов посредством алгоритма безопасного хеша и может обеспечивать хеш-дайджест, который может называться дайджест x. Функция 244 может реализовать SHA-1, SHA-2, MD-5 или некоторый другой алгоритм безопасного хеша. Функция 246 подписи может генерировать цифровую подпись по дайджесту x, используя секретный ключ x. Эта цифровая подпись может сохраняться в качестве цифровой подписи 218 в флэш-памяти 150 типа NAND. Функция 246 подписи может реализовать RSA, DSA или некоторый другой криптографический алгоритм. Функции 232 и 246 подписи могут реализовать эти же или другие криптографические алгоритмы.
Фиг.3 изображает разработку второго образа 222 кода и таблицы 214 хеш-дайджестов в флэш-памяти 150 типа NAND. В данной разработке второй образ 222 кода может разделяться на N страниц 0 - N-1, где N может представлять собой любое целое значение. Каждая страница кодов может хешироваться посредством алгоритма безопасного хеша (Хеш) для генерирования соответствующего хеш-дайджеста. Таблица 214 хеш-дайджестов может хранить N хеш-дайджестов для N страниц кодов.
Фиг.4 изображает разработку процесса 400 для загрузки и аутентификации сегмента 210 без страничной организации и сегмента 220 со страничной организацией флэш-памяти 150 типа NAND, согласно аспекту изобретения. Процесс 400 может выполняться при включении питания беспроводного устройства 100 и т.д. Функция 432 верификации может принимать сертификат 216 от флэш-памяти 150 типа NAND и корневой открытый ключ r от ROM 134 в беспроводном устройстве 100 на фиг.1. Функция 432 верификации может извлекать подпись cx и открытый ключ x из сертификата 216, верифицировать подпись cx посредством корневого открытого ключа r и обеспечивать открытый ключ x, если подпись cx верифицирована. Любая подделка сертификата x третьей стороной легко может обнаруживаться отсутствием верификации подписи cx.
Мультиплексор 442 может принимать первый образ 212 кода и таблицу 214 хеш-дайджестов и может последовательно подавать обе части на функцию 444 безопасного хеша. Функция 444 может хешировать как первый образ 212 кода, так и таблицу 214 хеш-дайджестов и может обеспечивать хеш-дайджест, который может называться дайджест x'. Функция 444 может реализовать этот же алгоритм безопасного хеша, что и используемый функцией 244 безопасного хеша на фиг.2. Функция 446 верификации может принимать дайджест x' от функции 444 безопасного хеша, цифровую подпись x от флэш-памяти 150 типа NAND и открытый ключ x от функции 432 верификации. Функция 446 верификации может верифицировать цифровую подпись 218 посредством открытого ключа x и дайджеста x' и может указывать, верифицирована ли или нет цифровая подпись 218. Открытый ключ x аутентифицируется корневым открытым ключом r. Следовательно, любая подделка цифровой подписи 218, первого образа 212 кода и/или таблицы 214 хеш-дайджестов третьей стороной легко может обнаруживаться отсутствием верификации цифровой подписи 218.
Если цифровая подпись 218 верифицирована, тогда первый образ 212 кода может предоставляться для использования, и таблица 214 хеш-дайджестов может сохраняться в таблице 456. Беспроводное устройство 100 может быть включено, если первый образ 212 кода был загружен из флэш-памяти 150 типа NAND в SDRAM 152. Если цифровая подпись 218 не верифицирована, тогда процесс загрузки может быть прерван, и может предоставляться сообщение с ошибкой.
После включения беспроводного устройства 100 второй образ 222 кода может постранично загружаться из флэш-памяти 150 типа NAND в SDRAM 152 в виде фоновой задачи и/или по запросу, когда необходимо. Функция 454 безопасного хеша может хешировать страницу, извлеченную из флэш-памяти 150 типа NAND, и может обеспечивать хеш-дайджест y' для извлеченной страницы. Функция 454 может реализовать такой же алгоритм безопасного хеша, что и используемый функцией 254 безопасного хеша на фиг.2. Функция 458 верификации может принимать хеш-дайджест y' от функции 454 безопасного хеша и аутентифицированный хеш-дайджест y для извлеченной страницы из таблицы 456. Функция 458 верификации может сравнивать два хеш-дайджеста y' и y и объявлять извлеченную страницу аутентифицированной, если совпадают два дайджеста. Таблица 214 хеш-дайджестов может аутентифицироваться посредством корневого открытого ключа r. Криптографические свойства алгоритма безопасного хеша гарантируют, что очень мала вероятность отображения другой страницы на такой же хеш-дайджест y. Следовательно, любая подделка страницы третьей стороной легко может обнаруживаться по несовпадению двух хеш-дайджестов. Извлеченная страница может предоставляться для использования, если совпадают хеш-дайджесты. Процесс загрузки может быть прерван, и может предоставляться сообщение с ошибкой, если хеш-дайджесты не совпадают.
Фиг.2-4 изображают одну разработку флэш-памяти 150 типа NAND, которая поддерживает прогрессивную начальную загрузку сегмента 210 без страничной организации и сегмента 220 со страничной организацией и дополнительно поддерживает аутентификацию образов кода, хранимых в сегментах 210 и 220. Как правило, флэш-память 150 типа NAND может хранить P образов кода в P сегментах со страничной организацией и Q образов кода в Q сегментах без страничной организации, где P и Q, каждый, может представлять собой любое целое значение, один или более. Образы кода из Q сегментов без страничной организации могут загружаться из флэш-памяти 150 типа NAND до включения беспроводного устройства 100. Образы кода из P сегментов со страничной организацией могут загружаться из флэш-памяти 150 типа NAND после включения беспроводного устройства 100.
Безопасность для образов кода, хранимых в сегментах без страничной организации и со страничной организацией, может осуществляться различным образом. Как правило, информация безопасности, используемая для аутентификации, может содержать один или несколько сертификатов, цифровых подписей, хеш-дайджестов и т.д. Информация безопасности, используемая для аутентификации образа кода из сегмента без страничной организации (или просто, образ кода без страничной организации), может храниться в этом сегменте без страничной организации, в обозначенном сегменте без страничной организации и т.д. Информация безопасности, используемая для аутентификации образа кода из сегмента со страничной организацией (или просто, образ кода со страничной организацией), может храниться в этом сегменте со страничной организацией, в другом сегменте со страничной организацией, в сегменте без страничной организации и т.д. Информация безопасности может обеспечиваться для каждой страницы образа кода со страничной организацией, позволяя отдельно выполнять загрузку и аутентификацию каждой страницы. Информация безопасности также может обеспечиваться для всего образа кода со страничной организацией. В одной разработке один сегмент без страничной организации может хранить информацию безопасности для всех сегментов без страничной организации и со страничной организацией, как описано выше. В другой разработке аутентификация может выполняться гирляндным образом, причем каждый сегмент хранит информацию безопасности для следующего сегмента, подлежащего загрузке. Аутентификация образов кода без страничной организации и со страничной организацией также может выполняться другими способами.
Для ясности, нижеследующее описание предполагает использование конструкции, показанной на фиг.2-4, и что флэш-память 150 типа NAND включает в себя сегмент 210 без страничной организации и сегмент 220 со страничной организацией. Сегмент 210 без страничной организации может включать в себя программные коды, которые поддерживают базовую функциональную возможность беспроводного устройства 100, коды для поддержки прогрессивной начальной загрузки и т.д. Сегмент 220 со страничной организацией может включать в себя остальные программные коды для беспроводного устройства 100.
Фиг.5 изображает разработку первого образа 212 кода, хранимого в сегменте 210 без страничной организации флэш-памяти 150 типа NAND. В этой разработке первый образ 212 кода включает в себя модули 510, которые поддерживают прогрессивную начальную загрузку, драйверы 530, коды 540 пользовательского интерфейса (UI) и коды 550 модема.
В модулях 510 заголовок 512 может включать в себя соответствующую информацию для флэш-памяти 150 типа NAND, такую как количество сегментов со страничной организацией и без страничной организации, начальный адрес и размер каждого сегмента, расположение заголовка каждого сегмента и т.д. Начальный загрузчик 514 может управлять загрузкой сегмента 210 без страничной организации из флэш-памяти 150 типа NAND в SDRAM 152. Драйвер 516 NAND может извлекать страницы из флэш-памяти 150 типа NAND и копировать эти страницы в SDRAM 152. Менеджер 518 памяти может управлять загрузкой сегмента 220 со страничной организацией из флэш-памяти 150 типа NAND в SDRAM 152 и может отслеживать, какие страницы второго образа 222 кода были загружены. Обработчик 520 аварийных завершений может обрабатывать ошибки из-за отсутствия страницы вследствие обращений к памяти к страницам второго образа 222 кода, которые не были загружены из флэш-памяти 150 типа NAND. Когда происходит ошибка из-за отсутствия страницы, обработчик 520 аварийных завершений может сохранить контекст текущей задачи и затем запросить обработчик 522 постраничного вывода на загрузку одной или нескольких страниц, включающих запрашиваемую страницу. Обработчик 522 постраничного вывода может обрабатывать фоновую страничную подкачку и страничную подкачку по запросу запрашиваемых страниц второго образа 222 кода из флэш-памяти 150 типа NAND. Начальный загрузчик 514 и обработчик 522 постраничного вывода могут запросить драйвер 516 NAND на извлечение заданных страниц из флэш-памяти 150 типа NAND и копирование этих страниц в SDRAM 152.
Драйверы 530 могут поддерживать устройства ввода/вывода (I/O), такие как жидкокристаллический дисплей (LCD), клавиатура, микрофон, громкоговоритель и т.д. Коды 540 UI могут поддерживать различные функции UI, такие как отображение анимации при включении питания, прием вводов с клавиатуры, отображение нажатых знаков на LCD и т.д. Коды 540 UI могут обеспечивать указание срока службы на беспроводном устройстве 100 и могут принимать пользовательские вводы, так что беспроводное устройство может восприниматься как работающее для пользователя. Коды 550 модема могут выполнять различные функции для поддержки радиосвязи, например, инициализация передатчика 114 и приемника 116, поиск беспроводных систем, инициирование и прием вызовов, выполнение обработки (например, кодирование и декодирование) для вызовов и т.д.
Фиг.5 изображает одну разработку сегмента 210 без страничной организации. Сегмент 210 без страничной организации также может включать в себя разные и/или другие модули, не показанные на фиг.5. Например, сегмент 210 без страничной организации может включать в себя коды заводского испытания, коды среды исполнения приложений (AEE) двоичной среды исполнения для беспроводных устройств (BREW) и т.д.
Фиг.6 изображает разработку SDRAM 152 на беспроводном устройстве 100 на фиг.1. Первый образ 212 кода может извлекаться из флэш-памяти 150 типа NAND и сохраняться в SDRAM 152 в течение первой части прогрессивной начальной загрузки. Страницы 0 - N-1 второго образа 222 кода могут извлекаться в любом порядке из флэш-памяти 150 типа NAND и сохраняться в надлежащем расположении SDRAM 152 в течение второй части прогрессивной начальной загрузки.
Фоновая загрузка второго образа 222 кода может начинаться после того, как первый образ 212 кода будет загружен в SDRAM 152. Для фоновой загрузки N страниц второго образа 222 кода могут извлекаться постранично и в последовательном порядке из флэш-памяти 150 типа NAND, аутентифицироваться и сохраняться в соответствующем месте SDRAM 152. Весь второй образ 222 кода может полностью загружаться в SDRAM 152 за определенное количество времени, которое может упоминаться как время вторичной загрузки. Фоновой загрузке может быть присвоен более низкий приоритет, чем другим задачам, выполняемым беспроводным устройством 100. Следовательно, время вторичной загрузки может быть переменным и может зависеть от различных факторов, таких как размер второго образа 222 кода, скорость пересылки между флэш-памятью 150 типа NAND и SDRAM 152, величина активности на беспроводном устройстве 100 и т.д.
Во время выполнения фоновой загрузки может выполняться обращение к странице второго образа 222 кода, которая еще не была загружена, и может иметь место ошибка из-за отсутствия страницы. Запрашиваемая страница может быть загружена по запросу из флэш-памяти 150 типа NAND и может предоставляться для использования. В одной разработке только запрашиваемая страница загружается из флэш-памяти 150 типа NAND. В другой разработке запрашиваемая страница и одна или несколько близлежащих страниц могут загружаться из флэш-памяти 150 типа NAND. Эта разработка может исключать повторные ошибки из-за отсутствия страницы и, следовательно, улучшать рабочие характеристики. После завершения подкачки по запросу запрашиваемой страницы может возобновляться фоновая загрузка остальных страниц второго образа 222 кода.
Менеджер 518 памяти может отслеживать, какие страницы второго образа 222 кода были загружены из флэш-памяти 150 типа NAND. Эта информация может использоваться для определения, хранится ли запрашиваемая страница в SDRAM 152 или должна извлекаться из флэш-памяти 150 типа NAND. Состояние загрузки страниц второго образа 222 кода может сохраняться различными способами.
Фиг.7 изображает разработку 2-уровневой структуры 700, которая может использоваться для определения, хранится ли данная страница второго образа 222 кода в SDRAM 152. В этой разработке 32-битовый адрес 702 памяти может включать в себя биты 0-31 и может иметь диапазон адресов 0-4 гигабайта (GB). Диапазон адресов может быть разделен на 4096 секций, причем каждая секция адресов охватывает один мегабайт (MB). Каждая секция адресов может охватывать 256 страниц, и каждая страница может составлять 4 KB.
Структура 700 может включать в себя одну главную таблицу 710 с 4096 элементами для 4096 секций адресов, один элемент для каждой секции адресов. Структура 700 дополнительно может включать в себя одну таблицу 720 страниц для каждой секции адресов. Каждая таблица страниц может включать в себя 256 элементов для 256 страниц, один элемент для каждой страницы.
В одной разработке главная таблица и таблицы страниц для всего второго образа 222 кода могут создаваться и инициализироваться перед загрузкой любой страницы второго образа 222 кода. Например, одна главная таблица и 64 таблицы страниц могут создаваться в SDRAM 152 для поддержки 64 MB виртуальной памяти для подкачки. Каждый элемент в главной таблице может включать в себя указатель на начало таблицы страниц, соответствующей этому элементу главной таблицы. 256 элементов каждой таблицы страниц могут инициализироваться заданным значением для указания, что 256 страниц, охватываемых этими элементами, не были загружены в SDRAM 152 (или отсутствие разрешения доступа к этим 256 страницам). Когда страница загружается из флэш-памяти 150 типа NAND в SDRAM 152, может устанавливаться таблица страниц, охватывающая эта страницу, и элемент для этой страницы может обновляться для указания, что страница была загружена в SDRAM 152.
Когда второй образ 222 кода загружается из флэш-памяти 150 типа NAND, может проверяться каждое обращение к памяти в SDRAM 152 для определения, хранится ли запрашиваемая страница в SDRAM 152. 12 старших битов (MSB) адреса памяти для обращения к памяти могут использоваться для обращения к элементу в главной таблице. Указатель из этого элемента главной таблицы может использоваться для определения начала таблицы страниц для секции адресов, охватывающей адрес памяти. 8 следующих MSB адресов памяти могут использоваться для определения элемента таблицы страниц для страницы, к которой происходит обращение. Этот элемент таблицы страниц может проверяться для определения, была ли загружена в SDRAM 152 страница, к которой происходит обращение. Если страница была загружена, тогда к SDRAM 152 можно обращаться для получения запрашиваемого программного кода или данных. Если страница не была загружена, тогда может уведомляться обработчик 520 аварийных завершений, и запрашиваемая страница может загружаться в SDRAM 152.
Главная таблица и таблицы страниц могут использоваться для определения, были ли загружены в SDRAM 152 индивидуальные страницы второго образа 222 кода. Может использоваться индикатор для указания, были ли загружены в SDRAM 152 все N страниц второго образа 222 кода. Этот индикатор может инициализироваться в одно значение (например, 0) и может устанавливаться на другое значение (например, 1), если все страницы второго образа 222 кода были загружены в SDRAM 152. Главная таблица и таблицы страниц могут удаляться после того, как будет загружен весь второй образ 222 кода.
Фиг.7 изображает одну разработку структуры 700 для определения, были ли загружены страницы второго образа 222 кода в SDRAM 152. Структура 700 может быть аналогична структуре, используемой для защиты памяти для отслеживания, какие страницы доступны. Структура 700, таким образом, может реализоваться и обновляться аналогичным образом, что и структура, используемая для защиты памяти.
Также могут использоваться различные другие структуры для отслеживания, какие страницы второго образа 222 кода были загружены в SDRAM 152. Например, может использоваться битовая карта, содержащая один бит для каждой страницы. Бит для каждой страницы может устанавливаться в одно значение (например, 0), если страница не была загружена в SDRAM 152, или в другое значение (например, 1), если страница была загружена.
Фиг.8 изображает разработку процесса 800 для программирования устройства памяти, например, во время фазы производства или подготовки к работе, согласно аспекту изобретения. Первая информация безопасности может генерироваться на основе первого образа кода и, возможно, другой информации (блок 812). Вторая информация безопасности может генерироваться на основе второго образа кода (блок 814). Первый образ кода может программироваться в устройство памяти, используемое для беспроводного устройства (блок 816). Первый образ кода может загружаться из устройства памяти для начальной загрузки беспроводного устройства и обеспечения работоспособности беспроводного устройства. Второй образ кода может программироваться в устройство памяти (блок 818). Второй образ кода может загружаться из устройства памяти, когда беспроводное устройство является работающим, для дальнейшей или полной начальной загрузки беспроводного устройства. Первая и вторая информация безопасности может программироваться в устройство памяти и может использоваться для аутентификации первого и второго образов кода, соответственно (блок 820).
В отношении блока 814, второй образ кода может разделяться на множество страниц, и каждая страница может хешироваться посредством алгоритма безопасного хеша для получения хеш-дайджеста для этой страницы. Таблица хеш-дайджестов для множества страниц может генерироваться и программироваться в устройство памяти в блоке 820. В отношении блока 812, цифровая подпись может генерироваться на основе первого образа кода, секретного ключа и таблицы хеш-дайджестов для второго образа кода. Может генерироваться сертификат, содержащий открытый ключ, соответствующий секретному ключу. Сертификат и цифровая подпись могут программироваться в устройство памяти в блоке 820.
Фиг.9 изображает разработку процесса 900 для выполнения прогрессивной начальной загрузки беспроводного устройства при включении питания согласно аспекту изобретения. Первый образ кода может загружаться из внешней памяти для начальной загрузки беспроводного устройства, например загружаться из флэш-памяти типа NAND в SDRAM (блок 912). Первая информация безопасности для первого образа кода может быть получена из внешней памяти (блок 914). Первый образ кода может аутентифицироваться на основе первой информации безопасности (блок 916). Беспроводное устройство может быть работоспособным после загрузки и аутентификации первого образа кода (блок 918). Будучи работающим, беспроводное устройство может быть способным обрабатывать вводы с клавиатуры, устанавливать вызовы с беспроводной системой и т.д.
Второй образ кода может загружаться из внешней памяти, когда беспроводное устройство является работающим, для дальнейшей начальной загрузки беспроводного устройства (блок 920). Вторая информация безопасности для второго образа кода может быть получена из внешней памяти (блок 922). Второй образ кода может аутентифицироваться на основе второй информации безопасности (блок 924). Может разрешаться исполнение второго образа кода, если он аутентифицирован (блок 926).
В отношении блока 920, второй образ кода может загружаться в качестве фоновой задачи и/или по запросу, когда беспроводное устройство является работающим. Для загрузки по запросу может приниматься обращение к памяти для страницы второго образа кода. Заданное количество страниц второго образа кода, включая страницу, к которой происходит обращение, может загружаться из внешней памяти в ответ на обращение к памяти.
Второй образ кода может содержать множество страниц, которые могут загружаться постранично из внешней памяти. Может выполняться ведение по меньшей мере одной таблицы для отслеживания страниц второго образа кода, которые были загружены, и страниц второго образа кода, которые не были загружены. Например, может выполняться ведение главной таблицы с многочисленными элементами для многочисленных диапазонов адресов. Также может выполняться ведение многочисленных таблиц страниц для многочисленных диапазонов адресов, одна таблица страниц для каждого диапазона адресов, причем каждая таблица страниц включает в себя многочисленные элементы для многочисленных страниц в диапазоне адресов для этой таблицы страниц. Каждый элемент главной таблицы может включать в себя указатель на соответствующую таблицу страниц. Каждый элемент соответствующей таблицы страниц может указывать, является ли ассоциированная таблица загруженной и доступной. Таблица(ы) может создаваться перед загрузкой второго образа кода и может удаляться после загрузки второго образа кода.
В отношении блока 916, первая информация безопасности может содержать сертификат и цифровую подпись. Сертификат может аутентифицироваться на основе корневого открытого ключа, который может безопасно храниться на беспроводном устройстве. Первый образ кода может аутентифицироваться на основе цифровой подписи и открытого ключа из сертификата. В отношении блока 924, вторая информация безопасности может содержать по меньшей мере один хеш-дайджест, который может аутентифицироваться на основе первой информации безопасности. Второй образ кода затем может аутентифицироваться на основе по меньшей мере одного хеш-дайджеста.
Фиг.10 изображает разработку процесса 1000 аутентификации образа кода согласно аспекту изобретения. Процесс 1000 может использоваться для блоков 920-924 на фиг.9. Множество страниц образа кода может извлекаться из внешней памяти, причем множество страниц ассоциируется с отдельной информацией безопасности (блок 1012). Множество страниц может извлекаться постранично или в заданном порядке (например, для фоновой загрузки), или в случайном порядке, определенном на основе обращений к памяти для страниц образа кода (например, для загрузки по запросу). Каждая страница, извлекаемая из внешней памяти, может аутентифицироваться на основе информации безопасности для этой страницы (блок 1014). В одной разработке таблица хеш-дайджестов для множества страниц может извлекаться из внешней памяти и аутентифицироваться. Каждая извлекаемая страница может хешироваться на основе алгоритма безопасного хеша для получения сгенерированного хеш-дайджеста для этой страницы. Извлекаемая страница может объявляться аутентифицированной, если сгенерированный хеш-дайджест совпадает с аутентифицированным хеш-дайджестом для страницы, который может быть из таблицы хеш-дайджестов.
Фиг.11 изображает блок-схему разработки программирующей станции 1100 для флэш-памяти 150 типа NAND согласно аспекту изобретения. Программирующая станция 1100 включает в себя контроллер/процессор 1110, память 1112, программирующие инструментальные средства 1114 и базу 1116 данных. Контроллер/процессор 1110 может выполнять безопасную обработку, показанную на фиг.2, и может дополнительно управлять работой программирующей станции 1100. Память 1112 может хранить данные и коды, используемые контроллером/процессором 1110. Программирующие инструментальные средства 1114 могут программировать флэш-память 150 типа NAND, например, как показано на фиг.2. База 1116 данных может хранить образы кода, подлежащие программированию в флэш-память 150 типа NAND, криптографические ключи и т.д. Программирующая станция 1100 может выполнять процесс 800 на фиг.8 и/или другие процессы для программирования памяти.
Для ясности, методы начальной загрузки были описаны для конфигурации памяти с флэш-памятью типа NAND и SDRAM. Методы начальной загрузки также могут использоваться для других конфигураций памяти и других типов памяти. Методы начальной загрузки дополнительно могут использоваться для любого количества образов кода без страничной организации и со страничной организацией, любого количества сегментов без страничной организации и со страничной организацией, любого размера страниц и т.д.
Методы начальной загрузки, описанные в данном документе, могут обеспечивать некоторые преимущества. Более короткое воспринимаемое время начальной загрузки может достигаться для загрузки памяти при включении питания. Это может приводить к более короткому времени заводского испытания, так как коды заводского испытания могут храниться в сегменте без страничной организации и могут загружаться первыми. Коды заводского испытания могут полагаться на ранней загрузке этих кодов и могут обладать взаимодействием испытательного оборудования с беспроводным устройством вскоре после включения питания, даже если беспроводное устройство не закончило процесс загрузки. Более короткое воспринимаемое время начальной загрузки может уменьшить количество времени, которое пользователь ожидает после включения питания, и может, таким образом, улучшить опыт взаимодействия пользователя.
Специалист в данной области техники понимает, что информация и сигналы могут представляться с использованием любой из многочисленных различных технологий и методов. Например, данные, инструкции, команды, информация, сигналы, биты, символы и чипы, которые могут упоминаться в вышеупомянутом описании, могут представляться напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами или любой их комбинацией.
Специалист в данной области техники дополнительно оценит, что различные иллюстративные логические блоки, модули, схемы и этапы алгоритма, описанные в связи с раскрытием в данном документе, могут быть реализованы в виде электронных аппаратных средств, компьютерных программных средств или их комбинацией. Чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратных и программных средств, различные иллюстративные компоненты, блоки, модули, схемы и этапы были описаны выше, в основном, на языке их функциональных возможностей. Реализуется ли такая функциональная возможность в виде аппаратных средств или программных средств, зависит от конкретного применения и конструктивных ограничений, накладываемых на всю систему. Специалист в данной области техники может реализовать описанную функциональную возможность различными путями для каждого конкретного применения, но такие решения по реализации не должны интерпретироваться как вызывающие отступление от объема настоящего раскрытия.
Различные иллюстративные логические блоки, модули и схемы, описанные в связи с раскрытием в данном документе, могут быть реализованы в или выполнены посредством процессора общего назначения, процессора цифровой обработки сигналов (DSP), специализированной интегральной схемы (специализированной ИС), программируемой вентильной матрицы (FPGA) или другого программируемого логического устройства, дискретной вентильной или транзисторной логики, дискретных аппаратных компонентов или любых их комбинаций, предназначенных для выполнения функций, описанных в данном документе. Процессором общего назначения может быть микропроцессор, но, в альтернативе, процессором может быть любой обычный процессор, контроллер, микроконтроллер или конечный автомат. Процессор также может быть реализован в виде комбинации вычислительных устройств, например, комбинации DSP и микропроцессора, множества микропроцессоров, одного или нескольких микропроцессоров вместе с ядром DSP, или любой другой такой конфигурации.
Этапы способа или алгоритма, описанные в связи с раскрытием в данном документе, могут воплощаться непосредственно аппаратными средствами, программным модулем, исполняемым процессором или их комбинацией. Программный модуль может постоянно находиться в памяти оперативного запоминающего устройства (RAM), флэш-памяти, памяти ROM, памяти стираемого программируемого ROM (EPROM), памяти электрически стираемого программируемого ROM (EEPROM), регистрах, на жестком диске, съемном диске, компакт-диске или запоминающей среде любого другого вида, известного в технике. Примерная запоминающая среда связана с процессором, так что процессор может считывать информацию с запоминающей среды и записывать информацию на нее. В альтернативе, запоминающая среда может быть выполнена за одно целое с процессором. Процессор и запоминающая среда могут постоянно находиться в специализированной ИС. Специализированная ИС может постоянно находиться в пользовательском терминале. В альтернативе, процессор и запоминающая среда могут постоянно находиться в качестве дискретных компонентов в пользовательском терминале.
В одной или нескольких примерных разработках описанные функции могут быть реализованы аппаратными, программными, аппаратно-программными средствами или любой их комбинацией. Если они реализованы программными средствами, функции могут храниться или передаваться в виде одной или нескольких инструкций или кода на машиночитаемом носителе. Машиночитаемый носитель включает в себя как запоминающую среду компьютера, так и среду связи, включающую в себя любую среду, которая способствует пересылке компьютерной программы из одного места в другое. Запоминающая среда может представлять собой любую доступную среду, к которой может обращаться компьютер общего назначения или специального назначения. В качестве примера, и не ограничения, такой машиночитаемый носитель может содержать RAM, ROM, EEPROM, компакт-диск или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, или любую другую среду, которая может использоваться для переноса или хранения требуемого средства программного кода в виде инструкций или структур данных, и к которым может обращаться компьютер общего назначения или специального назначения или процессор общего назначения или специального назначения. Также любое соединение правильно называется машиночитаемым носителем. Например, если программные средства передаются с веб-сайта, сервера или другого удаленного источника, используя коаксиальный кабель, волоконно-оптический кабель, витую пару, цифровую абонентскую линию (DSL) или беспроводные технологии, такие как инфракрасные, радиочастотные и микроволновые, тогда коаксиальный кабель, волоконно-оптический кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасные, радиочастотные и микроволновые, включаются в определение среды. Диск (disk) и диск (disc), как используется в данном документе, включает в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой многофункциональный диск (DVD), дискету и диск Blu-ray (синелучевой диск), где диски (disk) обычно воспроизводят данные магнитным образом, тогда как диски (disc) воспроизводят данные оптическим образом при помощи лазеров. Комбинации вышеупомянутых также должны быть включены в объем машиночитаемых носителей.
Предыдущее описание раскрытия представлено для того, чтобы предоставить возможность любому специалисту в данной области техники выполнить или использовать раскрытие. Различные модификации раскрытия очевидны для специалиста в данной области техники, и обобщенные принципы, определенные в данном документе, могут быть применены к другим вариантам без отступления от объема раскрытия. Таким образом, раскрытие, как предполагается, не ограничивается примерами и разработками, показанными в данном документе, но должно соответствовать наибольшему объему, согласующемуся с принципами и новыми признаками, описанными в данном документе.

Claims (44)

1. Устройство для начальной загрузки беспроводного устройства, содержащее:
процессор, выполненный с возможностью
программирования первого и второго образов кода в устройство памяти, используемое для беспроводного устройства, причем первый образ кода загружается из сегмента без страничной организации устройства памяти для начальной загрузки беспроводного устройства и обеспечения работоспособности беспроводного устройства, второй образ кода загружается в качестве отдельных страниц из сегмента со страничной организацией устройства памяти в то время, когда беспроводное устройство является работающим, для продолжения начальной загрузки беспроводного устройства, и
генерирования информации безопасности для каждой страницы второго образа кода так, что каждая страница второго образа кода может аутентифицироваться независимо от других страниц второго образа кода и первого образа кода.
2. Устройство по п.1, в котором процессор выполнен с возможностью
генерирования первой информации безопасности на основе первого образа кода,
генерирования второй информации безопасности на основе второго образа кода, и
программирования первой и второй информации безопасности в устройство памяти, причем первая и вторая информация безопасности используется для независимой аутентификации первого и второго образов кода соответственно.
3. Устройство по п.1, в котором процессор выполнен с возможностью
генерирования цифровой подписи на основе первого образа кода и секретного ключа,
генерирования сертификата, содержащего открытый ключ, соответствующий секретному ключу, и
программирования сертификата и цифровой подписи в устройство памяти.
4. Устройство по п.3, в котором процессор выполнен с возможностью
разделения второго образа кода на множество страниц,
хеширования каждой из множества страниц для получения хеш-дайджеста для страницы,
генерирования таблицы хеш-дайджестов для множества страниц и
программирования таблицы хеш-дайджестов в устройство памяти.
5. Устройство по п.4, в котором процессор выполнен с возможностью генерирования цифровой подписи дополнительно на основе таблицы хеш-дайджестов и первого кода.
6. Устройство по п.2, в котором второй образа кода содержит множество страниц, и вторая информация безопасности включает в себя хеш для каждой страницы второго образа кода.
7. Способ начальной загрузки беспроводного устройства, содержащий:
программирование первого образа кода в устройство памяти, используемое для беспроводного устройства, причем первый образ кода загружается из сегмента без страничной организации устройства памяти для начальной загрузки беспроводного устройства и обеспечения работоспособности беспроводного устройства;
программирование второго образа кода в устройство памяти, причем второй образ кода загружается в качестве отдельных страниц из сегмента со страничной организацией устройства памяти в то время, когда беспроводное устройство является работающим, для продолжения начальной загрузки беспроводного устройства; и
генерирования информации безопасности для каждой страницы второго образа кода так, что каждая страница второго образа кода может аутентифицироваться независимо от других страниц второго образа кода и первого образа кода.
8. Способ по п.7, дополнительно содержащий:
генерирование первой информации безопасности на основе первого образа кода;
генерирование второй информации безопасности на основе второго образа кода; и
программирование первой и второй информации безопасности в устройство памяти, причем первая и вторая информация безопасности используется для аутентификации первого и второго образов кода соответственно.
9. Способ по п.8, в котором генерирование первой информации безопасности содержит генерирование цифровой подписи на основе первого образа кода и секретного ключа и генерирование сертификата, содержащего открытый ключ, соответствующий секретному ключу, и в котором программирование первой и второй информации безопасности содержит программирование сертификата и цифровой подписи в устройство памяти.
10. Способ по п.8, в котором генерирование второй информации безопасности содержит разделение второго образа кода на множество страниц, отдельное хеширование каждой из множества страниц для получения хеш-дайджеста для страницы, и генерирование таблицы хеш-дайджестов для множества страниц, и в котором программирование первой и второй информации безопасности содержит программирование таблицы хеш-дайджестов в устройство памяти.
11. Устройство для начальной загрузки беспроводного устройства, содержащее:
средство программирования первого образа кода в устройство памяти, используемое для беспроводного устройства, причем первый образ кода загружается из сегмента без страничной организации устройства памяти для начальной загрузки беспроводного устройства и обеспечения работоспособности беспроводного устройства;
средство программирования второго образа кода в устройство памяти, причем второй образ кода загружается в качестве отдельных страниц из сегмента со страничной организацией устройства памяти в то время, когда беспроводное устройство является работающим, для продолжения начальной загрузки беспроводного устройства; и
средство генерирования информации безопасности для каждой страницы второго образа кода так, что каждая страница второго образа кода может аутентифицироваться независимо от других страниц второго образа кода и первого образа кода.
12. Устройство по п.11, дополнительно содержащее:
средство генерирования первой информации безопасности на основе первого образа кода;
средство генерирования второй информации безопасности на основе второго образа кода; и
средство программирования первой и второй информации безопасности в устройство памяти, причем первая и вторая информация безопасности используется для аутентификации первого и второго образов кода соответственно.
13. Устройство по п.12, в котором средство генерирования первой информации безопасности содержит средство генерирования цифровой подписи на основе первого образа кода и секретного ключа, и средство генерирования сертификата, содержащего открытый ключ, соответствующий секретному ключу, и в котором средство программирования первой и второй информации безопасности содержит средство программирования сертификата и цифровой подписи в устройство памяти.
14. Устройство по п.12, в котором средство генерирования второй информации безопасности содержит средство разделения второго образа кода на множество страниц, средство хеширования каждой из множества страниц для получения хеш-дайджеста для страницы, и средство генерирования таблицы хеш-дайджестов для множества страниц, и в котором средство программирования первой и второй информации безопасности содержит средство программирования таблицы хеш-дайджестов в устройство памяти.
15. Устройство для начальной загрузки беспроводного устройства, содержащее:
контроллер памяти, выполненный с возможностью загрузки первого образа кода из сегмента без страничной организации внешней памяти для начальной загрузки беспроводного устройства; и
главный контроллер, выполненный с возможностью обеспечения работоспособности беспроводного устройства после загрузки первого образа кода, и при этом контроллер памяти дополнительно выполнен с возможностью загрузки одной или более страниц второго образа кода из сегмента со страничной организацией внешней памяти в то время, когда беспроводное устройство является работающим, для продолжения начальной загрузки беспроводного устройства, причем главный контроллер дополнительно выполнен с возможностью аутентификации каждой страницы второго образа кода, в качестве загруженной и независимой от других страниц второго образа кода и первого образа кода.
16. Устройство по п.15, в котором контроллер памяти выполнен с возможностью загрузки второго образа кода в качестве фоновой задачи, когда беспроводное устройство является работающим.
17. Устройство по п.15, в котором контроллер памяти выполнен с возможностью приема обращения доступа к памяти для страницы второго образа кода и загрузки заданного количества страниц второго образа кода, включающего в себя страницу, к которой выполняется обращение доступа, из внешней памяти в ответ на обращение доступа к памяти.
18. Устройство по п.15, в котором контроллер памяти выполнен с возможностью получения первой информации безопасности для первого образа кода из внешней памяти и аутентификации первого образа кода на основе первой информации безопасности, и в котором главный контроллер выполнен с возможностью обеспечения работоспособности беспроводного устройства, если первый образ кода аутентифицирован.
19. Устройство по п.18, в котором первая информация безопасности содержит сертификат и цифровую подпись, и в котором контроллер памяти выполнен с возможностью аутентификации сертификата на основе корневого открытого ключа и аутентификации первого образа кода на основе цифровой подписи и открытого ключа из сертификата.
20. Устройство по п.18, в котором контроллер памяти выполнен с возможностью получения второй информации безопасности для второго образа кода от внешней памяти, аутентификации второго образа кода на основе второй информации безопасности и обеспечения исполнения второго образа кода, если он аутентифицирован.
21. Устройство по п.20, в котором вторая информация безопасности содержит по меньшей мере один хеш-дайджест, и в котором контроллер памяти выполнен с возможностью аутентификации по меньшей мере одного хеш-дайджеста на основе первой информации безопасности и аутентификации второго образа кода на постраничной основе, основываясь на по меньшей мере одном хеш-дайджесте.
22. Устройство по п.15, в котором второй образ кода содержит множество страниц, и в котором контроллер памяти выполнен с возможностью загрузки множества страниц второго образа кода, одну страницу за раз, из внешней памяти.
23. Устройство по п.22, в котором контроллер памяти выполнен с возможностью ведения по меньшей мере одной таблицы, указывающей страницы второго образа кода, которые были загружены из внешней памяти, и страницы второго образа кода, которые не были загружены.
24. Устройство по п.23, в котором контроллер памяти выполнен с возможностью создания, по меньшей мере, одной таблицы перед загрузкой второго образа кода, и удаления этой, по меньшей мере, одной таблицы после загрузки второго образа кода.
25. Устройство по п.22, в котором контроллер памяти выполнен с возможностью ведения главной таблицы с многочисленными элементами для многочисленных диапазонов адресов, и ведения многочисленных таблиц страниц для многочисленных диапазонов адресов, одна таблица страниц для каждого диапазона адресов, причем каждая таблица страниц включает в себя многочисленные элементы для многочисленных страниц в диапазоне адресов для этой таблицы страниц.
26. Устройство по п.25, в котором каждый элемент главной таблицы включает в себя указатель на соответствующую таблицу страниц, и причем каждый элемент соответствующей таблицы страниц указывает, является ли доступной ассоциированная страница.
27. Устройство по п.15, в котором внешняя память представляет собой флэш-память типа NAND, и в котором контроллер памяти выполнен с возможностью загрузки первого и второго образа кода из флэш-памяти типа NAND в синхронное динамическое оперативное запоминающее устройство (SDRAM).
28. Устройство по п.15, в котором беспроводное устройство во время работы способно выполнять, по меньшей мере, одно из обработки вводов с клавиатуры и установления вызовов с системой беспроводной связи.
29. Способ начальной загрузки беспроводного устройства, содержащий:
загрузку первого образа кода из сегмента без страничной организации внешней памяти для начальной загрузки беспроводного устройства;
обеспечение работоспособности беспроводного устройства после загрузки первого образа кода;
загрузку одной или более страниц второго образа кода из сегмента со страничной организацией внешней памяти в то время, когда беспроводное устройство является работающим, для продолжения начальной загрузки беспроводного устройства; и
аутентификацию каждой страницы второго образа кода, в качестве загруженной и независимой от других страниц второго образа кода и первого образа кода.
30. Способ по п.29, в котором загрузка второго образа кода содержит загрузку второго образа кода в виде фоновой задачи в то время, когда беспроводное устройство является работающим.
31. Способ по п.29, в котором загрузка второго образа кода содержит
прием обращения доступа к памяти для страницы второго образа кода, и
загрузку заданного количества страниц второго образа кода, включающих в себя страницу, к которой выполняется обращение доступа, из внешней памяти в ответ на обращение доступа к памяти.
32. Способ по п.29, дополнительно содержащий:
получение первой информации безопасности для первого образа кода из внешней памяти; и
аутентификацию первого образа кода на основе первой информации безопасности, и при этом работоспособность беспроводного устройства обеспечивается, если первый образ кода аутентифицирован.
33. Способ по п.32, в котором первая информация безопасности содержит сертификат и цифровую подпись, и в котором аутентификация первого образа кода содержит
аутентификацию сертификата на основе корневого открытого ключа, и
аутентификацию первого образа кода на основе цифровой подписи и открытого ключа из сертификата.
34. Способ по п.32, дополнительно содержащий:
получение второй информации безопасности для второго образа кода из внешней памяти;
аутентификацию второго образа кода на постраничной основе, основываясь на второй информации безопасности; и
обеспечение исполнения второго образа кода, если он аутентифицирован.
35. Способ по п.34, в котором вторая информация безопасности содержит по меньшей мере один хеш-дайджест, и в котором аутентификация второго образа кода содержит
аутентификацию по меньшей мере одного хеш-дайджеста на основе первой информации безопасности, и
аутентификацию второго образа кода на основе по меньшей мере одного хеш-дайджеста.
36. Устройство для начальной загрузки беспроводного устройства, содержащее:
средство загрузки первого образа кода из сегмента без страничной организации внешней памяти для начальной загрузки беспроводного устройства;
средство обеспечения работоспособности беспроводного устройства после загрузки первого образа кода;
средство загрузки одной или более страниц второго образа кода из сегмента со страничной организацией внешней памяти в то время, когда беспроводное устройство является работающим, для продолжения начальной загрузки беспроводного устройства; и
средство аутентификации каждой страницы второго образа кода в качестве загруженной и независимой от других страниц второго образа кода и первого образа кода.
37. Устройство по п.36, дополнительно содержащее:
средство получения первой информации безопасности для первого образа кода из внешней памяти; и
средство аутентификации первого образа кода на основе первой информации безопасности, и при этом работоспособность беспроводного устройства обеспечивается, если первый образ кода аутентифицирован.
38. Устройство по п.37, в котором первая информация безопасности содержит сертификат и цифровую подпись, и в котором средство аутентификации первого образа кода содержит
средство аутентификации сертификата на основе корневого открытого ключа, и
средство аутентификации первого образа кода на основе цифровой подписи и открытого ключа из сертификата.
39. Устройство по п.37, дополнительно содержащее:
средство получения второй информации безопасности для второго образа кода из внешней памяти;
средство аутентификации второго образа кода на основе второй информации безопасности; и
средство обеспечения исполнения второго образа кода, если он аутентифицирован.
40. Устройство по п.39, в котором вторая информация безопасности содержит по меньшей мере один хеш-дайджест, и в котором средство аутентификации второго образа кода содержит
средство аутентификации по меньшей мере одного хеш-дайджеста на основе первой информации безопасности, и
средство аутентификации второго образа кода на основе по меньшей мере одного хеш-дайджеста.
41. Постоянный машиночитаемый носитель, содержащий сохраненные на нем компьютерные коды для начальной загрузки беспроводного устройства, содержащие:
код, побуждающий один или более процессоров к загрузке первого образа кода из сегмента без страничной организации внешней памяти для начальной загрузки беспроводного устройства;
код, побуждающий один или более процессоров к обеспечению работоспособности беспроводного устройства после загрузки первого образа кода;
код, побуждающий один или более процессоров к загрузке отдельных страниц второго образа кода из сегмента со страничной организацией внешней памяти в то время, когда беспроводное устройство является работающим, для продолжения начальной загрузки беспроводного устройства; и
код, побуждающий один или более процессоров к аутентификации каждой страницы второго образа кода, в качестве загруженной и независимой от других страниц второго образа кода и первого образа кода.
42. Постоянный машиночитаемый носитель по п.41, дополнительно содержащий:
код, побуждающий один или более процессоров к получению первой информации безопасности для первого образа кода из внешней памяти;
код, побуждающий один или более процессоров к аутентификации первого образа кода на основе первой информации безопасности; и
код, побуждающий один или более процессоров к обеспечению работоспособности беспроводного устройства, если первый образ кода аутентифицирован.
43. Постоянный машиночитаемый носитель по п.42, дополнительно содержащий:
код, побуждающий один или более процессоров к получению второй информации безопасности для второго образа кода из внешней памяти;
код, побуждающий один или более процессоров к аутентификации второго образа кода на основе второй информации безопасности; и
код, побуждающий один или более процессоров к обеспечению исполнения второго образа кода, если он аутентифицирован.
44. Постоянный машиночитаемый носитель, содержащий сохраненные на нем компьютерные коды для начальной загрузки беспроводного устройства, содержащие:
код, побуждающий один или более процессоров к программированию первого образа кода в устройство памяти, используемое для беспроводного устройства, причем первый образ кода загружается из сегмента без страничной организации устройства памяти для начальной загрузки беспроводного устройства и обеспечения работоспособности беспроводного устройства;
код, побуждающий один или более процессоров к программированию второго образа кода в устройство памяти, причем второй образ кода загружается в качестве отдельных страниц из сегмента со страничной организацией устройства памяти в то время, когда беспроводное устройство является работающим, для продолжения начальной загрузки беспроводного устройства; и
код, побуждающий один или более процессоров к генерированию информации безопасности для каждой страницы второго образа кода так, что каждая страница второго образа кода может аутентифицироваться независимо от других страниц второго образа кода и первого образа кода.
RU2010121177/08A 2007-10-26 2008-10-21 Прогрессивная начальная загрузка для беспроводного устройства RU2456663C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/925,567 US8683213B2 (en) 2007-10-26 2007-10-26 Progressive boot for a wireless device
US11/925,567 2007-10-26

Publications (2)

Publication Number Publication Date
RU2010121177A RU2010121177A (ru) 2011-12-10
RU2456663C2 true RU2456663C2 (ru) 2012-07-20

Family

ID=40342629

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010121177/08A RU2456663C2 (ru) 2007-10-26 2008-10-21 Прогрессивная начальная загрузка для беспроводного устройства

Country Status (10)

Country Link
US (1) US8683213B2 (ru)
EP (1) EP2210174B1 (ru)
JP (2) JP5936820B2 (ru)
KR (2) KR101170335B1 (ru)
CN (1) CN101836187B (ru)
BR (1) BRPI0818710A2 (ru)
CA (1) CA2701279C (ru)
RU (1) RU2456663C2 (ru)
TW (1) TWI450195B (ru)
WO (1) WO2009055394A2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690595B2 (en) 2013-03-15 2017-06-27 Huawei Technologies Co., Ltd. Booting method for computer system with multiple central processing units

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291226B2 (en) * 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
US20090254898A1 (en) * 2008-04-08 2009-10-08 Microsoft Corporation Converting a device from one system to another
US8072811B2 (en) * 2008-05-07 2011-12-06 Aplus Flash Technology, Inc, NAND based NMOS NOR flash memory cell, a NAND based NMOS NOR flash memory array, and a method of forming a NAND based NMOS NOR flash memory array
KR101181957B1 (ko) * 2008-11-18 2012-09-12 한국전자통신연구원 소프트웨어 기반의 무선 단말에서의 소프트웨어 재구성 방법 및 장치
JP5422308B2 (ja) 2009-08-31 2014-02-19 任天堂株式会社 情報処理装置
KR101523420B1 (ko) * 2010-04-12 2015-05-27 인터디지탈 패튼 홀딩스, 인크 부팅 처리에서의 단계화 제어 해제
US8310885B2 (en) * 2010-04-28 2012-11-13 International Business Machines Corporation Measuring SDRAM control signal timing
TWI456577B (zh) * 2010-08-10 2014-10-11 Hon Hai Prec Ind Co Ltd 反及閘快閃記憶體啓動裝置及使用方法
US8423724B2 (en) * 2010-09-08 2013-04-16 Smart Modular Technologies, Inc. Dynamic back-up storage system with rapid restore and method of operation thereof
JP5765561B2 (ja) * 2011-05-11 2015-08-19 横河電機株式会社 表示器を備える機器
US8949586B2 (en) * 2011-10-06 2015-02-03 Cisco Technology, Inc. System and method for authenticating computer system boot instructions during booting by using a public key associated with a processor and a monitoring device
JP5776480B2 (ja) * 2011-10-07 2015-09-09 株式会社リコー 情報処理装置、正当性検証方法、正当性検証プログラム
KR20130081459A (ko) * 2012-01-09 2013-07-17 삼성전자주식회사 휴대단말기의 pre―load 어플리케이션 탑재를 위한 메모리 영역구분 장치
US9195406B2 (en) 2013-06-28 2015-11-24 Micron Technology, Inc. Operation management in a memory device
JP2015022373A (ja) * 2013-07-16 2015-02-02 株式会社リコー 制御装置及びその起動処理方法、並びにその制御装置を備えた画像形成装置
KR102538096B1 (ko) * 2016-09-13 2023-05-31 삼성전자주식회사 어플리케이션을 검증하는 디바이스 및 방법
CN106452783B (zh) * 2016-09-26 2021-02-09 上海兆芯集成电路有限公司 计算机系统及安全执行的方法
KR102617354B1 (ko) * 2017-01-05 2023-12-26 삼성전자주식회사 보안 부트 시퀀서 및 보안 부트 장치
US11003537B2 (en) * 2018-05-29 2021-05-11 Micron Technology, Inc. Determining validity of data read from memory by a controller
US11250135B1 (en) 2018-07-31 2022-02-15 Marvell Asia Pte, Ltd. Method and apparatus for authorizing unlocking of a device
US10942654B2 (en) * 2018-11-01 2021-03-09 EMC IP Holding Company LLC Hash-based data recovery from remote storage system
US11271720B2 (en) * 2019-03-25 2022-03-08 Micron Technology, Inc. Validating data stored in memory using cryptographic hashes
US11159514B2 (en) * 2020-02-27 2021-10-26 Bank Of America Corporation System for authenticating process operations on a network using context locked progressive session tokens

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2005115918A (ru) * 2004-06-30 2006-11-20 Майкрософт Корпорейшн (Us) Система и способ для защищенной начальной загрузки операционной системы с использованием проверки состояния

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5610981A (en) * 1992-06-04 1997-03-11 Integrated Technologies Of America, Inc. Preboot protection for a data security system with anti-intrusion capability
JPH0793980A (ja) 1993-09-24 1995-04-07 Toshiba Emi Ltd データ記録再生装置
TW266241B (en) 1995-02-06 1995-12-21 Komatsu Mfg Co Ltd Revolving-type low altitude embarkation operation car
JP2002515765A (ja) 1995-06-29 2002-05-28 シリコン・ゲーミング・インコーポレーテッド 優れた遊技機能と認証およびセキュリティを有する電子的カジノゲームシステム
US5643086A (en) * 1995-06-29 1997-07-01 Silicon Gaming, Inc. Electronic casino gaming apparatus with improved play capacity, authentication and security
US6708274B2 (en) * 1998-04-30 2004-03-16 Intel Corporation Cryptographically protected paging subsystem
US20010007131A1 (en) * 1997-09-11 2001-07-05 Leonard J. Galasso Method for validating expansion roms using cryptography
US6185678B1 (en) * 1997-10-02 2001-02-06 Trustees Of The University Of Pennsylvania Secure and reliable bootstrap architecture
US6463535B1 (en) 1998-10-05 2002-10-08 Intel Corporation System and method for verifying the integrity and authorization of software before execution in a local platform
US7409546B2 (en) * 1999-10-20 2008-08-05 Tivo Inc. Cryptographically signed filesystem
US6565443B1 (en) * 1999-09-14 2003-05-20 Innovative Gaming Corporation System and method for verifying the contents of a mass storage device before granting access to computer readable data stored on the device
US6595856B1 (en) 2000-01-04 2003-07-22 Sigma Game, Inc. Electronic security technique for gaming software
US6601167B1 (en) 2000-01-14 2003-07-29 Advanced Micro Devices, Inc. Computer system initialization with boot program stored in sequential access memory, controlled by a boot loader to control and execute the boot program
US6625729B1 (en) * 2000-03-31 2003-09-23 Hewlett-Packard Company, L.P. Computer system having security features for authenticating different components
JP3971890B2 (ja) 2000-11-01 2007-09-05 日本電信電話株式会社 署名検証支援装置、署名検証支援方法、及び電子署名検証方法
US20030018892A1 (en) * 2001-07-19 2003-01-23 Jose Tello Computer with a modified north bridge, security engine and smart card having a secure boot capability and method for secure booting a computer
DE10208442A1 (de) 2001-09-27 2003-05-15 Marc Delling Hochsicherheits-Server als Datenverarbeitungsanlage
US6944757B2 (en) * 2001-10-16 2005-09-13 Dell Products L.P. Method for allowing CD removal when booting embedded OS from a CD-ROM device
US7434068B2 (en) * 2001-10-19 2008-10-07 Intel Corporation Content protection in non-volatile storage devices
US20030084298A1 (en) * 2001-10-25 2003-05-01 Messerges Thomas S. Method for efficient hashing of digital content
TWI228220B (en) 2002-03-08 2005-02-21 Samsung Electronics Co Ltd System boot using NAND flash memory and method thereof
JP4675031B2 (ja) 2002-04-23 2011-04-20 パナソニック株式会社 サーバ装置及びプログラム管理システム
EP2309411A3 (en) * 2002-04-23 2011-06-15 Panasonic Corporation Method and system for controlled distribution of software programs
JP4492025B2 (ja) * 2002-05-21 2010-06-30 株式会社デンソー 電子制御装置のデータ格納方法
KR100469669B1 (ko) 2002-09-24 2005-02-02 삼성전자주식회사 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그시스템 부팅 방법
JP4073301B2 (ja) 2002-10-15 2008-04-09 株式会社リコー 情報処理装置
JP4323163B2 (ja) 2002-11-25 2009-09-02 三菱電機株式会社 サーバ装置
JP2004265286A (ja) 2003-03-04 2004-09-24 Fujitsu Ltd 環境に応じて選択されたセキュリティ・ポリシーに従うモバイル機器の管理
US20050091496A1 (en) * 2003-10-23 2005-04-28 Hyser Chris D. Method and system for distributed key management in a secure boot environment
JP2005157528A (ja) 2003-11-21 2005-06-16 Fuji Xerox Co Ltd メモリ装置
JP4534498B2 (ja) 2004-01-28 2010-09-01 ソニー株式会社 半導体装置およびその起動処理方法
US7401234B2 (en) * 2004-03-01 2008-07-15 Freescale Semiconductor, Inc. Autonomous memory checker for runtime security assurance and method therefore
JP4604543B2 (ja) * 2004-04-30 2011-01-05 日本電気株式会社 計算機、計算機起動方法、管理サーバ装置およびプログラム
JP2006059116A (ja) * 2004-08-19 2006-03-02 Sony Ericsson Mobilecommunications Japan Inc 携帯端末
JP2006146485A (ja) 2004-11-18 2006-06-08 Toshiba Corp 携帯端末
JP2006163714A (ja) * 2004-12-06 2006-06-22 Fuji Photo Film Co Ltd 撮影装置
US20060133495A1 (en) 2004-12-22 2006-06-22 Yan Ye Temporal error concealment for video communications
JP2006178909A (ja) 2004-12-24 2006-07-06 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
WO2006082985A2 (en) 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for providing a secure booting sequence in a processor
JP4373943B2 (ja) 2005-02-28 2009-11-25 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
KR100626391B1 (ko) 2005-04-01 2006-09-20 삼성전자주식회사 원낸드 플래시 메모리 및 그것을 포함한 데이터 처리시스템
TWI266241B (en) * 2005-07-01 2006-11-11 Via Tech Inc Method for booting up a computer system
JP4130453B2 (ja) * 2005-07-28 2008-08-06 京セラ株式会社 無線通信装置
JP4661505B2 (ja) * 2005-09-30 2011-03-30 ソニー株式会社 情報処理装置、情報処理方法及びそのプログラム
US20070143530A1 (en) * 2005-12-15 2007-06-21 Rudelic John C Method and apparatus for multi-block updates with secure flash memory
US8291226B2 (en) * 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
JP4921000B2 (ja) * 2006-03-15 2012-04-18 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、及びプログラム
US8750387B2 (en) 2006-04-04 2014-06-10 Qualcomm Incorporated Adaptive encoder-assisted frame rate up conversion
JP2007282067A (ja) * 2006-04-11 2007-10-25 Hitachi Ltd デジタル放送受信装置
US8429643B2 (en) * 2007-09-05 2013-04-23 Microsoft Corporation Secure upgrade of firmware update in constrained memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2005115918A (ru) * 2004-06-30 2006-11-20 Майкрософт Корпорейшн (Us) Система и способ для защищенной начальной загрузки операционной системы с использованием проверки состояния

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690595B2 (en) 2013-03-15 2017-06-27 Huawei Technologies Co., Ltd. Booting method for computer system with multiple central processing units
RU2630171C2 (ru) * 2013-03-15 2017-09-05 Хуавей Текнолоджиз Ко., Лтд. Способ начальной загрузки компьютерной системы с множеством центральных процессоров

Also Published As

Publication number Publication date
CN101836187A (zh) 2010-09-15
RU2010121177A (ru) 2011-12-10
BRPI0818710A2 (pt) 2015-05-05
EP2210174A2 (en) 2010-07-28
CN101836187B (zh) 2013-10-30
US20090113558A1 (en) 2009-04-30
WO2009055394A2 (en) 2009-04-30
TW200935308A (en) 2009-08-16
CA2701279C (en) 2015-11-24
US8683213B2 (en) 2014-03-25
JP5936820B2 (ja) 2016-06-22
JP2011501321A (ja) 2011-01-06
TWI450195B (zh) 2014-08-21
KR20110138304A (ko) 2011-12-26
WO2009055394A3 (en) 2009-09-24
JP2016001481A (ja) 2016-01-07
KR20100075658A (ko) 2010-07-02
CA2701279A1 (en) 2009-04-30
KR101170335B1 (ko) 2012-08-02
EP2210174B1 (en) 2018-08-29
KR101207823B1 (ko) 2012-12-04

Similar Documents

Publication Publication Date Title
RU2456663C2 (ru) Прогрессивная начальная загрузка для беспроводного устройства
KR101049647B1 (ko) 외부 저장 디바이스로부터 안전하게 부팅하기 위한 방법 및 장치
US9280337B2 (en) Secured distribution of software updates
US8560823B1 (en) Trusted modular firmware update using digital certificate
JP4074620B2 (ja) メモリ管理ユニット
US11893118B2 (en) Transfer of ownership of a computing device via a security processor
EP3384423B1 (en) Device with multiple roots of trust
CN111201553B (zh) 一种安全元件及相关设备
US20220382874A1 (en) Secure computation environment
CN110352411B (zh) 用于控制对安全计算资源的访问的方法和装置
US11853428B2 (en) Firmware policy enforcement via a security processor
CN108595981B (zh) 加密安卓系统的方法
CN116318658A (zh) 信任域扩展媒介的密钥验证方法、装置、电子设备及介质
CN117610083A (zh) 文件校验方法、装置、电子设备及计算机存储介质
CN117556418A (zh) 一种确定内核状态的方法和相关设备