Способ формирования шифровального/дешифровального ключа
Формула / Реферат
1. Способ формирования шифровального/дешифровального ключа, который используется для безопасной связи между первым узлом (А) и вторым узлом (В), содержащий этапы, на которых
отправляют запрос от первого узла (А) на центральный сервер (2) для установления связи со вторым узлом (В);
отправляют от центрального сервера (2) первый файл генерации ключа первому узлу (А) и второй файл генерации ключа второму узлу (В) в ответ на запрос от первого узла (А);
начинают обработку первого файла генерации ключа в первом узле (А) и второго файла генерации ключа во втором узле (В);
формируют первый промежуточный набор данных в первом узле (А) и второй промежуточный набор данных во втором узле (В);
отправляют первый промежуточный набор данных с первого узла (А) второму узлу (В);
сравнивают биты первого промежуточного набора данных с соответствующими битами второго промежуточного набора данных;
создают новый, третий промежуточный набор данных на основе побитового сравнения между первым и вторым промежуточными наборами данных путем установки первого значения, если сравниваемые биты равны, и второго значения, если сравниваемые биты не равны;
отправляют третий промежуточный набор данных со второго узла (В) первому узлу (А);
сравнивают биты третьего промежуточного набора данных с соответствующими битами первого промежуточного набора данных;
формируют первый криптографический ключ на основе побитового сравнения между третьим и первым промежуточными наборами данных путем сохранения значения бита первого набора данных, если соответствующий бит третьего промежуточного набора данных установлен в первое значение, и игнорирования бита первого промежуточного набора данных, если соответствующий бит третьего промежуточного набора данных установлен во второе значение;
формируют второй криптографический ключ на основе побитового сравнения между первым и вторым промежуточными наборами данных путем сохранения значения бита второго набора данных, если соответствующий бит первого промежуточного набора данных одинаков, и игнорирования бита второго промежуточного набора данных, если сравниваемые биты не одинаковы, при этом первый и второй криптографические ключи идентичны.
2. Способ по п.1, в котором на этапе отправки первого файла генерации ключа первому узлу (А) и второго файла генерации ключа второму узлу (В) дополнительно отправляют метаданные, присоединенные к каждому файлу генерации ключа соответственно.
3. Способ по п.2, в котором метаданные содержат константу, которая должна использоваться для формирования как первого, так и второго криптографических ключей.
4. Способ по п.2 или 3, в котором метаданные содержат информацию о длине криптографического ключа.
5. Способ по п.4, дополнительно содержащий этап, на котором, в пределах заранее заданного интервала, случайным образом генерируют длину криптографического ключа.
6. Способ формирования шифровального/дешифровального ключа в первом узле (А), который используется для безопасной связи между первым узлом (А) и вторым узлом (В), содержащий этапы, на которых
отправляют запрос на центральный сервер (2) для установления безопасной связи со вторым узлом (В);
принимают первый файл генерации ключа от центрального сервера (2) в ответ на этот запрос;
обрабатывают первый файл генерации ключа;
формируют первый промежуточный набор данных;
отправляют первый промежуточный набор данных второму узлу (В);
принимают третий промежуточный набор данных от второго узла (В);
сравнивают биты третьего промежуточного набора данных с соответствующими битами первого промежуточного набора данных;
формируют первый криптографический ключ на основе побитового сравнения между третьим и первым промежуточными наборами данных путем сохранения значения бита первого набора данных, если соответствующий бит третьего промежуточного набора данных установлен в первое значение, и игнорирования бита первого промежуточного набора данных, если соответствующий бит третьего промежуточного набора данных установлен во второе значение.
7. Способ по п.6, в котором на этапе приема первого файла генерации ключа дополнительно принимают метаданные, присоединенные к этому файлу.
8. Способ по п.7, в котором метаданные содержат константу, которая должна использоваться для формирования первого криптографического ключа.
9. Способ по п.7 или 8, в котором метаданные содержат информацию о длине криптографического ключа.
10. Способ формирования шифровального/дешифровального ключа во втором узле (В), который используется для безопасной связи между первым узлом (А) и вторым узлом (В), содержащий этапы, на которых
принимают второй файл генерации ключа от центрального сервера (2) в ответ на запрос от первого узла (А) о начале безопасной связи между первым узлом (А) и вторым узлом (В);
обрабатывают второй файл генерации ключа;
формируют второй промежуточный набор данных;
принимают первый промежуточный набор данных от первого узла (А);
сравнивают биты первого промежуточного набора данных с соответствующими битами второго промежуточного набора данных;
создают новый, третий промежуточный набор данных на основе побитового сравнения между первым и вторым промежуточными наборами данных путем установки первого значения, если сравниваемые биты равны, и второго значения, если сравниваемые биты не равны;
отправляют третий промежуточный набор данных первому узлу (А);
формируют второй криптографический ключ на основе побитового сравнения между первым и вторым промежуточными наборами данных путем сохранения значения бита второго набора данных, если соответствующий бит первого промежуточного набора данных одинаков, и игнорирования бита второго промежуточного набора данных, если сравниваемые биты не одинаковы.
11. Способ по п.10, в котором на этапе приема второго файла генерации ключа дополнительно принимают метаданные, присоединенные к этому файлу.
12. Способ по п.11, в котором метаданные содержат константу, которая должна использоваться для формирования второго криптографического ключа.
13. Способ по п.10 или 11, в котором метаданные содержат информацию о длине криптографического ключа.
14. Машиночитаемый носитель информации, на котором сохранены средства кода программы для выполнения способа по любому одному из пп.1-13, когда средства кода программы запускаются на компьютере.
Текст
Изобретение относится к способу формирования шифровального/дешифровального ключа, в частности формирования одноразового шифровального/дешифровального ключа, используемого для симметричного шифрования, т.е. где один и тот же ключ используется как для шифрования,так и для дешифрования. Для того чтобы начать формирование ключа, первый узел (А) посылает запрос центральному серверу (2) для установления связи со вторым узлом (В). Центральный сервер (2) посылает файл генерации ключа обоим узлам (А и В). Каждый узел формирует особый промежуточный набор данных, т.е. первый и второй наборы данных. Первый набор данных, сформированный первым узлом (А), посылается второму узлу (В), который на основе этого набора данных формирует третий набор данных, который посылается обратно первому узлу. Формирование первого криптографического ключа в узле (А) основано на побитовом сравнении между третьим и первым промежуточными наборами данных, а формирование второго криптографического ключа основано на побитовом сравнении между первым и вторым промежуточными наборами данных. Первый и второй криптографические ключи идентичны. Область техники, к которой относится изобретение Настоящее изобретение относится к способу формирования шифровального/дешифровального ключа, в частности формирования одноразового шифровального/дешифровального ключа, используемого для симметричного шифрования, т.е. где один и тот же ключ используется как для шифрования, так и для дешифрования. Настоящее изобретение также относится к компьютерной программе, содержащей средства кода для осуществления способа при их исполнении на компьютере, и компьютерному программному продукту, содержащему средства кода программы, сохраненные на машиночитаемом носителе, для осуществления способа, когда упомянутый продукт запускается на компьютере. Предшествующий уровень техники В криптографии ключ - это порция информации, которая определяет функциональный выход криптографического алгоритма. Алгоритм без ключа не будет иметь результата. Ключ в шифровании устанавливает конкретное преобразование открытого текста в зашифрованный текст или, наоборот, во время дешифрования. Ключи также используются в других криптографических алгоритмах, таких как схемы электронной подписи и коды аутентификации сообщений. Часто говорят, что при разработке систем защиты является разумным предполагать, что детали криптографического алгоритма уже доступны взломщику. Этот принцип известен как принцип Керкгоффа (Kerckhoff), и, таким образом, только секретность ключа обеспечивает безопасность. Этот принцип основан на том факте, что трудно держать в тайне детали широко используемого алгоритма. Ключ зачастую проще защитить, поскольку он часто представляет собой малую порцию информации по сравнению с шифровальным алгоритмом. Однако сохранять ключ в тайне также может быть трудно, и, если взломщик каким-то образом получает ключ, он или она могут восстановить первоначальное сообщение из зашифрованных данных. Шифровальные алгоритмы, которые используют один и тот же ключ и для шифрования, и для дешифрования, как упоминалось выше, известны как симметричные алгоритмы ключей. Имеются также асимметричные ключевые алгоритмы, которые используют пару ключей, один для шифрования и один для дешифрования. Эти асимметричные ключевые алгоритмы позволяют сделать один ключ открытым,при этом сохраняя персональный ключ только в одном определенном месте. Они разрабатываются так,что раскрытие персонального ключа является чрезвычайно трудным, даже если известен соответствующий открытый ключ. Пользователь технологии открытого ключа может опубликовать свой открытый ключ, сохраняя в тайне свой персональный ключ, позволяя кому-либо послать ему зашифрованное сообщение. Для того чтобы ключ был "безопасным" в сочетании с симметричными шифровальными алгоритмами, обычно считают длину 80 бит минимальной, а 128-битовые ключи являются распространенными и считаются очень сильными. Ключи, используемые в криптографии открытого ключа, имеют некоторую математическую структуру. Например, открытые ключи, используемые в системе RSA, являются произведением двух простых чисел. Таким образом, системы открытого ключа требуют больших длин ключей,чем симметричные системы при эквивалентном уровне секретности. 3072 бит - рекомендуемая длина ключа для систем, основанных на разложении на множители и целых дискретных логарифмах, которые ориентируются на то, чтобы иметь надежность, эквивалентную 128-битовому симметричному шифру. Как упоминалось выше, возможно формировать ключи с высокой степенью надежности, если они достаточно длинные, для ключей, основанных как на симметричных, так и асимметричных алгоритмах. Однако возникает проблема при передаче (распространении) ключа. Если, например, два участника хотят связаться друг с другом с помощью симметричной криптографии, они вначале должны решить, какой ключ использовать, и затем безопасно передать его от одного участника к другому. Более того, ключ должен храниться в тайне обоими участниками. Риск, что злоумышленник может обнаружить ключ, возрастает со временем, в течение которого ключ находится в использовании. Следовательно, ключ обычно применим только в течение ограниченного времени, например 6 или 12 месяцев. После этого времени должен передаваться новый ключ. Распространение ключей для шифрования в асимметричной криптографии также сталкивается с проблемами при распространении ключа, когда два участника хотят связаться друг с другом. Для того чтобы посылать информацию в обоих направлениях, им нужно обменяться друг с другом открытыми ключами. В этом случае также ключи обычно имеют ограниченный период времени, в течение которого они являются действующими. Для участника, который связывается со многими различными участниками, организация распространения действующих открытых ключей может быть надоедливой. Типичный пример - то, что срок действия ключа истек, когда вам срочно нужно послать некоторую секретную информацию другому участнику, или то, что вы еще не обменялись открытыми ключами. Другим типом криптографии является квантовая криптография, которая использует квантовую механику для обеспечения защищенной связи. Она позволяет двум участникам создать совместно используемую случайную битовую последовательность, известную только им, которая может быть использована в качестве ключа для шифрования и дешифрования сообщений. Важным и уникальным свойством квантовой криптографии является способность двух осуществляющих связь пользователей обнаруживать присутствие любого третьего участника, пытающегося приобрести знания о ключе. Это является резуль-1 019411 татом фундаментального аспекта квантовой механики, т.е. процесс измерения квантовой системы будет влиять на систему. Поскольку третий участник, пытающийся перехватить сообщения о ключе, должен так или иначе осуществлять измерения в отношении него, будут существовать обнаружимые аномалии. Таким образом, защищенность квантовой криптографии опирается на принципы квантовой механики, в отличие от традиционной криптографии открытого ключа, которая опирается на трудность вычисления некоторых математических функций и не может предоставить какое-либо указание на перехват сообщений или гарантировать защиту ключа. Квантовая криптография используется только для создания и распространения ключа, не для передачи каких-либо данных сообщения. Этот ключ может затем использоваться с любым выбранным шифровальным алгоритмом для шифрования и дешифрования сообщения, которое может затем передаваться по стандартному каналу связи. Даже если формирование ключа квантовой криптографией обеспечивает очень надежный способ формирования и распространения ключа, оно также имеет основной недостаток. Расстояние, на которое может передаваться квантовый ключ, ограничено примерно 100 км вследствие свойств квантовой механики. Принимая во внимание вышеуказанные проблемы, существует необходимость простого способа формирования и распространения криптографического ключа. Сущность изобретения Проблема, решаемая настоящим изобретением, заключается в формировании криптографического ключа, который не требуется распространять на узлы, которые хотят осуществлять связь друг с другом,т.е. где ключ формируется самими узлами. Эта проблема находится в соответствии с первым аспектом, решаемым способом формирования шифровального/дешифровального ключа, который является практичным для безопасной связи между первым узлом и вторым узлом. Способ содержит следующие этапы: отправление запроса от первого узла А в центральный сервер для установления связи со вторым узлом; отправление от центрального сервера первого файла генерации ключа первому узлу и второго файла генерации ключа второму узлу в ответ на запрос от первого узла; обработка первого файла генерации ключа на первом узле и второго файла генерации ключа на втором узле; формирование первого промежуточного набора данных на первом узле и второго промежуточного набора данных на втором узле; отправление первого промежуточного набора данных с первого узла на второй узел; сравнение битов первого промежуточного набора данных с соответствующими битами второго промежуточного набора данных; создание нового, третьего промежуточного набора данных на основе побитового сравнения между первым и вторым промежуточными наборами данных путем установки первого значения, если сравниваемые биты равны, и второго значения, если сравниваемые биты не равны; отправление третьего промежуточного набора данных от второго узла первому узлу; сравнение битов третьего промежуточного набора данных с соответствующими битами первого промежуточного набора данных; формирование первого шифровального ключа на основе побитового сравнения между третьим и первым промежуточными наборами данных путем сохранения значения бита первого набора данных,если соответствующий бит третьего промежуточного набора данных установлен в первое значение, и игнорирования бита первого промежуточного набора данных, если соответствующий бит третьего промежуточного набора данных установлен во второе значение; формирование второго шифровального ключа на основе побитового сравнения между первым и вторым промежуточными наборами данных путем сохранения значения бита второго набора данных,если соответствующий бит первого промежуточного набора данных одинаковый, и игнорирования бита второго промежуточного набора данных, если сравниваемые биты не равны, при этом упомянутые первый и второй шифровальные ключи идентичны. В соответствии со вторым аспектом настоящего изобретения проблема решается способом формирования шифровального/дешифровального ключа на первом узле, который можно использовать для безопасной связи между первым узлом и вторым узлом. Способ в соответствии со вторым аспектом содержит следующие этапы: отправление запроса в центральный сервер для установления безопасной связи со вторым узлом; прием первого файла генерации ключа от центрального сервера в ответ на запрос; обработка первого файла генерации ключа; формирование первого промежуточного набора данных; отправление первого промежуточного набора данных во второй узел; прием третьего промежуточного набора данных от второго узла; сравнение битов третьего промежуточного набора данных с соответствующими битами первого промежуточного набора данных; формирование первого шифровального ключа на основе побитового сравнения между третьим и первым промежуточными наборами данных путем сохранения значения бита первого набора данных,если соответствующий бит третьего промежуточного набора данных установлен в первое значение, и игнорирования бита первого промежуточного набора данных, если соответствующий бит третьего промежуточного набора данных установлен во второе значение. В соответствии с третьим аспектом настоящего изобретения проблема решается способом формирования шифровального/дешифровального ключа на втором узле, который можно использовать для безопасной связи между первым узлом и вторым узлом. В соответствии с третьим аспектом способ содержит следующие этапы: прием второго файла генерации ключа от центрального сервера в ответ на запрос от первого узла о начале безопасной связи между первым узлом и вторым узлом; обработка второго файла генерации ключа; формирование второго промежуточного набора данных; прием первого промежуточного набора данных от первого узла; сравнение битов первого промежуточного набора данных с соответствующими битами второго промежуточного набора данных; создание нового, третьего промежуточного набора данных на основе побитового сравнения между первым и вторым промежуточными наборами данных путем установки первого значения, если сравниваемые биты равны, и второго значения, если сравниваемые биты не равны; отправление третьего промежуточного набора данных первому узлу; формирование второго шифровального ключа на основе побитового сравнения между первым и вторым промежуточными наборами данных путем сохранения значения бита второго набора данных,если соответствующий бит первого промежуточного набора данных одинаков, и игнорирования бита второго промежуточного набора данных, если сравниваемые биты не равны. В соответствии с предпочтительным вариантом осуществления настоящего изобретения этап отправления первого и второго файлов генерации ключа также содержит отправление метаданных, присоединенных к каждому файлу генерации ключа, соответственно. В еще одном предпочтительном варианте осуществления настоящего изобретения метаданные содержат константу, которая используется для формирования как первого, так и второго шифровального ключа. Метаданные могут также содержать информацию о длине шифровального ключа. В другом варианте осуществления длина ключа может генерироваться случайно, в пределах заранее заданного интервала. В соответствии с четвертым аспектом изобретения предоставляется компьютерная программа, которая содержит средства кода для выполнения этапов способа, когда программа исполняется на компьютере. В соответствии с пятым аспектом изобретения предоставляется компьютерный программный продукт, который содержит средства кода программы, сохраненные на машиночитаемом носителе, для выполнения этапов способа, когда данный продукт запускается на компьютере. Большим преимуществом настоящего изобретения является то, что ключ генерируется в узлах, которые хотят связаться друг с другом, и поэтому нет необходимости в распространении ключа. Краткое описание чертежей Изобретение описывается ниже со ссылкой на прилагаемые чертежи, на которых: фиг. 1 представляет собой блок-схему последовательности операций, показывающую способ формирования криптографического ключа в соответствии с настоящим изобретением; фиг. 2 является примером файла генерации ключа, отправленного с центрального сервера на узлы,которые хотят обмениваться сообщениями; фиг. 3 является примером константы, используемой для формирования первого и второго промежуточных наборов данных; фиг. 4 является примером первого промежуточного набора данных на первом узле A и второго промежуточного набора данных на втором узле B; фиг. 5 является примером процесса сопоставления между первым и вторым промежуточными наборами данных и формирования криптографического ключа для второго узла B; фиг. 6 является примером формирования криптографического ключа для первого узла A. Подробное описание изобретения Настоящее изобретение будет теперь описываться подробно с помощью различных вариантов его осуществления. Варианты осуществления будут рассматриваться как примерные и поясняющие для понимания изобретения, а не как ограничивающие. Фиг. 1 показывает способ формирования криптографического ключа в соответствии с настоящим изобретением. Весь способ осуществляется двумя узлами A и B, которые хотят установить защищенную связь друг с другом, используя защищенный шифровальный/дешифровальный ключ. Более того, способ осуществляется с помощью центрального сервера 2. На фиг. 1 с левой стороны показан первый узел A и с правой стороны - второй узел B, т.е. этапы, выполняемые первым узлом A, показаны слева от пунктирной линии, а этапы, выполняемые вторым узлом B, показаны справа от пунктирной линии. На практике первым узлом A может быть компьютер, пользователь которого может выразить желание начать защищенную связь с компьютером - вторым узлом B в его банке. Как является очевидным для специалиста в данной области техники, и первый узел A, и второй узел B могут быть любыми устройствами связи, которые желают осуществлять связь друг с другом. Центральный сервер 2 может быть любым устройством связи, способным принимать и посылать данные защищенным образом с помощью некоторого рода сертификата безопасности. Для того чтобы узел был способен использовать способ формирования ключа в соответствии с настоящим изобретением,узлу необходимо быть авторизованным для связи с центральным сервером 2. Таким образом, центральный сервер 2 отслеживает всех пользователей, которые авторизованы для пользования способом формирования ключа. Как указывалось выше, связь между центральным сервером 2 и узлами, или наоборот,защищена путем использования некоторого рода сертификата безопасности. Предпочтительно для защищенной связи используется сертификат Х 509 или аналогичный. Способ формирования шифровального/дешифровального ключа в соответствии с настоящим изобретением будет теперь описываться посредством примера. Способ начинается с того, что узел, в этом примере первый узел A, посылает запрос в центральный сервер 2 для установления связи со вторым узлом B. Центральный сервер 2 вначале проверяет, авторизован ли первый узел A для установления связи со вторым узлом B, а также то, что второй узел B авторизован для связи с центральным сервером 2 и первым узлом A. Если оба узла авторизованы для начала связи друг с другом, центральный сервер 2, в ответ на запрос от первого узла А, пошлет первый файл генерации ключа первому узлу A и второй файл генерации ключа второму узлу B. Фиг. 2 показывает пример файла генерации ключа, который посылается от центрального сервера первому узлу A и второму узлу B. Файл содержит файл процесса, который при исполнении первым узлом A и вторым узлом B будет формировать шифровальный/дешифровальный ключ. Поскольку процессы на первом узле A и втором узле B различны, что будет объясняться ниже, файл процесса, отправленный первому узлу A, отличается от файла процесса, отправленного второму узлу B. Как это видно из фиг. 2, файл генерации ключа содержит также метаданные M1, М 2, , Mn. Метаданные могут содержать информацию, которая будет использоваться для формирования шифровального/дешифровального ключа,и одинаковые метаданные будут отправляться как первому узлу A, так и второму узлу B. Примерами метаданных является константа, используемая для формирования ключей. Фиг. 3 показывает пример такой константы, используемой для формирования первого и второго промежуточных наборов данных, используемых во время формирования ключа. Метаданные могут также содержать метку времени, которая должна использоваться для сравнения того, имеют ли оба файла генерации ключа одинаковое происхождение. Более того, метаданные могут также содержать информацию о длине ключа, которая должна использоваться, или о том, какие биты ключа должны быть использованы для формирования ключа. Как это очевидно специалисту в данной области техники, может быть ряд других метаданных, которые могут использоваться в целях дальнейшего повышения защищенности процесса формирования ключа. Когда файл генерации ключа будет принят первым узлом A и вторым узлом B, каждый узел начнет обрабатывать этот файл. Во-первых, первый узел A сформирует первый промежуточный набор данных, и второй узел B сформирует второй промежуточный набор данных путем использования значения константы, как показано на фиг. 3. Константа содержит в этом случае четыре двоичных разряда, каждый из которых ассоциирован с буквой. Длина константы может произвольно меняться, и биты могут быть ассоциированы с буквами, цифрами, греческими символами и т.д. Пример первого промежуточного набора данных для первого узла А и второго промежуточного набора данных для второго узла В показан на фиг. 4. Промежуточные наборы данных формируются путем использования некоторого рода известного генератора псевдослучайных чисел, с помощью таких псевдослучайных алгоритмов, как алгоритм Блюма, Блюма и Шуба (Blum-Blum-Shub), Fortuna или вихрь Мерсенна (Mersenne), для формирования случайной последовательности, в этом случае букв A-D. Случайная последовательность букв показана в заголовке первого и второго промежуточных наборов данных на фиг. 4. Таким образом, для того чтобы сформировать промежуточный набор данных, вначале псевдослучайно определяется последовательность букв, и после этого будет предоставлено правильное значение, ассоциированное с буквой в соответствии с константой на фиг. 3. Если этот предварительный выбор приводит к формированию, например, только нулей или только единиц для промежуточного набора данных, этот результат может быть отфильтрован, и формируется новая случайная последовательность. Поскольку как первый, так и второй промежуточные наборы данных формируются псевдослучайным образом, они никогда не будут одинаковыми. Длина промежуточных наборов данных в этом примере составляет всего лишь 8 бит, чтобы легко проиллюстрировать настоящее изобретение на примере. На практике, однако, длина промежуточных наборов данных заключается обычно между 64 и 2048 битами. Битовая длина может быть частью метаданных, как указывалось выше, и может устанавливаться случайно центральным сервером 2 каждый раз, как делается новый запрос с узла. После формирования первого и второго промежуточных наборов данных первый узел отправит первый промежуточный набор данных второму узлу B без всякой защиты, т.е. открыто. Второй узел B сравнит первый и второй промежуточные наборы данных друг с другом. Результат сравнения называется Сопоставление 1 в таблице, показанной на фиг. 5. Значение A и значение B соответствуют первому и второму промежуточным наборам данных соответственно. Сравнение является побитовым сравнением, и результатом является Истина (True), если значение для первого и второго набора данных битов соответственно одинаково, и Ложь (False), если они не одинаковы. Результат сравнения,Сопоставление 1, используется для создания нового, третьего промежуточного набора данных, Значения 1, путем установки первого значения, если сравниваемые биты равны, и второго значения, если сравниваемые биты не равны. В этом случае используется 1, когда сравниваемые биты равны, и используется 0,если биты не равны. Однако может быть также другой примерный образ действия, без отклонения от настоящего изобретения. Третий промежуточный набор данных затем открыто посылается от второго узла В первому узлу A. Первый узел A затем формирует первый криптографический ключ на основе побитового сравнения между третьим и первым промежуточными наборами данных путем сохранения значения бита первого набора данных, если соответствующий бит третьего промежуточного набора данных установлен в первое значение, и игнорирования бита первого промежуточного набора данных, если соответствующий бит третьего промежуточного набора данных установлен во второе значение. В этом случае, который показан на фиг. 6, первое значение соответствует 1 и второе значение - 0. Как видно из фиг. 6, ключ содержит четыре бита вместо первоначальных восьми бит, поскольку четыре бита были проигнорированы во время формирования ключа. Как указывалось выше, как первый промежуточный набор данных, так и третий промежуточный набор данных посылаются открыто. Даже если они были перехвачены, третий участник никоим образом не сформирует ключ с помощью этих данных, поскольку значение 1 в третьем наборе данных в действительности не означает значение 1, а только то, что первый набор данных и второй набор данных имеют одинаковое значение. Таким образом, 1 в третьем наборе данных может на самом деле быть либо 1, либо 0. В узле B второй криптографический ключ формируется на основе побитового сравнения между первым и вторым промежуточными наборами данных, см. фиг. 5, путем сохранения значения бита второго набора данных, если соответствующий бит первого промежуточного набора данных одинаков, и игнорирования бита второго промежуточного набора данных, если сравниваемые биты не равны. Как можно видеть, вышеуказанные первый и второй криптографические ключи - идентичные ключи. Ключи могут затем быть использованы для шифрования/дешифрования информации, посылаемой между первым узлом A и вторым узлом B. Любой известный способ шифрования можно использовать вместе с ключом, сформированным по способу в соответствии с настоящим изобретением. Таким образом, настоящее изобретение направлено не на то, как делается шифрование/дешифрование, а на формирование криптографических ключей. Сформированный ключ будет действовать до тех пор, пока активен сеанс связи между первым и вторым узлами. Более того, когда ключ сформирован первым узлом A и вторым узлом B, файлы генерации ключа, принятые от центрального сервера, будут уничтожены в соответствующем узле. Теперь весь способ настоящего изобретения описан подробно. Однако настоящее изобретение также относится к способу формирования шифровального/дешифровального ключа в первом узле A. Этот способ является сокращенным вариантом полного способа, описанного выше, и поэтому будет описан кратко. Способ, осуществляемый первым узлом, начинается с отправки запроса на центральный сервер 2 для установления безопасной связи со вторым узлом B. Первый узел затем принимает первый файл генерации ключа от центрального сервера 2 и начинает его обрабатывать. Этим формируется первый промежуточный набор данных, который, как указано выше, посылается второму узлу B. Первый узел A затем примет третий промежуточный набор данных от второго узла В и сравнит биты третьего промежуточного набора данных с соответствующими битами первого промежуточного набора данных. Первый узел A сформирует первый шифровальный ключ на основе побитового сравнения между третьим и первым промежуточными наборами данных, сохраняя значение бита первого набора данных, если соответствующий бит третьего промежуточного набора данных установлен в первое значение, и игнорируя бит первого промежуточного набора данных, если соответствующий бит третьего промежуточного набора данных установлен во второе значение. Второй узел B также исполнит сокращенную версию полного способа, которая будет теперь описана кратко. Способ формирования шифровального/дешифровального ключа во втором узле B начинается с того, что второй узел B принимает второй файл генерации ключа от центрального сервера 2 и начинает его обрабатывать. Этим формируется второй промежуточный набор данных. После этого второй узел B примет первый промежуточный набор данных от первого узла А и сравнит биты первого промежуточного набора данных с соответствующими битами второго промежуточногонабора данных. После этого второй узел B создаст новый, третий промежуточный набор данных на основе побитового сравнения между первым и вторым промежуточными наборами данных, устанавливая первое значение, если сравниваемые биты равны, и второе значение, если сравниваемые биты не равны. Третий промежуточный набор данных затем посылается первому узлу A. Второй узел B затем формирует второй шифровальный ключ на основе побитового сравнения между первым и вторым промежуточными наборами данных, сохраняя значение бита второго набора данных, если соответствующий бит первого промежуточного набора данных одинаков, и игнорируя бит второго промежуточного набора данных, если сравниваемые биты не одинаковы. Таким образом, с помощью способа, описанного выше, можно легким и защищенным образом формировать криптографические ключи там, где они используются, т.е. в узлах. Это очень выгодно, поскольку больше не существует необходимость распространения ключей. Ключ является одноразовым и будет действовать только для одного сеанса связи и до тех пор, пока он активен. Более того, ключи формируются в двух независимых процессах на двух отдельных узлах. Даже если полагать, что вышеупомянутый способ очень надежный, надежность может быть дополнительно повышена при использовании метаданных, присоединенных к файлу генерации ключа. Например, метаданные могут сообщать, что только каждый третий или второй бит результата процесса формирования ключа должен использоваться в качестве ключа. Похожее использование метаданных может также указывать, что только каждый третий или второй бит должен быть прочитан, когда первый узел A и второй узел B осуществляют связь друг с другом во время процесса формирования ключа. Следует понимать, что даже если изобретение описано со ссылкой на предпочтительные варианты осуществления, изобретение не ограничено таковыми. Существует много других вариантов осуществления и разновидностей, которые таким же образом находятся внутри объема изобретения, который определяется прилагаемой формулой изобретения. ФОРМУЛА ИЗОБРЕТЕНИЯ 1. Способ формирования шифровального/дешифровального ключа, который используется для безопасной связи между первым узлом (А) и вторым узлом (В), содержащий этапы, на которых отправляют запрос от первого узла (А) на центральный сервер (2) для установления связи со вторым узлом (В); отправляют от центрального сервера (2) первый файл генерации ключа первому узлу (А) и второй файл генерации ключа второму узлу (В) в ответ на запрос от первого узла (А); начинают обработку первого файла генерации ключа в первом узле (А) и второго файла генерации ключа во втором узле (В); формируют первый промежуточный набор данных в первом узле (А) и второй промежуточный набор данных во втором узле (В); отправляют первый промежуточный набор данных с первого узла (А) второму узлу (В); сравнивают биты первого промежуточного набора данных с соответствующими битами второго промежуточного набора данных; создают новый, третий промежуточный набор данных на основе побитового сравнения между первым и вторым промежуточными наборами данных путем установки первого значения, если сравниваемые биты равны, и второго значения, если сравниваемые биты не равны; отправляют третий промежуточный набор данных со второго узла (В) первому узлу (А); сравнивают биты третьего промежуточного набора данных с соответствующими битами первого промежуточного набора данных; формируют первый криптографический ключ на основе побитового сравнения между третьим и первым промежуточными наборами данных путем сохранения значения бита первого набора данных,если соответствующий бит третьего промежуточного набора данных установлен в первое значение, и игнорирования бита первого промежуточного набора данных, если соответствующий бит третьего промежуточного набора данных установлен во второе значение; формируют второй криптографический ключ на основе побитового сравнения между первым и вторым промежуточными наборами данных путем сохранения значения бита второго набора данных, если соответствующий бит первого промежуточного набора данных одинаков, и игнорирования бита второго промежуточного набора данных, если сравниваемые биты не одинаковы, при этом первый и второй криптографические ключи идентичны. 2. Способ по п.1, в котором на этапе отправки первого файла генерации ключа первому узлу (А) и второго файла генерации ключа второму узлу (В) дополнительно отправляют метаданные, присоединенные к каждому файлу генерации ключа соответственно. 3. Способ по п.2, в котором метаданные содержат константу, которая должна использоваться для формирования как первого, так и второго криптографических ключей. 4. Способ по п.2 или 3, в котором метаданные содержат информацию о длине криптографического ключа. 5. Способ по п.4, дополнительно содержащий этап, на котором, в пределах заранее заданного интервала, случайным образом генерируют длину криптографического ключа. 6. Способ формирования шифровального/дешифровального ключа в первом узле (А), который используется для безопасной связи между первым узлом (А) и вторым узлом (В), содержащий этапы, на которых отправляют запрос на центральный сервер (2) для установления безопасной связи со вторым узлом (В); принимают первый файл генерации ключа от центрального сервера (2) в ответ на этот запрос; обрабатывают первый файл генерации ключа; формируют первый промежуточный набор данных; отправляют первый промежуточный набор данных второму узлу (В); принимают третий промежуточный набор данных от второго узла (В); сравнивают биты третьего промежуточного набора данных с соответствующими битами первого промежуточного набора данных; формируют первый криптографический ключ на основе побитового сравнения между третьим и первым промежуточными наборами данных путем сохранения значения бита первого набора данных,если соответствующий бит третьего промежуточного набора данных установлен в первое значение, и игнорирования бита первого промежуточного набора данных, если соответствующий бит третьего промежуточного набора данных установлен во второе значение. 7. Способ по п.6, в котором на этапе приема первого файла генерации ключа дополнительно принимают метаданные, присоединенные к этому файлу. 8. Способ по п.7, в котором метаданные содержат константу, которая должна использоваться для формирования первого криптографического ключа. 9. Способ по п.7 или 8, в котором метаданные содержат информацию о длине криптографического ключа. 10. Способ формирования шифровального/дешифровального ключа во втором узле (В), который используется для безопасной связи между первым узлом (А) и вторым узлом (В), содержащий этапы, на которых принимают второй файл генерации ключа от центрального сервера (2) в ответ на запрос от первого узла (А) о начале безопасной связи между первым узлом (А) и вторым узлом (В); обрабатывают второй файл генерации ключа; формируют второй промежуточный набор данных; принимают первый промежуточный набор данных от первого узла (А); сравнивают биты первого промежуточного набора данных с соответствующими битами второго промежуточного набора данных; создают новый, третий промежуточный набор данных на основе побитового сравнения между первым и вторым промежуточными наборами данных путем установки первого значения, если сравниваемые биты равны, и второго значения, если сравниваемые биты не равны; отправляют третий промежуточный набор данных первому узлу (А); формируют второй криптографический ключ на основе побитового сравнения между первым и вторым промежуточными наборами данных путем сохранения значения бита второго набора данных, если соответствующий бит первого промежуточного набора данных одинаков, и игнорирования бита второго промежуточного набора данных, если сравниваемые биты не одинаковы. 11. Способ по п.10, в котором на этапе приема второго файла генерации ключа дополнительно принимают метаданные, присоединенные к этому файлу. 12. Способ по п.11, в котором метаданные содержат константу, которая должна использоваться для формирования второго криптографического ключа. 13. Способ по п.10 или 11, в котором метаданные содержат информацию о длине криптографического ключа. 14. Машиночитаемый носитель информации, на котором сохранены средства кода программы для выполнения способа по любому одному из пп.1-13, когда средства кода программы запускаются на компьютере.
МПК / Метки
МПК: H04L 9/08
Метки: ключа, способ, формирования
Код ссылки
<a href="https://eas.patents.su/9-19411-sposob-formirovaniya-shifrovalnogo-deshifrovalnogo-klyucha.html" rel="bookmark" title="База патентов Евразийского Союза">Способ формирования шифровального/дешифровального ключа</a>
Предыдущий патент: Дисперсии, содержащие ингибиторы гидроксифенилпируват диоксигеназы
Следующий патент: Способ локальной гипертермии злокачественных опухолей
Случайный патент: Мониторинг рождения и система обогрева для поросят