Система и способы для шифрования данных

Изобретение относится к области криптографии. Технический результат – эффективное шифрование данных. Способ шифрования данных, включающий шаги: реализации в памяти по меньшей мере одного вычислительного устройства распределителя ключей, сконфигурированного на создание и распределение по меньшей мере одного ключа шифрования, используемого для шифрования данных, реализации в памяти, по меньшей мере одного вычислительного устройства, по меньшей мере одного файла ключей, привязанного по меньшей мере к одному зарегистрированному пользователю и имеющего поле ключа, содержащее псевдослучайную строку байтов и уникальное значение хэш-функции, используемое для привязки файла ключей по меньшей мере к одному пользователю, формирования набора базовых символов, случайно выбранных из поля ключа, при этом набор базовых символов является поднабором поля ключа, генерирования ключа шифрования путем ввода базовых символов в алгоритм шифрования, приема данных, подлежащих шифрованию, и шифрования данных с использованием ключа шифрования. 3 н. и 17 з.п. ф-лы, 10 ил.

 

Родственные заявки

Приоритет настоящей заявки испрашивается на основании предварительной заявки US 61/813186, поданной 18 апреля 2013 г., под названием "System and Methods for Encrypting Data". Содержание упомянутой заявки в порядки ссылки включено в настоящую заявку.

Включение в порядке ссылки

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

Область техники, к которой относится изобретение

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

Уровень техники

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

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

Дополнительным недостатком известных PRNG является относительная вероятность конкретного числа или символа, включаемого в псевдослучайную величину. В частности, при генерировании числовой последовательности PRNG должен выбирать одну из десяти целочисленных величин: 0, 1, 2, 3, 4, 5, 6, 7, 8 или 9. Независимо от средства, используемого для генерирования псевдослучайной величины, полученная окончательная величина должна находиться в этом интервале. Это же касается псевдослучайных буквенно-цифровых величин (т.е. 0-9 и A-Z, включая, возможно, даже другие символы ASCII). В зависимости от стойкости PRNG случайная последовательность из десяти разрядов может являться очень слабой как, например, 7526435744. Вероятность включения определенного числа возрастает с увеличением длины генерируемой последовательности. Соответственно, более вероятно, что последовательность вдвое большей длины содержит какое-либо число помимо тех, которые выбраны для исходной последовательности (например, 30820913007504796977). Эта вероятность возрастает с увеличением длины псевдослучайной последовательности чисел. Кроме того, после того как определена длина ключа, чтобы взломать ключ шифрования, просто прогоняют каждую перестановку комбинаций чисел для ключа этой длины.

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

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

Краткое изложение сущности изобретения

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

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

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

Краткое описание чертежей

Особенности настоящего изобретения проиллюстрированы на сопровождающих чертежах, на которых:

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

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

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

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

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

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

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

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

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

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

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

Подробное описание

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

Рассмотрим фиг. 1, на которой показана архитектурная схема типичной системы 20 шифрования данных согласно по меньшей мере одному из вариантов осуществления. В одном из примеров осуществления в систему 20 входит распределитель 22 ключей, генератор 24 псевдослучайных чисел (PRNG), модуль 26 шифрования, по меньшей мере один файл 28 ключей и по меньшей мере одно клиентское приложение 30, при этом каждое из перечисленного постоянно хранится в памяти по меньшей мере одного вычислительного устройства 34. Следует отметить, что термином "память" обозначается электронная запоминающая среда любого типа (или комбинация запоминающих сред), известная в настоящее время или созданная позднее, такая как локальные жесткие диски, ОЗУ, флэш-память, внешние запоминающие устройства, сетевые запоминающие устройства или запоминающие устройства для облачных вычислений и т.д. Кроме того, различные компоненты системы 20 могут постоянно храниться в памяти 32 одного вычислительного устройства 34 или могут отдельно постоянно храниться в двух или более вычислительных устройствах 34. Помимо этого, термином "вычислительное устройство" обозначается вычислительное устройство любого типа, известное в настоящее время или созданное позднее, такое как настольные компьютеры, смартфоны, портативные компьютеры, планшетные компьютеры, игровые устройства и т.д.

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

По меньшей мере в одном из вариантов осуществления модуль 26 шифрования выполнят процедуру приема уязвимых данных 36 и генерирования маркера 38 для использования вместо них. Иными словами, используя соответствующий ключ шифрования, модуль 26 шифрования генерирует маркер 38, шифрует исходные уязвимые данные 36 и сохраняет зашифрованные данные 40 в памяти 32. Маркером 38 является лишь ссылка на зашифрованные данные 40, и между маркером 38 и зашифрованными данными 40 отсутствует математическая зависимость. Соответственно, маркер 38 может безопасно использоваться во всей системе 20 в то время, как зашифрованные данные 40, которые он представляет, продолжают храниться в памяти 32. Поскольку модуль 26 шифрования обеспечивает взаимнооднозначное соответствие между уязвимыми данными 36 и генерированным маркером 38, во всей системе 20 поддерживается целостность на уровне ссылок.

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

