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

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

Info

Publication number
RU2619895C1
RU2619895C1 RU2015149481A RU2015149481A RU2619895C1 RU 2619895 C1 RU2619895 C1 RU 2619895C1 RU 2015149481 A RU2015149481 A RU 2015149481A RU 2015149481 A RU2015149481 A RU 2015149481A RU 2619895 C1 RU2619895 C1 RU 2619895C1
Authority
RU
Russia
Prior art keywords
key
encryption
data
pseudo
generating
Prior art date
Application number
RU2015149481A
Other languages
English (en)
Inventor
Винсент Логан ГИЛБЕРТ
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 Рисофтдев, Инк.
Application granted granted Critical
Publication of RU2619895C1 publication Critical patent/RU2619895C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

Родственные заявки
Приоритет настоящей заявки испрашивается на основании предварительной заявки 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. Реализованный в компьютере способ шифрования данных, включающий шаги:
реализации в памяти по меньшей мере одного вычислительного устройства распределителя ключей, сконфигурированного на создание и распределение по меньшей мере одного ключа шифрования, используемого для шифрования данных,
реализации в памяти по меньшей мере одного вычислительного устройства по меньшей мере одного файла ключей, привязанного по меньшей мере к одному зарегистрированному пользователю и имеющего поле ключа, содержащее псевдослучайную строку байтов и уникальное значение хэш-функции, используемое для привязки файла ключей по меньшей мере к одному пользователю,
формирования набора базовых символов, случайно выбранных из поля ключа, при этом набор базовых символов является поднабором поля ключа,
генерирования ключа шифрования путем ввода базовых символов в алгоритм шифрования,
генерирования маркера, имеющего известную величину,
помещения первого экземпляра маркера в начало данных,
случайного генерирования контрольной суммы,
деления контрольной суммы на первую часть и вторую часть,
помещения первой части контрольной суммы между первым экземпляром маркера и началом данных,
помещения второй части контрольной суммы в конце данных,
помещения второго экземпляра маркера после второй части контрольной суммы, и
шифрования всей строки из первого экземпляра маркера, первой части контрольной суммы, данных, второй части контрольной суммы и второго экземпляра маркера с использованием ключа шифрования.
Хотя особенности изобретения описаны со ссылкой по меньшей мере на один пример осуществления, специалистам в данной области техники должно быть ясно, что изобретение не ограничено им. Напротив, объем изобретения следует интерпретировать лишь в связи с прилагаемой формулой изобретения, объект которой, как полагают авторы, является изобретением.

Claims (60)

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. Способ шифрования данных, реализованный в компьютере, включающий шаги:
реализации в памяти по меньшей мере одного вычислительного устройства распределителя ключей, сконфигурированного на создание и распределение по меньшей мере одного ключа шифрования, используемого для шифрования данных,
реализации в памяти по меньшей мере одного вычислительного устройства по меньшей мере одного файла ключей, привязанного по меньшей мере к одному зарегистрированному пользователю и имеющего поле ключа, содержащее псевдослучайную строку байтов и уникальное значение хэш-функции, используемое для привязки файла ключей по меньшей мере к одному пользователю,
формирования набора базовых символов, случайно выбранных из поля ключа, при этом набор базовых символов является поднабором поля ключа,
генерирования ключа шифрования путем ввода базовых символов в алгоритм шифрования,
генерирования маркера, имеющего известную величину,
помещения первого экземпляра маркера в начало данных,
случайного генерирования контрольной суммы,
деления контрольной суммы на первую часть и вторую часть,
помещения первой части контрольной суммы между первым экземпляром маркера и началом данных,
помещения второй части контрольной суммы в конце данных,
помещения второго экземпляра маркера после второй части контрольной суммы, и
шифрования всей строки из первого экземпляра маркера, первой части контрольной суммы, данных, второй части контрольной суммы и второго экземпляра маркера с использованием ключа шифрования.
RU2015149481A 2013-04-18 2014-04-18 Система и способы для шифрования данных RU2619895C1 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361813186P 2013-04-18 2013-04-18
US61/813,186 2013-04-18
PCT/US2014/034582 WO2014172593A1 (en) 2013-04-18 2014-04-18 System and methods for encrypting data

