Спасибо большое за помощь. Можете пожалуйста подтвердить финальную версию моего понимания задачи?
Есть два абонента, у них у каждого стоит мною написанная программа. Две стороны состыкуются, друг другу отправляя значения переменных А и В, потом каждый на своей стороне вычисляет значение общего секретного ключа К. На этом моменте с Диффи-Хеллманом покончено. Далее, программа каким-либо образом преобразует К в 256-битный ключ К', и алгоритм ГОСТ шифрует по этому ключу текст. Один из абонентов отправляет текст другому, другой расшифровывает его тем же ключом K'.
Всё, в детали обмена информацией между сторонами не вдаемся, это не важно.
А по ГОСТУ 2015 не подскажете, разве там можно генерировать ключ шифрования, относительно K? Что-то типа kuznechik(K), или там по-другому все работает?
Вот обе стороны рассчитывают ключ K и на основе K генерируется свой (индивидуальный?) ключ для каждой стороны, которым потом каждый может шифровать и дешифровать текст. То есть у абонента A ключ a, у абонента B ключ b, и получается зашифровав текст P ключом a, этот текст P можно расшифровать ключом b?
Вы оба правы, я почти уверен, просто я не так себе представлял работу Диффи-Хеллмана.
"Обычно Диффи-Хеллман как раз и генерирует сессионный ключ, на котором будет зашифровано сообщение каким-нибудь блочным шифром, например, ГОСТ 2015"
>>
ну, допустим путем исполнения алгоритма, две стороны сгенерировали приватные ключи 'a' и 'b', и общий, тоже секретный, ключ 'c'. Получается, 'c' - сессионный ключ. А что значит фраза "на котором будет зашифровано сообщение ..." Просто, вроде как, есть алгоритм ГОСТ 2015, есть текст и программа. Программ шифрует текст и генерирует ключ для расшифровки, а тогда каким образом здесь будет участвовать сессионный ключ 'c' из Диффи-Хеллмана? Подскажи пожалуйста.
У меня просто картинка не складывается, чтобы она сложилась - надо реализовать таск, а чтобы реализовать таск, надо чтобы сложилась картинка...
Вы оба правы, я почти уверен, просто я не так себе представлял работу Диффи-Хеллмана.
"Обычно Диффи-Хеллман как раз и генерирует сессионный ключ, на котором будет зашифровано сообщение каким-нибудь блочным шифром, например, ГОСТ 2015"
>>
ну, допустим путем исполнения алгоритма, две стороны сгенерировали приватные ключи 'a' и 'b', и общий, тоже секретный, ключ 'c'. Получается, 'c' - сессионный ключ. А что значит фраза "на котором будет зашифровано сообщение ..." Просто, вроде как, есть алгоритм ГОСТ 2015, есть текст и программа. Программ шифрует текст и генерирует ключ для расшифровки, а тогда каким образом здесь будет участвовать сессионный ключ 'c' из Диффи-Хеллмана? Подскажи пожалуйста.
У меня просто картинка не складывается, чтобы она сложилась - надо реализовать таск, а чтобы реализовать таск, надо чтобы сложилась картинка...
Основа будет Java и Алгоритмы и структуры данных, они, как я полагаю, будут на собеседовании.
В принципе я понял, я так и делал, просто мой косяк в том, что я могу знать что-нибудь сложное и крутое и в тоже время посыпаться на банальнейшем вопросе или задачке. Поэтому и спрашиваю книгу с основами, так сказать, освежить в памяти или подчерпнуть новое.
Для HTML это выглядит так: я знаю и могу сделать сайт с использованием HTML, CSS, Javascript, PHP, ModX, но и при этом я не знаю что такое DOM- дерево. Я догадываюсь, но любой вопрос поставит меня в тупик. И вот такие ситуации я хочу исключить, по большому счету.
Но повторюсь конкретным языком является Java, то есть, хотелось бы книгу по джаве, где картко, емко и адекватно написано всё начиная от принципов работы и до структур данных и потоков (я это итак знаю, не всё конечно, но говорю же, освежить). А так же какой-нибудь простенький материал по MySQL, JS,PHP и какую-нибудь книгу по алгоритмам и структурам данных, где рассказано про сортировки всякие, числа фибоначчи и всякое такое, так сказать, entry level.