Здравствуйте. Огромное Вам спасибо. Я хочу реализовать собственный алгоритм на базе RSA. С помощью теста Ферма и Миллера-Рабина удалось получить 400значные простые. Хватит ли этого для хорошей криптостойкости? И можно поподробнее про алгоритмы статистического запутывания? Спасибо Вам преогромное за все! Очень помогли.
Хорошее видео, спасибо! Возможно стоило упомянуть, что в реальности RSA редко используется для шифрования именно исходных данных. Чаще всего оно используется для обмена ключами и перехода к симметричной схеме шифрования (AES, DES, Blowfish.. и тд)
Я ради интереса написал программку на питоне которая выбирает все простые числа в диапазоне от 1 до заданного. По принципу "Решето Эратосфена". Компьютер у меня не самый мощный но тем не менее работает. Я запустил свою программу с заданием до 5000. Программа работала минут десять. Число сравнительно не большое. Как тогда справляются современные компьютеры с большими числами?! Чтобы данный комментарий зашифровать - придется совершить миллионы итераций. Не судите за наивность вопроса, я не профессиональный хакер.
к сожалению ваш алгоритм очень хорошо работает только с конкретными простыми числами из видео. как только мы меняем их на другие простые числа, алгоритм перестает правильно шифровать и дешифровать сообщение
Начнём с того, что это не мой алгоритм :) Я лишь представил его в более-менее понятной форме. Если у Вас не работает - ищите ошибку в Ваших вычислениях.
Вопрос: Есть ли такие составные числа с которыми алгоритм RSA работает корректно? Или нужны только простые? Меня не парит безопасность, в принципе можно ли зашифровать алгоритмом RSA, а затем правильно расшифровать если p и q составные или хоть одно составное? Если нет таких чисел и для корректной работы RSA нужны только простые p и q то возникает другой вопрос: А нафига тогда все эти тесты на простоту? Не проще ли взять два числа и если на них работает RSA то значит они простые? А если есть такие составные p и q на которых алгоритм работает корректно то дайте пример таких чисел :-)
А есть программа которая позволяет автоматизировать создание ключей RSA, шифрование и дешифровку? Было бы интересно, если телефоны всей сваей информацией обменивались таким способом
Здравствуйте! 236 и не надо возводить в степень 269. Нам надо лишь вычислить остаток от деления (236 в степени 269) на модуль, т. е. на 377. Для этого есть особое правило. Например, пусть хотим найти остаток от деления (5 в степени 7) на модуль 3. 1) Показатель 7 раскладываем на небольшие слагаемые: 7=2+2+3. Составляем произведение степеней числа 5: (5 в степени 7)=25*25*125. 2) Затем остаток от деления 25 на 3 даст 1, остаток от деления 125 на 3 даёт 2. Находим произведение остатков1*1*2=2. 3) И, наконец, ещё раз находим ещё один остаток - от деления произведения остатков 2 на 3. Получится 2. Можно и 1) 7=1+3+3. тогда будет (5 в степени 7)=5*125*125. 2) Остатки от деления этих сомножителей на 3 будут 2, 2 и 2. 2*2*2=8. 3)Остаток от деления 8 на 3 опять даёт 2. Можно и как 7=1+2+2+2 и т. д. Эти показатели должны быть большими настолько, чтобы компьютер мог вычислить степени достаточно быстро. С уважением Александр Афанасьев.
Нужно заранее выбирать mod такой, чтобы он был больше, чем ваш максимально возможный Х. Или как-то иначе сначала преобразовать / разбить Х, чтобы число получилось меньше модуля
А зная модуль, е и остаток нельзя попытаться методом перебора подобрать? То есть прибавлять к 2-ум 21 до тех пор, пока из суммы нельзя будет взять целый корень 5-ой степени? Ну, как вариант просто
Спасибо за вопрос. В этом и проблема - именно узнать модуль :) Если числа 32 значные, к примеру, вычислить модуль очень сложно, даже используя современные компьютеры. На это могут уйти годы непрерывных вычислений.
@@2lukan1 так модуль же в открытом ключе передается, как и шифрованное сообщение (То есть я не имел ввиду разложить модуль на р и q, я имел ввиду попробовать сделать обратные действия тем, с помощью которых шифровали текст)
Дело в том, что для того чтобы правильно разложить - нужно ещё число d (степень в примере на 7:00 минуте). Сложно подобрать именно его, т.к. оно может быть очень большим по длине. Оно вместе с модулем, как Вы и сказали, есть в личном ключе. В открытом есть модуль и открытая экспонента, но не d.
Стороны обмениваются открытыми ключами, закрытый оставляют у себя. Ты берешь свое сообщения для друга, шифруешь его открытым ключом друга, отдаешь ему. Он его расшифровывает закрытым. Друг берет сообщение для тебя, шифрует твоим открытым ключом, отдает тебе. Ты его расшифровываешь своим закрытым
А если шифровать все одним блоком когда длина сообщения позволяет? Нужен ли в таком случае алгоритм запутывания? Например шифровать не отдельно 22, 22, а 2222.
Спасибо за вопрос. Я бы использовал алгоритм запутывания даже в этом случае - т.к. это даст дополнительную защиту от взлома + использовал бы выравнивание. Но вообще - чем короче сообщение, которое шифруется, тем сложнее его взломать. Поэтому число 2222 будет расшифровать сложно, даже без дополнительных алгоритмов)
@@2lukan1 А что такое алгоритм выравнивания? :-) Саму схему RSA мне удалось получить. Даже вышло с достаточно большим модулем 800-разрядное число... хотя я очень намучался с этим, но длинная арифметика решает. Формулы опробовал - все работает как часы. А вот что с этим делать дальше и насколько это безопасно? Насколько я понимаю пока Ваше сообщение меньше модуля - разбивать его на части нет смысла? Сильно увеличивается длина шифровки плюс, поскольку например 27 (скажем буква "а" из кодовой таблицы) это всегда строго определенная комбинация шифра, т.е. если шифровать посимвольно, то либо все запутываем, либо привет частотный анализ...
Про модуль - согласен с Вами. Если число меньше, то смысла нет. Если используются всегда одинаковые коды букв, а не гомофоническое шифрование, то да - без запутывания не обойтись)
Я вот только не понял-" передаём через инет, и начинаем дешифровывать"... Всмысле???? Дешифровывать должен тот, кому я передаю слово "евро", а его устройство как это сделает, если дешифрующие числа у меня же???
Есть 2 ключа - публичный, который известен всем и личный (приватный), который храниться только у того человека, который будет осуществлять дешифровку. Естественно, что его этому человеку передают заранее. Без личного ключа дешифровку сделать не получится, т.к. данные ключи ассиметричны.
@@ДмитрийЛарин-я1у Если смотреть со стороны просмотра информации, то абсолютно нет. Однако другие люди, кроме Вас, не смогут мне написать именно с вашего ютуб аккаунта, т.к. он использует минимум логин и пароль для входа.
12:15 "236 возводим в степень 269" у меня ни один калькулятор это не вычислил... Я понимаю что там ещё делим по модулю и число не такое страшное.. Но как это делает тогда машина?? Я вообще не врубаюсь
Здравствуйте, Олег. 236 и не надо возводить в степень 269. Нам надо лишь вычислить остаток от деления (236 в степени 269) на модуль, т. е. на 377. Для этого есть особое правило. Например, пусть хотим найти остаток от деления (5 в степени 7) на модуль 3. 1) Показатель 7 раскладываем на небольшие слагаемые: 7=2+2+3. Получаем произведение степеней числа 5: (5 в степени 7)=25*25*125. 2) Затем остаток от деления 25 на 3 даст 1, остаток от деления 125 на 3 даёт 2. Находим произведение остатков1*1*2=2. 3) И, наконец, ещё раз находим ещё один остаток - от деления произведения остатков 2 на 3. Получится 2. Можно и 1) 7=1+3+3. Тогда будет (5 в степени 7)=5*125*125. 2) Остатки от деления этих сомножителей на 3 будут 2, 2 и 2. 2*2*2=8. 3)Остаток от деления 8 на 3 опять даёт 2. Можно и как 7=1+2+2+2 и т. д. С уважением Александр Афанасьев.
(3+375)%377=1, а не 378
Спасибо за поправку!) Вы первый кто заметил и перепроверил расчёты)
@@2lukan1 Это мелочи. Ролик классный. Про эллиптические кривые будет?
Там, кстати, на 15:05 описка была - в правой нижней части (6,9,27,46) 46 надо на 43 исправить. :)
@@2lukan1 написал Вам в ВК, надеюсь ответите)
Не хочу умничать но деление - /, а не %.
Когда смотрю такие видео понимаю какие умные люди есть на земле, и какой я овощ в этом огромном мире))
Ну, ты хотя бы смотришь такие видео и развиваешься
мне тоже, а еще после этого понимаешь что ты какашка и жить больше не хочется
12:23 Начните с того, чтоб 236 возвести в степень 269? 😊 Остальное всё покажется более простым)
Спасибо, первый раз увидел процесс расшифровки. Обычно говорят только о шифровке.
Большое спасибо.
Всё просто и доступно
Спасибо, посмотрел несколько объяснений, только здесь стало понятно.
И Вам спасибо за хороший отзыв!)
Низкий поклон автору. Рассказал все по делу. 12/10
Благодарю за хороший отзыв!)
Спасибо большое! Очень понятно объяснили
спасибо! очень интересно объясняете
Лучшее объяснение из тех что видел. Правда "прочувствовать" всю глубину глубин все равно не смог. Не всем дано)
Очень ясно и доступно! Спасибо большое
Отличное видео! Сложно сходу всё запомнить и уловить, но если это сразу самому делать, то самое то.
Благодарю за хороший отзыв!)
Ну теперь уж точно понял как это работает, спасибо
Спасибо большое, я теперь понял как работает RSA алгоритм
И Вам спасибо за хороший отзыв!)
RSA алгоритм Шифровка - algorithm Информационная безопасность, криптография, тайнопись Простые числа
Здравствуйте. Огромное Вам спасибо. Я хочу реализовать собственный алгоритм на базе RSA. С помощью теста Ферма и Миллера-Рабина удалось получить 400значные простые. Хватит ли этого для хорошей криптостойкости? И можно поподробнее про алгоритмы статистического запутывания? Спасибо Вам преогромное за все! Очень помогли.
Гениально
Да, полезно)
Благодарю за хороший отзыв!)
*Я уехала.*
_Твоя крыша_
Однако, лайк 👍 однозначно!
Хорошее видео, спасибо!
Возможно стоило упомянуть, что в реальности RSA редко используется для шифрования именно исходных данных. Чаще всего оно используется для обмена ключами и перехода к симметричной схеме шифрования (AES, DES, Blowfish.. и тд)
Соглашусь с Вами. Спасибо за конструктивную критику и хороший отзыв!)
спасибо большое, понятно объяснили, а то никак не мог понять
Чётко, ясно, превосходно!
Благодарю!)
Спасибо
И Вам)
спасибо!
И Вам спасибо за отзыв!)
Спасибо вы меня спасли
Благодарю за хороший отзыв!)
Спасибо за труд! Дополнительные алгоритмы - похоже на блокчейн.
Да. Мне тоже так думается, хотя в их тонкости не вникал)
1. Простое число (3:33) - лишнее правило
Я ради интереса написал программку на питоне которая выбирает все простые числа в диапазоне от 1 до заданного.
По принципу "Решето Эратосфена".
Компьютер у меня не самый мощный но тем не менее работает.
Я запустил свою программу с заданием до 5000. Программа работала минут десять.
Число сравнительно не большое. Как тогда справляются современные компьютеры с большими числами?!
Чтобы данный комментарий зашифровать - придется совершить миллионы итераций.
Не судите за наивность вопроса, я не профессиональный хакер.
Добрый вечер!
Есть возможность получить презентацию?
Был бы Вам безумно благодарен!
Говори уже приват, а то ихнее прайвет по разному произносится в Сан Франциске и Чикаге.
к сожалению ваш алгоритм очень хорошо работает только с конкретными простыми числами из видео. как только мы меняем их на другие простые числа, алгоритм перестает правильно шифровать и дешифровать сообщение
Начнём с того, что это не мой алгоритм :) Я лишь представил его в более-менее понятной форме. Если у Вас не работает - ищите ошибку в Ваших вычислениях.
А как найти d? Если числа большие
15:28 (=6, =9, =27, =43) (=6, =9, =27, =46), т.е. =43 =46
Да - опечатка с моей стороны)
Вопрос: Есть ли такие составные числа с которыми алгоритм RSA работает корректно? Или нужны только простые? Меня не парит безопасность, в принципе можно ли зашифровать алгоритмом RSA, а затем правильно расшифровать если p и q составные или хоть одно составное? Если нет таких чисел и для корректной работы RSA нужны только простые p и q то возникает другой вопрос: А нафига тогда все эти тесты на простоту? Не проще ли взять два числа и если на них работает RSA то значит они простые? А если есть такие составные p и q на которых алгоритм работает корректно то дайте пример таких чисел :-)
А есть программа которая позволяет автоматизировать создание ключей RSA, шифрование и дешифровку? Было бы интересно, если телефоны всей сваей информацией обменивались таким способом
да есть онлайн генераторы. Например travistidwell.com/jsencrypt/demo/
Gpg обычно в linux сразу есть
а как вы возводите в степень такие большие числа? можете пожалуйста подсказать
Для этого есть множество онлайн калькуляторов. В windows 10, если не ошибаюсь, даже можно работать с большими числами.
Здравствуйте! 236 и не надо возводить в степень 269. Нам надо лишь вычислить остаток от деления (236 в степени 269) на модуль, т. е. на 377. Для этого есть особое правило.
Например, пусть хотим найти остаток от деления (5 в степени 7) на модуль 3.
1) Показатель 7 раскладываем на небольшие слагаемые: 7=2+2+3. Составляем произведение степеней числа 5: (5 в степени 7)=25*25*125.
2) Затем остаток от деления 25 на 3 даст 1, остаток от деления 125 на 3 даёт 2. Находим произведение остатков1*1*2=2.
3) И, наконец, ещё раз находим ещё один остаток - от деления произведения остатков 2 на 3. Получится 2.
Можно и
1) 7=1+3+3. тогда будет (5 в степени 7)=5*125*125.
2) Остатки от деления этих сомножителей на 3 будут 2, 2 и 2. 2*2*2=8.
3)Остаток от деления 8 на 3 опять даёт 2.
Можно и как 7=1+2+2+2 и т. д. Эти показатели должны быть большими настолько, чтобы компьютер мог вычислить степени достаточно быстро.
С уважением Александр Афанасьев.
Здравствуйте! Спасибо огромное за ролик, но мне не ясен один момент. Что делать, если X >= mod? Надо использовать сложение по модулю?
Нужно заранее выбирать mod такой, чтобы он был больше, чем ваш максимально возможный Х. Или как-то иначе сначала преобразовать / разбить Х, чтобы число получилось меньше модуля
@@Solozon3 Спасибо
А зная модуль, е и остаток нельзя попытаться методом перебора подобрать? То есть прибавлять к 2-ум 21 до тех пор, пока из суммы нельзя будет взять целый корень 5-ой степени? Ну, как вариант просто
Спасибо за вопрос. В этом и проблема - именно узнать модуль :) Если числа 32 значные, к примеру, вычислить модуль очень сложно, даже используя современные компьютеры. На это могут уйти годы непрерывных вычислений.
@@2lukan1 так модуль же в открытом ключе передается, как и шифрованное сообщение
(То есть я не имел ввиду разложить модуль на р и q, я имел ввиду попробовать сделать обратные действия тем, с помощью которых шифровали текст)
@@2lukan1 то есть попытаться сделать обратные действия тем которые показаны на 7:00 минуте в видео
Дело в том, что для того чтобы правильно разложить - нужно ещё число d (степень в примере на 7:00 минуте). Сложно подобрать именно его, т.к. оно может быть очень большим по длине. Оно вместе с модулем, как Вы и сказали, есть в личном ключе. В открытом есть модуль и открытая экспонента, но не d.
12:23 Как на обычном колькуляторе 236 возвести в степень 269? 🧐
Вы будете считать это всё на обычном калькуляторе?
Спасибо за видео. Однако есть вопрос. Число d которое обратное е оно тоже должно быть простым? СПС
Наверное
Каким тогда образом формируется или передается закрытый ключ на Приемной стороне если модуль формируется только на передающей?
Стороны обмениваются открытыми ключами, закрытый оставляют у себя.
Ты берешь свое сообщения для друга, шифруешь его открытым ключом друга, отдаешь ему. Он его расшифровывает закрытым.
Друг берет сообщение для тебя, шифрует твоим открытым ключом, отдает тебе. Ты его расшифровываешь своим закрытым
Открытые ключи, на то и открытые, чтобы их мог получить каждый
А если шифровать все одним блоком когда длина сообщения позволяет? Нужен ли в таком случае алгоритм запутывания? Например шифровать не отдельно 22, 22, а 2222.
Спасибо за вопрос. Я бы использовал алгоритм запутывания даже в этом случае - т.к. это даст дополнительную защиту от взлома + использовал бы выравнивание. Но вообще - чем короче сообщение, которое шифруется, тем сложнее его взломать. Поэтому число 2222 будет расшифровать сложно, даже без дополнительных алгоритмов)
@@2lukan1 А что такое алгоритм выравнивания? :-) Саму схему RSA мне удалось получить. Даже вышло с достаточно большим модулем 800-разрядное число... хотя я очень намучался с этим, но длинная арифметика решает. Формулы опробовал - все работает как часы. А вот что с этим делать дальше и насколько это безопасно? Насколько я понимаю пока Ваше сообщение меньше модуля - разбивать его на части нет смысла? Сильно увеличивается длина шифровки плюс, поскольку например 27 (скажем буква "а" из кодовой таблицы) это всегда строго определенная комбинация шифра, т.е. если шифровать посимвольно, то либо все запутываем, либо привет частотный анализ...
Про модуль - согласен с Вами. Если число меньше, то смысла нет. Если используются всегда одинаковые коды букв, а не гомофоническое шифрование, то да - без запутывания не обойтись)
Я вот только не понял-" передаём через инет, и начинаем дешифровывать"... Всмысле???? Дешифровывать должен тот, кому я передаю слово "евро", а его устройство как это сделает, если дешифрующие числа у меня же???
Есть 2 ключа - публичный, который известен всем и личный (приватный), который храниться только у того человека, который будет осуществлять дешифровку. Естественно, что его этому человеку передают заранее. Без личного ключа дешифровку сделать не получится, т.к. данные ключи ассиметричны.
@@2lukan1 но если его передают заранее, значит его можно перехватить? В чем же защита тогда?
@@ДмитрийЛарин-я1у Передают лично - не по сети интернет)
@@2lukan1 если я сейчас с вами общаюсь. Это же защищенная передача данных?
@@ДмитрийЛарин-я1у Если смотреть со стороны просмотра информации, то абсолютно нет. Однако другие люди, кроме Вас, не смогут мне написать именно с вашего ютуб аккаунта, т.к. он использует минимум логин и пароль для входа.
16:07 разве 3+375 не даст по модулю 1?
Да. Спасибо за внимательность и замечание!) Закрепил один комментарий это поясняющий.
12:15 "236 возводим в степень 269" у меня ни один калькулятор это не вычислил... Я понимаю что там ещё делим по модулю и число не такое страшное.. Но как это делает тогда машина?? Я вообще не врубаюсь
Здравствуйте, Олег. 236 и не надо возводить в степень 269. Нам надо лишь вычислить остаток от деления (236 в степени 269) на модуль, т. е. на 377. Для этого есть особое правило.
Например, пусть хотим найти остаток от деления (5 в степени 7) на модуль 3.
1) Показатель 7 раскладываем на небольшие слагаемые: 7=2+2+3. Получаем произведение степеней числа 5: (5 в степени 7)=25*25*125.
2) Затем остаток от деления 25 на 3 даст 1, остаток от деления 125 на 3 даёт 2. Находим произведение остатков1*1*2=2.
3) И, наконец, ещё раз находим ещё один остаток - от деления произведения остатков 2 на 3. Получится 2.
Можно и
1) 7=1+3+3. Тогда будет (5 в степени 7)=5*125*125.
2) Остатки от деления этих сомножителей на 3 будут 2, 2 и 2. 2*2*2=8.
3)Остаток от деления 8 на 3 опять даёт 2.
Можно и как 7=1+2+2+2 и т. д.
С уважением Александр Афанасьев.
@@Роликиизпрактики спасибо за наглядный пример. Надо будет пересмотреть ролик.
Привет
а как найти d? 10:57
Ответ на 4:57
"Цифра 369".....