Publications (1)

Publication Number Publication Date
RU2619895C1 true RU2619895C1 (ru) 2017-05-19

Family

ID=51729005

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015149481A RU2619895C1 (ru) 2013-04-18 2014-04-18 Система и способы для шифрования данных

Country Status (14)

Country Link
US (2) US9374224B2 (ru)
EP (1) EP2987267B1 (ru)
JP (1) JP6285536B2 (ru)
KR (1) KR101824787B1 (ru)
CN (1) CN105340211A (ru)
AU (2) AU2014253868B2 (ru)
BR (1) BR112015026182A2 (ru)
CA (1) CA2914785C (ru)
ES (1) ES2731775T3 (ru)
NZ (2) NZ714230A (ru)
PL (1) PL2987267T3 (ru)
RU (1) RU2619895C1 (ru)
SG (1) SG11201509412WA (ru)
WO (1) WO2014172593A1 (ru)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150082054A1 (en) * 2013-08-21 2015-03-19 Venux LLC System and Method for Establishing a Secure Digital Environment
US10361844B2 (en) 2015-04-20 2019-07-23 Certicom Corp. Generating cryptographic function parameters based on an observed astronomical event
US10375070B2 (en) 2015-04-20 2019-08-06 Certicom Corp. Generating cryptographic function parameters from compact source code
US10079675B2 (en) 2015-04-20 2018-09-18 Certicom Corp. Generating cryptographic function parameters from a puzzle
CN106100829B (zh) * 2016-05-23 2020-05-19 深圳市硅格半导体有限公司 加密存储的方法及装置
CA3026281A1 (en) * 2016-06-06 2017-12-14 Agilepq, Inc. Data conversion systems and methods
US10476661B2 (en) * 2016-06-27 2019-11-12 Fujitsu Limited Polynomial-based homomorphic encryption
KR101881117B1 (ko) 2016-09-02 2018-07-23 한전케이디엔 주식회사 다중 통신 암호연산 병렬처리를 구현하는 보안 게이트웨이
US10360373B2 (en) 2016-09-28 2019-07-23 Intel Corporation Return address encryption
CN107320959B (zh) * 2017-06-28 2020-10-23 网易(杭州)网络有限公司 游戏角色标识信息生成方法、装置、介质和电子设备
US11743356B2 (en) * 2018-01-10 2023-08-29 Vmware, Inc. Email notification system
US10924512B2 (en) 2018-03-07 2021-02-16 Vmware, Inc. Secure email gateway with device compliance checking for push notifications
US10848302B2 (en) 2018-04-12 2020-11-24 Simmonds Precision Products, Inc. Network security framework for wireless aircraft communication
US11748297B2 (en) 2019-04-26 2023-09-05 Csub Auxiliary For Sponsored Programs Administration Reconfigurable security hardware and methods for internet of things (IOT) systems
US11381394B2 (en) 2019-07-25 2022-07-05 PUFsecurity Corporation High speed encryption key generating engine
KR102123435B1 (ko) * 2019-08-19 2020-06-16 세종대학교산학협력단 멀티 클라이언트 환경에서 동치 질의를 지원하는 암호화 방법 및 이를 이용한 장치
KR102123440B1 (ko) * 2019-09-02 2020-06-16 세종대학교산학협력단 멀티 클라이언트 환경에서 범위 질의를 지원하는 암호화 방법 및 이를 이용한 장치
US11381393B2 (en) 2019-09-24 2022-07-05 Akamai Technologies Inc. Key rotation for sensitive data tokenization
CN113468544B (zh) * 2020-03-30 2024-04-05 杭州海康威视数字技术股份有限公司 一种应用模型的训练方法及装置
CN113761566A (zh) * 2020-11-27 2021-12-07 西安京迅递供应链科技有限公司 一种数据处理方法和装置
US11727733B2 (en) 2021-05-11 2023-08-15 Ford Global Technologies, Llc Enabling operator controls for machine operation
CN114040229B (zh) * 2021-11-29 2024-02-06 北京无忧创想信息技术有限公司 一种视频加解密方法及装置
CN115412247A (zh) * 2022-11-02 2022-11-29 中安云科科技发展(山东)有限公司 基于时间戳的随机密钥同步方法、平台、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060010203A1 (en) * 2004-06-15 2006-01-12 Nokia Corporation Personal server and network
US20100306294A1 (en) * 2009-05-28 2010-12-02 Schneider James P Mechanism for String Hashing Using a Random Number Generator
US7958362B2 (en) * 2005-10-11 2011-06-07 Chang Gung University User authentication based on asymmetric cryptography utilizing RSA with personalized secret
US20120063597A1 (en) * 2010-09-15 2012-03-15 Uponus Technologies, Llc. Apparatus and associated methodology for managing content control keys
US20130067551A1 (en) * 2011-09-13 2013-03-14 Bank Of America Corporation Multilevel Authentication

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495580A (en) * 1992-10-20 1996-02-27 Xlnt Designs, Inc. Ring network security system with encoding of data entering a subnetwork and decoding of data leaving a subnetwork
US5454039A (en) * 1993-12-06 1995-09-26 International Business Machines Corporation Software-efficient pseudorandom function and the use thereof for encryption
US5438622A (en) * 1994-01-21 1995-08-01 Apple Computer, Inc. Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing an offset in the pseudorandom sequence
US5732138A (en) 1996-01-29 1998-03-24 Silicon Graphics, Inc. Method for seeding a pseudo-random number generator with a cryptographic hash of a digitization of a chaotic system
JPH10301492A (ja) * 1997-04-23 1998-11-13 Sony Corp 暗号化装置および方法、復号装置および方法、並びに情報処理装置および方法
JP2000307565A (ja) * 1999-04-26 2000-11-02 Nec Corp 通信方法、その装置およびicカード
US7373517B1 (en) 1999-08-19 2008-05-13 Visto Corporation System and method for encrypting and decrypting files
US6704730B2 (en) * 2000-02-18 2004-03-09 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US7242772B1 (en) * 2000-09-07 2007-07-10 Eastman Kodak Company Encryption apparatus and method for synchronizing multiple encryption keys with a data stream
GB0030804D0 (en) * 2000-12-16 2001-01-31 Ncr Int Inc Method of conducting transactions
CA2329590C (en) * 2000-12-27 2012-06-26 Certicom Corp. Method of public key generation
JP4488647B2 (ja) * 2001-04-27 2010-06-23 大日本印刷株式会社 通信システム
KR100813954B1 (ko) * 2003-01-16 2008-03-14 삼성전자주식회사 암호화 장치 및 암호화 방법
US7769709B2 (en) * 2004-09-09 2010-08-03 Microsoft Corporation Method, system, and apparatus for creating an archive routine for protecting data in a data protection system
JP4823904B2 (ja) * 2005-03-31 2011-11-24 パナソニック株式会社 データ暗号化装置及びデータ暗号化方法
EP1913509B1 (en) * 2005-08-05 2011-10-19 Hewlett-Packard Development Company, L.P. System, method and apparatus to obtain a key for encryption/decryption/data recovery from an enterprise cryptography key management system
JP4883273B2 (ja) * 2006-01-11 2012-02-22 日本電気株式会社 乱数品質管理装置および管理方法
JP4872512B2 (ja) * 2006-08-02 2012-02-08 ソニー株式会社 記憶装置、記憶制御方法、並びに、情報処理装置および方法
US20080219449A1 (en) 2007-03-09 2008-09-11 Ball Matthew V Cryptographic key management for stored data
US8107620B2 (en) * 2007-03-21 2012-01-31 International Business Machines Corporation Simple and efficient one-pass authenticated encryption scheme
CN101159556B (zh) * 2007-11-09 2011-01-26 清华大学 基于组密钥服务器的共享加密文件***中的密钥管理方法
US20100094755A1 (en) * 2008-10-09 2010-04-15 Nelnet Business Solutions, Inc. Providing payment data tokens for online transactions utilizing hosted inline frames
US8670560B2 (en) * 2008-10-23 2014-03-11 University Of Ulster Encryption method
US8826036B1 (en) * 2009-10-29 2014-09-02 Amazon Technologies, Inc. Ebook encryption using variable keys
US8619986B2 (en) * 2011-07-21 2013-12-31 Patton Protection Systems LLC Systems and methods for secure communication using a communication encryption bios based upon a message specific identifier

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060010203A1 (en) * 2004-06-15 2006-01-12 Nokia Corporation Personal server and network
US7958362B2 (en) * 2005-10-11 2011-06-07 Chang Gung University User authentication based on asymmetric cryptography utilizing RSA with personalized secret
US20100306294A1 (en) * 2009-05-28 2010-12-02 Schneider James P Mechanism for String Hashing Using a Random Number Generator
US20120063597A1 (en) * 2010-09-15 2012-03-15 Uponus Technologies, Llc. Apparatus and associated methodology for managing content control keys
US20130067551A1 (en) * 2011-09-13 2013-03-14 Bank Of America Corporation Multilevel Authentication