На фиг. 2 проиллюстрирован один из примеров осуществления по меньшей мере одного файла 28 ключей в качестве примера структуры данных, в которой хранятся определенные величины, связанные с ключом шифрования. По меньшей мере в одном из альтернативных вариантов осуществления файлом 28 ключей является текстовой файл. По меньшей мере в одном из вариантов осуществления файл 28 ключей содержит заголовок 42, поле 44 ключа, значение 46 хэш-функции и информацию 48 о владельце. В заголовке 42 содержится определенная версия информации для файла 28 ключей. Как показано на фиг. 3, полем 44 ключа является псевдослучайная строка байтов. В одном из примеров осуществления поле 44 ключа генерируется PRNG 24; тем не менее, в альтернативных вариантах осуществления поле 44 ключа может генерироваться любыми другими известными в настоящее время или созданными позднее применимыми средствами, позволяющими генерировать случайную или псевдослучайную строку байтов. Как показано на фиг. 4, значение 46 хэш-функции является уникальным идентификатором, который генерируется с целью привязки файла 28 ключей к его владельцу (т.е. пользователю) и к вычислительному устройству-источнику 34. Тем не менее, по меньшей мере в одном из вариантов осуществления система 20 обеспечивает функцию экспорта, позволяющую переносить файл 28 ключей для использования в различных вычислительных устройствах. Подробности того, как по меньшей мере в одном из вариантов осуществления выводят поле 44 ключа и значение 46 хэш-функции (вместе с соответствующим ключом шифрования), описаны далее. Как показано фиг. 2, информация 48 о владельце содержит подробности, касающиеся владельца файла 28 ключей, такие как имя пользователя, IP-адрес т.д.

Как упомянуто выше, система 20 не шифрует ключ шифрования. Таким образом, в системе 20 не используется КЕК. Вместо этого, как показано на блок-схеме, проиллюстрированной на фиг. 5, распределитель 22 ключей сначала генерирует поле 44 ключа в качестве псевдослучайной строки байтов или символов (шаг 100). По меньшей мере в одном из вариантов осуществления в процессе работы система 20 сначала проверяет, является ли пользователь новым (шаг 102). В случае новых пользователей система 20 предлагает ввести определенные характеризующие пользователя параметры, такие как имя пользователя и фразовый пароль (шаг 104). Выборочные данные, такие как поле 44 ключа, фразовый пароль и другие параметры среды и/или индивидуальные параметры пользователя (т.е. дата и/или время, отображаемые вычислительным устройством, версия операционной системы, имя пользователя, IP-адрес и т.д.), вводятся в хэш-функцию, которая, в свою очередь, выводит уникальное значение 46 хэш-функции (шаг 106). При использовании системы 20 еще раз проверяется личность и соответствующие права доступа пользователя на основании значения 46 хэш-функции (шаг 108). В одном из таких вариантов осуществления пользователю предлагается повторно ввести свой фразовый пароль, после чего система 20 выполняет хэш-функцию с использованием тех же параметров, чтобы сравнить результат со значением 46 хэш-функции, хранящимся в файле 28 ключей пользователя. В одном из альтернативных вариантов осуществления система 20 просто проверяет, имеет ли пользователь файл 28 ключей, уже хранящийся в памяти 32.

Затем, как показано на фиг. 6, распределитель 22 ключей применяет алгоритм извлечения ключа, чтобы сформировать набор базовых символов 50, случайно выбранных из поля 44 ключа (шаг 110). Набор базовых символов 50 является меньшим, чем поле 44 ключа, а конкретные символы, случайно (и предпочтительно несвязно) выбираемые из поля 44 ключа, определяются алгоритмом извлечения ключа на основании различных параметров среды и/или индивидуальных параметров пользователя. Этим способом файл 28 ключей повышает степень энтропии путем увеличения числа символов, случайно генерируемых в поле 44 ключа, а затем случайного выбора длины строки, которая требуется, чтобы получить набор базовых символов 50 из этой расширенной группы. Иными словами, за счет использования файла 28 ключей значительно снижается вероятность дублирования заданного поля 44 ключа в различных инсталляциях системы 20. Что касается алгоритма извлечения ключа, используемого для формирования набора базовых символов 50, его подробности не раскрыты в описании с целью сохранения целостности системы 20 и сопутствующих способов шифрования уязвимых данных 36. Кроме того, поскольку набор базовых символов 50 является невидимым, любые попытки восстановления алгоритма извлечения ключа в лучшем случае потребовали бы больших усилий.

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

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

