Re[4]: Программа для шифрования с закрытым ключом
От: Khimik  
Дата: 06.03.25 12:45
Оценка: :)
Здравствуйте, Xander Zerge, Вы писали:

XZ>Здравствуйте, Khimik, Вы писали:


K>>Сорри, пока не понял ничего.

K>>Когда мне пишут — шифруют закрытым или открытым ключом?
XZ>Шифруют открытым — только он опубликован же. Написать тебе может любой. А расшифровываешь только ты — закрытым, т.к. он есть только у тебя.

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

K>>На каком этапе здесь математические операции — перемножение чисел и разложение чисел на простые множители?

XZ>Перемножение — на этапе генерации пары ключей, разложение — при попытке подбора закрытого ключа по открытому.

Не понимаю пока.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать." Р.П. Уоррен
Re[5]: Программа для шифрования с закрытым ключом
От: klopodav  
Дата: 06.03.25 13:25
Оценка:
K>>>На каком этапе здесь математические операции — перемножение чисел и разложение чисел на простые множители?
XZ>>Перемножение — на этапе генерации пары ключей, разложение — при попытке подбора закрытого ключа по открытому.

K>Не понимаю пока.


Ну можешь хотя бы почитать описание алгоритма RSA (как одного из наиболее простых), там это расписано
Re[7]: Программа для шифрования с закрытым ключом
От: L_G Россия  
Дата: 06.03.25 13:26
Оценка: +1
P>4 Позиция где он найден это будет шифрованым значением байта.

— в общем случае байт может быть вообще не найден
— позиция может не влезть в байт. а отбросить лишние биты нельзя, т.к. как потом расшифровывать? да и быстродействие страдает: сканировать неизвестно сколько байт на каждый шифруемый байт. вряд ли поедет велосипед с такими квадратными колесами.
гораздо проще проксорить младший байт псевдослучайного числа с найденным в файле и с шифруемым.
Каша в голове — пища для ума (с)
Отредактировано 06.03.2025 13:34 L_G . Предыдущая версия .
Re[5]: Программа для шифрования с закрытым ключом
От: rg45 СССР  
Дата: 06.03.25 13:34
Оценка:
Здравствуйте, Khimik, Вы писали:

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


В гугле полно ссылок по асимметричному шифрованию, по которым на пальцах объясняются принципы работы.

Например:

Принцип действия асимметричного шифрования


Схема передачи данных между двумя субъектами (А и Б) с использованием открытого ключа выглядит следующим образом:

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

--
Справедливость выше закона. А человечность выше справедливости.
Re[8]: Программа для шифрования с закрытым ключом
От: Pyromancer  
Дата: 06.03.25 14:08
Оценка:
Здравствуйте, L_G, Вы писали:

P>>4 Позиция где он найден это будет шифрованым значением байта.


L_G>- в общем случае байт может быть вообще не найден

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


Допустим позиция число 4 байта, позволяет использовать ключевой файл размером в 4 гб. Ну превратился один байт исходный в 4 зашифрованых, это непринципиально для того объема, что человек вручную написать может.
У байтов только 256 возможных значений, чутьё подсказывает что в 4-ех гигабайтном файле двоичного формата встречаются все из них по многу раз, и уходить от начальной позиции не прийдётся далеко.
И кстати файл даже передавать не надо, только условиться и скачать одинаковый ISO дистрибутив линукса например.
Re[6]: Программа для шифрования с закрытым ключом
От: L_G Россия  
Дата: 06.03.25 15:53
Оценка:
Забыл сказать: единственный критерий "плохости" псевдослучайной последовательности по сравнению с истинно случайной — её зацикленность. Готовую последовательность можно просто проверить на зацикленность — начиная с конца, т.к. первые байты в общем случае могут не входить в кольцо, а последние не могут. Если цикла нет — последовательность можно считать истинно случайной (если строго — нужно проверять зацикленность последовательности битов, а не байтов...)
Каша в голове — пища для ума (с)
Re[5]: Программа для шифрования с закрытым ключом
От: Xander Zerge Россия www.zerge.com
Дата: 06.03.25 16:25
Оценка:
Здравствуйте, Khimik, Вы писали:

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