Also Published As

Publication number Publication date
WO2014172593A1 (en) 2014-10-23
AU2014253868B2 (en) 2016-05-19
US20160239678A1 (en) 2016-08-18
ES2731775T3 (es) 2019-11-19
US9934400B2 (en) 2018-04-03
PL2987267T3 (pl) 2019-09-30
CA2914785C (en) 2019-12-17
JP6285536B2 (ja) 2018-02-28
US9374224B2 (en) 2016-06-21
NZ714230A (en) 2016-06-24
EP2987267B1 (en) 2019-03-20
AU2016203169A1 (en) 2016-06-09
CN105340211A (zh) 2016-02-17
BR112015026182A2 (pt) 2017-07-25
AU2014253868A1 (en) 2015-12-03
CA2914785A1 (en) 2014-10-23
AU2016203169B2 (en) 2017-11-23
EP2987267A4 (en) 2017-02-22
JP2016517243A (ja) 2016-06-09
SG11201509412WA (en) 2015-12-30
NZ720190A (en) 2016-10-28
US20140314231A1 (en) 2014-10-23
KR101824787B1 (ko) 2018-02-01
EP2987267A1 (en) 2016-02-24
KR20160008560A (ko) 2016-01-22

Similar Documents

Publication Publication Date Title
RU2619895C1 (ru) Система и способы для шифрования данных
US9965249B2 (en) Stochastic processing
AU2013101034A4 (en) Registration and authentication of computing devices using a digital skeleton key
EP3069249A2 (en) Authenticatable device
US20200117795A1 (en) System and method for generating and authenticating a trusted polymorphic and distributed unique hardware identifier
CN104298897A (zh) 基于混沌技术的嵌入式版权认证方法及专用处理器
US20220398339A1 (en) Protection of stored and communicated secret data against side-channel attacks
EP4366232A1 (en) Secure and fast bit unpacking for dilithium
Durai et al. Real Time Implementation of QFT-PUF Architecture for Data Secure System-on-Chip
Sivaranjani et al. Design and Development of Smart Security Key for Knowledge based Authentication
Al-karkhi et al. A Secure Private Key Recovery Based on DNA Bio-Cryptography for Blockchain
Nemec Challenging RSA cryptosystem implementations
Jackson et al. Quadrivium: A Trivium-Inspired Pseudorandom Number Generator.
Jackson A Trivium-Inspired Pseudorandom Number Generator with a Statistical Comparison to the Randomness of SecureRandom and Trivium
CN117411634A (zh) 用于保护电子装置免受旁信道攻击的方法和电路
KLINEC Randomness and cryptographic functions
Hiller et al. Guest Editorial: Hardware/Software Cross-Layer Technologies for Trustworthy and Secure Computing