Привет. Спасибо за код, но я решительно не могу понять, как работает функция split_32_to_4. Для начала, в закомментированном примере, при сдвиге на 28 бит вправо остается 8 бит (0*24)10101010, но 32-28 = 4, должно остаться только 4 бита, то есть (0*24)00001010 Для 1010...1010, конечно, все получается, потому что все блоки по 4 бита одинаковые, но вот мой пример: 1010 1001 1001 1110 1010 0000 1010 1011 i=0 >> 28 = 0000 1010 20 = 1001 1001
Спасибо большое. Это действительно ошибка, и даже две. Первая как вы и сказали, функция разделения бит неправильна написана и вторая в том, что смысла от функции split_32bits_to_4bits как такого нет, ведь её можно было переименовать в split_32bits_to_8bits и сократить код до одного преобразования, при этом ничего не изменится, ведь порядок битов будет одним и тем же. blocks4b[i] = (uint8_t)(block32b >> (24 - (i * 8))); Странно зачем я в то время напридумывал таких махинаций. Код подредактировал, файл изменил.
Привет! Спасибо за код и лекцию!!!!К сожалению при сборке выходит ошибка C4700 использована неинициализированная локальная переменная "position" в строке 47 ((( В чем может быть проблема??!??!
Приветствую! Найден серьезный недочет в функции substitution_table_by_4bits(). В результате шифрованный текст в корне неправильный. В таблице Sbox нужно выбирать строку не в зависимости от раунда, а в зависимости от положения тетрады в 32-битной последовательности. Это серьезный косяк.
Почему не упомянул что это было сделано в советском союзе? За видос спасибо, оч полезно, и приятно что тогда делали всё на века, а сегодня делают только храмы в парках))
@@Symmetry538 тогда зачем сегодня с ним воюют если его нет давно? Декоммунизация, фильмы очерняющие нашу историю, книги с тем же посылом, оскорбление и Вождей того времени и иных великих людей, оскорбление тех кто воевал за ту страну и кто трудился на благо той страны, зачем воевать с тем чего давно нет? Мож просто забыть и игнорить это чем делать одно и тожее всё время. Хотя вот чернобыль всем понравился, пример качественного обливания грязью и нашей истории и тех кто жил (и ещё жив) тогда.
По сетям определённую литературу не смогу дать. Читал книгу "Компьютерные сети" от Таненбаума и Уэзеролла. Её полезно будет читать при условии того, что хотите знать историю разработки или если вам необходимо углубленное понимание сетей со стороны теории, но чего-либо практического там не будет. Также есть в книге "UNIX Профессиональное программирование" от Стивенса и Раго глава с сокетами. Это уже более практическая часть, примеры которой написаны на языке Си. Но данной главы достаточно мало, примерно 40 страниц. Также можете посмотреть методическое пособие, которое я писал ранее. Там есть раздел работы с сетями в третьей главе, где как примеры были изображены клиент-серверное и p2p приложения на языке Go. Но рассматривать это пособие как научное не стоит, потому что могут быть допущены определённые ошибки как в тексте, так и не исключено, что могут быть в примерах программы. На счёт дистрибутива и темы: Parrot OS / ARK-Dark.
"блок разбивается на 64 бита и шифруется", а это как он так шифруется? просто блок состоит из символов, 1 символ это 8 бит, нельзя же блок целый сразу зашифровать, или просто в этом блоке все символы шифруются одинаково?
Текст разбивается на блоки по 64 бита и шифруется (тут уже неважно какой режим шифрования будет ECB, CBC, OFB, CFB, CTR и тп). Блок можно сразу же зашифровать, допустим блок 64-битный - это лишь одна переменная типа uint64_t, то-есть можно применить на эту переменную ключ равным 8 байтам, которые будут сконкатенированы и далее их сложить допустим операцией исключающее ИЛИ (xor) с ключом. На выходе получим зашифрованный блок. Тобишь за раз шифровать блоки можно по-идее любого размера. Суть современной криптографии в том, что она отходит от таких понятий как символы или слова и переходит только к работе с числами. На выходе, текст, который равен 8 байтам представляется (при помощи конкатенации) в виде одного 64-битового блока, который также можно представить как конкретное целое число.
Дома по книжке. Рекомендую книгу "Язык программирования Си" от Кернигана и Ритчи. Если необходимо более углубленное понимание языка Си стандарта C11, то могу порекомендовать книгу "Язык C Справочник" от Принца и Кроуфорда, второе издание. После базового понимания языка Си можно приступать к чтению книги с более практической частью: "UNIX Профессиональное программирование" от Стивенса и Раго, третье издание.
@@CryptoFunIT UNIX Профессиональное программирование, насколько это книга подойдет под виндовс? и если варианты для получения столь глубоких знаний под виндовс на си?
DES with CRC is 64 bit key, 56 bits for key, and 8 bits for cycle redundancy checking. И если есть место набивке до длинны блока, почему не рассказать за паддинг? ;-) Тема сисек не раскрыта. Режим ECB слабый и пример слабый. Гост этот использует ECB простую замену, для реальных проектов ценности не имеет. Автору спасибо за ролик, интересно было посмотреть.
В итоге ключ всё также является по стандарту DES 56-битным, 8 бит не учавствуют в шифровании информации. Padding в видео я не делал, потому что в этом примере массив уже имеет фиксированный размер, а считывание расшифрованного сообщения происходит до первого нулевого байта. Режим ECB будет всегда представляться в данных видео по блочным шифрам, потому что цель этих видео - показать работу и реализацию шифра в минимальной базовой составляющей, а не дополнять его деталями. Режимы CBC, CFB, OFB и прочие можно уже самому реализовать на основе показанного выше алгоритма. Если вы говорите про ГОСТ в широком смысле, то это не так, данный алгоритм может использовать и другие режимы шифрования, не только ECB. Определённо режим ECB считается нежелательным, но как я говорил ранее, цель данного цикла видео-уроков совершенно иная.
спасибо за понятную лекцию! очень наглядно показана реализация на всем знакомом С. просто супер подача, и темп речи приятный!
спасибо! я нихрена не понял
Спасибо большое, все очень интересно и понятно!
Мне батя в детстве сказал: «Если кому что-то то хочешь обьяснить - представь, что объясняешь сам себе ничего не знающему»
Интересно стало вернуться в программирование
Спасибо! Не пропадай опять!)
Какие библиотеки реализуют этот гост? Для пайтон например
Он симметричный или асимметричный?
Ты живой! Слава богу!
Ничего не понял, но очень интересно😆
Привет. Спасибо за код, но я решительно не могу понять, как работает функция split_32_to_4.
Для начала, в закомментированном примере, при сдвиге на 28 бит вправо остается 8 бит
(0*24)10101010, но 32-28 = 4, должно остаться только 4 бита, то есть (0*24)00001010
Для 1010...1010, конечно, все получается, потому что все блоки по 4 бита одинаковые, но вот мой пример:
1010 1001 1001 1110 1010 0000 1010 1011
i=0
>> 28 = 0000 1010
20 = 1001 1001
Спасибо большое. Это действительно ошибка, и даже две. Первая как вы и сказали, функция разделения бит неправильна написана и вторая в том, что смысла от функции split_32bits_to_4bits как такого нет, ведь её можно было переименовать в split_32bits_to_8bits и сократить код до одного преобразования, при этом ничего не изменится, ведь порядок битов будет одним и тем же.
blocks4b[i] = (uint8_t)(block32b >> (24 - (i * 8)));
Странно зачем я в то время напридумывал таких махинаций.
Код подредактировал, файл изменил.
Спасибо за видео!
Молоток! Зачетно проделанная работа!
Привет! Спасибо за код и лекцию!!!!К сожалению при сборке выходит ошибка C4700 использована неинициализированная локальная переменная "position" в строке 47 ((( В чем может быть проблема??!??!
тоже самое
Спасибо. Добавь название "Магма". Это же, вроде, он. Могу ошибаться
Приветствую! Найден серьезный недочет в функции substitution_table_by_4bits(). В результате шифрованный текст в корне неправильный. В таблице Sbox нужно выбирать строку не в зависимости от раунда, а в зависимости от положения тетрады в 32-битной последовательности. Это серьезный косяк.
А могут ли потом просто прочитать код криптографы, который мы написали? Тогда смысл шифрования теряется
Тут сыглы
@@flowerpower593 гений!
Все дело в сокрытии ключей и криптостойкости алгоритма, выбирай стойкий алгоритм и не свети ключи.
Мне больше интересно что у него на обоях. Я понял, что Шайтан калитка, но вот сурс
Почему не упомянул что это было сделано в советском союзе? За видос спасибо, оч полезно, и приятно что тогда делали всё на века, а сегодня делают только храмы в парках))
только сам советский союз не на века был сделан
@@Symmetry538 тогда зачем сегодня с ним воюют если его нет давно? Декоммунизация, фильмы очерняющие нашу историю, книги с тем же посылом, оскорбление и Вождей того времени и иных великих людей, оскорбление тех кто воевал за ту страну и кто трудился на благо той страны, зачем воевать с тем чего давно нет? Мож просто забыть и игнорить это чем делать одно и тожее всё время. Хотя вот чернобыль всем понравился, пример качественного обливания грязью и нашей истории и тех кто жил (и ещё жив) тогда.
@@MotodorXL12 Что бы второй раз не наступить в туже субстанцию.
@@RogovAB не волнуйся, наступим. Можешь уже думать об эмиграции.
@@fedor_ado Я уже давным давно подумал.
Привет что посоветуешь по networking'u?И что за линукс система? и что за тема?
По сетям определённую литературу не смогу дать. Читал книгу "Компьютерные сети" от Таненбаума и Уэзеролла. Её полезно будет читать при условии того, что хотите знать историю разработки или если вам необходимо углубленное понимание сетей со стороны теории, но чего-либо практического там не будет. Также есть в книге "UNIX Профессиональное программирование" от Стивенса и Раго глава с сокетами. Это уже более практическая часть, примеры которой написаны на языке Си. Но данной главы достаточно мало, примерно 40 страниц. Также можете посмотреть методическое пособие, которое я писал ранее. Там есть раздел работы с сетями в третьей главе, где как примеры были изображены клиент-серверное и p2p приложения на языке Go. Но рассматривать это пособие как научное не стоит, потому что могут быть допущены определённые ошибки как в тексте, так и не исключено, что могут быть в примерах программы. На счёт дистрибутива и темы: Parrot OS / ARK-Dark.
прикольно
А можешь книгу по криптографии посоветовать какую то, чтоб больше войти в курс дела?
Прикладная криптография (Б. Шнайер), Практическая криптография (Б. Шнайер, Н. Фергюсон)
@@CryptoFunIT это для новичков?
Привет брат скажи пожалуста какую книгу советуеш для изучения C i Python спасиба
По языку Си советую книгу от Кернигана и Ритчи: "Язык программирования Си". По питону могу посоветовать книги от Марка Лутца.
@@CryptoFunIT спс большой 😋
Hi I'm from Bangladesh. Is it possible to use English subtitles, I actually can't understand:(
"блок разбивается на 64 бита и шифруется", а это как он так шифруется? просто блок состоит из символов, 1 символ это 8 бит, нельзя же блок целый сразу зашифровать, или просто в этом блоке все символы шифруются одинаково?
Текст разбивается на блоки по 64 бита и шифруется (тут уже неважно какой режим шифрования будет ECB, CBC, OFB, CFB, CTR и тп). Блок можно сразу же зашифровать, допустим блок 64-битный - это лишь одна переменная типа uint64_t, то-есть можно применить на эту переменную ключ равным 8 байтам, которые будут сконкатенированы и далее их сложить допустим операцией исключающее ИЛИ (xor) с ключом. На выходе получим зашифрованный блок. Тобишь за раз шифровать блоки можно по-идее любого размера. Суть современной криптографии в том, что она отходит от таких понятий как символы или слова и переходит только к работе с числами. На выходе, текст, который равен 8 байтам представляется (при помощи конкатенации) в виде одного 64-битового блока, который также можно представить как конкретное целое число.
@@CryptoFunIT понял, спасибо большое
Где по-советуешь учить Си?
Дома по книжке. Рекомендую книгу "Язык программирования Си" от Кернигана и Ритчи. Если необходимо более углубленное понимание языка Си стандарта C11, то могу порекомендовать книгу "Язык C Справочник" от Принца и Кроуфорда, второе издание. После базового понимания языка Си можно приступать к чтению книги с более практической частью: "UNIX Профессиональное программирование" от Стивенса и Раго, третье издание.
@@CryptoFunIT О! Спасибо.
@@CryptoFunIT UNIX Профессиональное программирование, насколько это книга подойдет под виндовс? и если варианты для получения столь глубоких знаний под виндовс на си?
А какой это шифр Симметричный или Ассиметричный?
Симметричный
DES with CRC is 64 bit key, 56 bits for key, and 8 bits for cycle redundancy checking.
И если есть место набивке до длинны блока, почему не рассказать за паддинг? ;-)
Тема сисек не раскрыта. Режим ECB слабый и пример слабый. Гост этот использует ECB простую замену, для реальных проектов ценности не имеет.
Автору спасибо за ролик, интересно было посмотреть.
В итоге ключ всё также является по стандарту DES 56-битным, 8 бит не учавствуют в шифровании информации. Padding в видео я не делал, потому что в этом примере массив уже имеет фиксированный размер, а считывание расшифрованного сообщения происходит до первого нулевого байта. Режим ECB будет всегда представляться в данных видео по блочным шифрам, потому что цель этих видео - показать работу и реализацию шифра в минимальной базовой составляющей, а не дополнять его деталями. Режимы CBC, CFB, OFB и прочие можно уже самому реализовать на основе показанного выше алгоритма. Если вы говорите про ГОСТ в широком смысле, то это не так, данный алгоритм может использовать и другие режимы шифрования, не только ECB. Определённо режим ECB считается нежелательным, но как я говорил ранее, цель данного цикла видео-уроков совершенно иная.
@@CryptoFunIT то есть пользовать не стоит?
да обьяснять это не твое! в криптографии не новичек но и то нихера не понял что ты хотел родить)
Если не андерстеанд чекайте в режиме отладки
Привет! Спасибо за код, но у тебя он не работает, щас попробовал и пишет ошибку сегментации. В чем может быть дело? Скачивал с гита
там надо изначальное значение position = 0 прописать - но лично у меня проблема с кодировкой символов
Так насколько эта кривография устойчива к взлому ?
збелай мне пару биткоинов