Вот такая прелесть ассиметричного алгоритма. Перемножить два числа — легко. Понять, какие два числа были перемножены — трудно.

K>>>На каком этапе здесь математические операции — перемножение чисел и разложение чисел на простые множители?

XZ>>Перемножение — на этапе генерации пары ключей, разложение — при попытке подбора закрытого ключа по открытому.

K>Не понимаю пока.

Почитай уже про RSA, это давно расписано разжёвано. Даже Алиса знает:

Давайте разберем математику RSA пошагово:

Генерация ключей:
Выбираются два больших простых числа p и q (например, по 150 цифр каждое)
Вычисляется их произведение n = p × q
Вычисляется функция Эйлера φ(n) = (p-1)(q-1)
Выбирается случайное число e (открытый экспонент), взаимно простое с φ(n)
Вычисляется d (закрытый экспонент) как обратное к e по модулю φ(n):
d × e ≡ 1 (mod φ(n))
Открытый ключ: (e, n)
Закрытый ключ: (d, n)
Шифрование сообщения M:
Сообщение представляется как число m < n
Шифрование: c = m^e mod n
Расшифровка шифра c:
m = c^d mod n
Почему это работает:

Благодаря свойствам модульной арифметики и теореме Эйлера
m^(e×d) ≡ m (mod n), если e и d подобраны правильно
Пример (для понимания принципа, не для реальной защиты):
p = 3, q = 11
n = 33
φ(n) = 20
e = 7 (взаимно просто с 20)
d = 3 (7×3 = 21 ≡ 1 mod 20)

Шифруем m = 5:
c = 5^7 mod 33 = 78125 mod 33 = 26

Расшифровываем c = 26:
m = 26^3 mod 33 = 17576 mod 33 = 5

Безопасность основана на том, что:

Умножить два простых числа легко
Разложить большое число на множители сложно
Найти d без знания p и q невозможно
Для реальных систем используются числа порядка 300-400 цифр, что делает взлом методом перебора практически невозможным даже с использованием современных суперкомпьютеров.

Важно: RSA обычно используется для шифрования небольших блоков данных (например, ключей симметричного шифрования) из-за относительно низкой скорости работы по сравнению с симметричными алгоритмами.

Серёжа Новиков,
программист
Re[4]: Программа для шифрования с закрытым ключом
От: jamesq Россия  
Дата: 06.03.25 22:02
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>генерируют псевдослучайный ключ для симметричного шифрования


Я знаю, что бывают засады с заведомо слабыми ключами для некоторых алгоритмов. Так что псевдослучайно генерировать может быть опасно.
Re[5]: Программа для шифрования с закрытым ключом
От: jamesq Россия  
Дата: 06.03.25 22:06
Оценка: 1 (1)
Здравствуйте, Khimik, Вы писали:

K>CryptGenRandom или RtlGenRandom


По некоторым сведениям, криптофункции Windows являются специально ослабленными, и в них есть закладки.
Серьёзные пацаны не пользуются ими, а либо используют проверенные реализации криптографии, либо пишут свою криптографию и никому не верят.
Re[2]: Программа для шифрования с закрытым ключом
От: rudzuk  
Дата: 06.03.25 23:39
Оценка:
Здравствуйте, system.console, Вы писали:

SC>ну вот видите — оказывается кто-то еще пишет на Delphi !


Дельфя на 9 позиции в тиобе, так-то.



Дельпхи — стронк!
Re: Программа для шифрования с закрытым ключом
От: sambl74 Россия  
Дата: 07.03.25 03:49
Оценка: -1 :))
Здравствуйте, Khimik, Вы писали:

K>Я написал на Delphi программу для такого шифрования текстов и файлов: мой файл закрытого ключа имеет размер 4 гб, и при шифровании программа выбирает в нём случайное место и добавляет байты оттуда.


А расшифратор ты когда писать будешь ? Или там надо жать кнопку "расширофать" с выбором случайного места на стороне приема пока внятный текст не получится ?
Re[5]: Программа для шифрования с закрытым ключом
От: Pzz Россия https://github.com/alexpevzner
Дата: 07.03.25 05:07
Оценка:
Здравствуйте, jamesq, Вы писали:

Pzz>>генерируют псевдослучайный ключ для симметричного шифрования


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


Ну если на 2^128 приходится с десяток слабых ключей, шанс на них нарваться примерно такой же, как шанс расщифровать текст, не зная ключа, с 10 случайных попыток.
Re[6]: Программа для шифрования с закрытым ключом
От: Khimik  
Дата: 07.03.25 05:23
Оценка:
Здравствуйте, jamesq, Вы писали:


K>>CryptGenRandom или RtlGenRandom


J>По некоторым сведениям, криптофункции Windows являются специально ослабленными, и в них есть закладки.

J>Серьёзные пацаны не пользуются ими, а либо используют проверенные реализации криптографии, либо пишут свою криптографию и никому не верят.

Ок, вот и я напишу свой ГСЧ: сделаю zip файл очень большого размера, и буду с ним колдовать.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать." Р.П. Уоррен
Re[2]: Программа для шифрования с закрытым ключом
От: A13x США  
Дата: 07.03.25 06:07
Оценка: +1
Здравствуйте, Osaka, Вы писали:

O>Нужно генерить стеганографический файл, внешне похожий на обычный форумный бред.


plot twist: первоначальное сообщение именно таким и было
Re[7]: Программа для шифрования с закрытым ключом
От: rudzuk  
Дата: 07.03.25 12:18
Оценка: +1
Здравствуйте, Khimik, Вы писали:

K>Ок, вот и я напишу свой ГСЧ: сделаю zip файл очень большого размера, и буду с ним колдовать.


, блджад...
Re[7]: Программа для шифрования с закрытым ключом
От: jamesq Россия  
Дата: 07.03.25 20:19
Оценка:
Здравствуйте, Khimik, Вы писали:

K>Ок, вот и я напишу свой ГСЧ: сделаю zip файл очень большого размера, и буду с ним колдовать.


Только другим свои поделия не впаривай. Чтобы страдал от своей криворукости только ты.
Поразительно вообще, что нашёлся программист, не слышавший об ассиметричной криптографии.
Ладно бы школьник...
Re[6]: Программа для шифрования с закрытым ключом
От: jamesq Россия  
Дата: 07.03.25 20:20
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ну если на 2^128 приходится с десяток слабых ключей, шанс на них нарваться примерно такой же, как шанс расщифровать текст, не зная ключа, с 10 случайных попыток.


А если их не десяток, а гораздо больше? В криптографии нельзя полагаться на авось.
Re[7]: Программа для шифрования с закрытым ключом
От: Pzz Россия https://github.com/alexpevzner
Дата: 08.03.25 07:58
Оценка:
Здравствуйте, jamesq, Вы писали:

Pzz>>Ну если на 2^128 приходится с десяток слабых ключей, шанс на них нарваться примерно такой же, как шанс расщифровать текст, не зная ключа, с 10 случайных попыток.


J>А если их не десяток, а гораздо больше?


Ну так про изученные алгоритмы известно, сколько их.

J>В криптографии нельзя полагаться на авось.


А по-моему, криптография только и делает, что полагается на авось. Просто авось там хорошо изученный, надежный, с известными и предсказуемыми свойствами.
Re[8]: Программа для шифрования с закрытым ключом
От: s_aa Россия  
Дата: 08.03.25 08:05
Оценка:
J>Поразительно вообще, что нашёлся программист, не слышавший об ассиметричной криптографии.
J>Ладно бы школьник...

Я удивляюсь тоже. Вроде пишет зарабатывает на ПО серьезные деньги, пишет в чате всякую школьную хрень.
Жизнь не обязана доставлять удовольствие. Достаточно отсутствия страданий.
Re[8]: Программа для шифрования с закрытым ключом
От: jamesq Россия  
Дата: 08.03.25 11:21
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ну так про изученные алгоритмы известно, сколько их.


Помню, когда в начале нулевых пробовал запрограммировать наш стандарт ГОСТ 28147, и читал доки на эту тему, там выяснилось что стандарт не полон, и не освещает вопросы генерации ключей.
Что как раз там есть слабые ключи, но сколько и каких — неизвестно.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.