Как упомянуто выше, по меньшей мере в одном из вариантов осуществления поле 44 ключа генерируется PRNG 24. В одном из таких вариантов осуществления, проиллюстрированном на блок-схеме, показанной на фиг. 7, PRNG 24 сначала генерирует длинную псевдослучайную последовательность (LPRS) 52 чисел и/или символов (шаг 200). Один из примеров LPRS 52 проиллюстрирован на фиг. 8. Затем PRNG 24 формирует псевдослучайную строку 54 путем выбора псевдослучайной точки 56 входа (шаг 202) и выбора заданного числа последовательных цифр (и/или символов) в LPRS 52, начиная с псевдослучайной точки 56 входа (шаг 204). Например, как показано на фиг. 8, если PRNG 24 выбирает псевдослучайную точку 56 входа "3", а длина псевдослучайной строки 54 должна быть равна "10", из LPRS 52 на фиг. 8 будет выведена псевдослучайная строка 54 "1043726879". При необходимости могут генерироваться дополнительные псевдослучайные строки 54 (шаг 206). В других дополнительных вариантах осуществления PRNG 24 формирует псевдослучайную строку 54 путем выбора заданного числа непоследовательных цифр (и/или символов) в LPRS 52, начиная с псевдослучайной точки 56 входа. Тем самым, в результате сохранения в памяти 32 LPRS 52 и формирования из нее псевдослучайной строки 54 относительно меньшей длины повышается степень энтропии PRNG 24. Кроме того, в вариантах осуществления, в которых память 32 системы 20 не относится к вычислительному устройству 34, в котором размещен PRNG 24, LPRS 52 образует уровень абстракции, предотвращающий чьи-либо попытки разгадать псевдослучайную строку 54 с использованием знания аппаратных средств вычислительного устройства 34 в качестве основы для такого разгадывания. Иными словами, по меньшей мере в одном из вариантов осуществления LPRS 52 может генерироваться в одном вычислительном устройстве 34 и использоваться в другом.

Одним из возможных недостатков описанного выше варианта осуществления PRNG 24 является то, что он не рассчитан на автоматическое обновление LPRS 52. Более подробно и со ссылкой на пример LPRS 52, проиллюстрированный на фиг. 8, существует 90 возможных уникальных псевдослучайных строк 54 из 10 символов, которые могут использоваться просто путем выбора псевдослучайной точки 56 входа и отсчета на 10 символов вперед. Поскольку в любом используемом для этого вычислительном устройстве 34 для выбора псевдослучайной точки 56 входа используется PRNG 24, действительное число уникальных псевдослучайных строк 54, которые могут выбираться до того, как они начнут повторяться, является значительно меньшим. Чтобы преодолеть этот недостаток, по меньшей мере в одном из вариантов осуществления используется расширенная архитектура, которая предусматривает сохранение и выборку набора символов, который использовался для создания LPRS 52. Тем самым обеспечивается автоматическое периодическое обновление LPRS 52 (шаг 208) на основании набора символов, что снижает вероятность повтора конкретной псевдослучайной строки 54.

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

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

В одном из таких вариантов осуществления, проиллюстрированном на блок-схеме, показанной фиг. 10, модуль 26 шифрования сначала генерирует маркер 38, имеющий известную величину (шаг 300), и помещает первый экземпляр 58 известного маркера 38 в начало уязвимых данных 36, подлежащих шифрованию (шаг 302). Затем случайно генерируется (шаг 304) контрольная сумма 60. В одном из примеров осуществления контрольная сумма 60 генерируется PRNG 24 описанным выше способом; тем не менее, в альтернативных вариантах осуществления контрольная сумма 60 может генерироваться любыми другими известными в настоящее время или созданными позднее применимыми средствами, позволяющими генерировать такую случайную или псевдослучайную строку байтов. Затем контрольная сумма 60 делится на первую часть 62 и вторую часть 64 (шаг 306). Первая часть 62 контрольной суммы 60 вводится после первого экземпляра 58 маркера (шаг 308), за ней вводятся уязвимые данные 36 (шаг 310), затем вторая часть 64 контрольной суммы 60 (шаг 312) и второй экземпляр 66 маркера 38 (шаг 314). Затем с помощью ключа шифрования шифруется вся строка данных (шаг 316). Таким образом, вторая часть 64 контрольной суммы 60, следующая за уязвимыми данными 36, подлежащими шифрованию, имеет известную взаимосвязь с первой частью 62 контрольной суммы 60. В проиллюстрированном на фиг. 9 примере контрольная сумма 60 содержит последовательность цифр, начинающуюся в первой части 62 и продолжающуюся во второй части 64. Тем самым гарантируется, что в случае любого несоответствия ключа шифрования произойдет обнаружимое искажение маркера 38 или контрольной суммы 60. Поскольку величина маркера 38 известна, модуль 26 шифрования способен обнаруживать искажение или частичное искажение маркера 38 вследствие частичной расшифровки. Это позволяет модулю 26 шифрования применять различные методы вывода считываемых, но ложных данных.

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

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

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

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

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

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

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

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

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

приема данных, подлежащих шифрованию, и

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

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

3. Способ согласно вариантам осуществления 1-2, дополнительно включающий выполняемый после обнаружения нового пользователя шаг получения от пользователя выборочной индивидуальной информации пользователя, содержащей по меньшей мере одно из следующего: имя пользователя, фразовый пароль, текущую дату, отображаемую вычислительным устройством пользователя, текущее время, отображаемое вычислительным устройством пользователя, версию операционной системы вычислительного устройства пользователя и IP-адрес вычислительного устройства пользователя.

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

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

6. Способ согласно вариантам осуществления 1-5, дополнительно включающий шаги:

предложения пользователю повторно ввести фразовый пароль,

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

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

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

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

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

10. Способ согласно вариантам осуществления 1-9, дополнительно включающий шаг генерирования поля ключа с использованием генератора псевдослучайных чисел (PRNG).

11. Способ согласно вариантам осуществления 1-10, дополнительно включающий шаги:

генерирования длинной псевдослучайной последовательности (LPRS) байтов, и

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

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

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

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

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

16. Способ согласно вариантам осуществления 1-15, в котором шифрование данных дополнительно включает шаги:

генерирования маркера, имеющего известную величину,

помещения первого экземпляра маркера в начало данных,

случайного генерирования контрольной суммы,

деления контрольной суммы на первую часть и вторую часть,

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

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

помещения второго экземпляра маркера после второй части контрольной суммы, и

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

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

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

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

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

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

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

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

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

приема данных, подлежащих шифрованию, и

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

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

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

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

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

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

генерирования маркера, имеющего известную величину,

помещения первого экземпляра маркера в начало данных,

случайного генерирования контрольной суммы,

деления контрольной суммы на первую часть и вторую часть,

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

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

помещения второго экземпляра маркера после второй части контрольной суммы, и

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

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

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

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

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

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

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

приема данных, подлежащих шифрованию, и

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

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

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

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

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

6. Способ по п. 5, дополнительно включающий шаги:

предложения пользователю повторно ввести фразовый пароль,

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

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

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

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

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

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

11. Способ по п. 10, дополнительно включающий шаги:

генерирования длинной псевдослучайной последовательности (LPRS) байтов, и

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

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

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

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

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

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

16. Способ по п. 1, в котором шифрование данных дополнительно включает шаги:

генерирования маркера, имеющего известную величину,

помещения первого экземпляра маркера в начало данных,

случайного генерирования контрольной суммы,

деления контрольной суммы на первую часть и вторую часть,

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

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

помещения второго экземпляра маркера после второй части контрольной суммы, и

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

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

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

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

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

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

генерирования поля ключа путем генерирования длинной псевдослучайной последовательности (LPRS) байтов и формирования псевдослучайной строки путем

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

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

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

приема данных, подлежащих шифрованию, и

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

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

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

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

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

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

генерирования маркера, имеющего известную величину,

помещения первого экземпляра маркера в начало данных,

случайного генерирования контрольной суммы,

деления контрольной суммы на первую часть и вторую часть,

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

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

помещения второго экземпляра маркера после второй части контрольной суммы, и

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



 

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

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

Изобретение относится к области дистанционного управления осветительными устройствами. Технический результат – безопасное управление дистанционным осветительным устройством.

Изобретение относится к области аутентификации доступа пользователя. Технический результат – эффективная защита доступа от несанкционированного пользователя в сети.

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

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

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

Изобретение относится к области связи. Технический результат - обеспечение высокого уровня надежности и защиты данных.

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

Изобретение относится к области шифрования и дешифрования. Технический результат - защита целостности данных.

Изобретение относится к электронной промышленности, а именно к безбумажным технологиям ведения документооборота. Технический результат - безопасный ввод электронного документа с любого ЭВМ в устройство для подписи.

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

Изобретение относится к области кодирования и декодирования потока данных. Технический результат – эффективная защита потока данных.

Изобретение относится к защите данных. Технический результат - обеспечение безопасного доступа к записи данных.

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

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

Изобретение предназначено для управления доменами. Технический результат - снижение рабочей нагрузки центра управления доменом.

Изобретение относится к защите данных, которыми обмениваются узлы связи. Технический результат - защита данных, которыми обмениваются узлы связи.

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

Изобретение относится к области передачи данных. Технический результат - возможность передачи одного и того же контента нескольким устройствам.

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