// Современная криптография #1 // ГОСТ 28147-89 //

Поделиться
HTML-код
  • Опубликовано: 18 окт 2024
  • Алгоритм блочного шифрования ГОСТ 28147-89.
    Исходный код программы: github.com/Num...

Комментарии • 56

  • @keroppi-f6b
    @keroppi-f6b 21 день назад

    спасибо за понятную лекцию! очень наглядно показана реализация на всем знакомом С. просто супер подача, и темп речи приятный!

  • @isupovlife
    @isupovlife 5 лет назад +90

    спасибо! я нихрена не понял

  • @helloworld8583
    @helloworld8583 4 года назад +10

    Спасибо большое, все очень интересно и понятно!

  • @ТимурКоваль-ч6ч
    @ТимурКоваль-ч6ч 3 года назад +7

    Мне батя в детстве сказал: «Если кому что-то то хочешь обьяснить - представь, что объясняешь сам себе ничего не знающему»

  • @Валера-з6з
    @Валера-з6з 2 года назад +1

    Интересно стало вернуться в программирование

  • @johnnywonka7160
    @johnnywonka7160 5 лет назад +6

    Спасибо! Не пропадай опять!)

  • @sledleo
    @sledleo 2 года назад +2

    Какие библиотеки реализуют этот гост? Для пайтон например
    Он симметричный или асимметричный?

  • @sanitaymaru2905
    @sanitaymaru2905 5 лет назад +2

    Ты живой! Слава богу!

  • @flowerpower593
    @flowerpower593 3 года назад +2

    Ничего не понял, но очень интересно😆

  • @ZmeyScaletta
    @ZmeyScaletta 4 года назад +8

    Привет. Спасибо за код, но я решительно не могу понять, как работает функция 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

    • @CryptoFunIT
      @CryptoFunIT  4 года назад +5

      Спасибо большое. Это действительно ошибка, и даже две. Первая как вы и сказали, функция разделения бит неправильна написана и вторая в том, что смысла от функции split_32bits_to_4bits как такого нет, ведь её можно было переименовать в split_32bits_to_8bits и сократить код до одного преобразования, при этом ничего не изменится, ведь порядок битов будет одним и тем же.
      blocks4b[i] = (uint8_t)(block32b >> (24 - (i * 8)));
      Странно зачем я в то время напридумывал таких махинаций.
      Код подредактировал, файл изменил.

  • @igorkudryk2199
    @igorkudryk2199 5 лет назад +2

    Спасибо за видео!

  • @eugenex8892
    @eugenex8892 4 года назад +1

    Молоток! Зачетно проделанная работа!

  • @СержМ-р2к
    @СержМ-р2к 4 года назад +4

    Привет! Спасибо за код и лекцию!!!!К сожалению при сборке выходит ошибка C4700 использована неинициализированная локальная переменная "position" в строке 47 ((( В чем может быть проблема??!??!

  • @scc-6
    @scc-6 11 месяцев назад

    Спасибо. Добавь название "Магма". Это же, вроде, он. Могу ошибаться

  • @victorrus323
    @victorrus323 4 года назад +2

    Приветствую! Найден серьезный недочет в функции substitution_table_by_4bits(). В результате шифрованный текст в корне неправильный. В таблице Sbox нужно выбирать строку не в зависимости от раунда, а в зависимости от положения тетрады в 32-битной последовательности. Это серьезный косяк.

    • @flowerpower593
      @flowerpower593 3 года назад

      А могут ли потом просто прочитать код криптографы, который мы написали? Тогда смысл шифрования теряется

    • @РусланХасаншин-о9ъ
      @РусланХасаншин-о9ъ 2 года назад

      Тут сыглы

    • @sledleo
      @sledleo 2 года назад

      @@flowerpower593 гений!
      Все дело в сокрытии ключей и криптостойкости алгоритма, выбирай стойкий алгоритм и не свети ключи.

  • @tapochekawoo
    @tapochekawoo 2 года назад

    Мне больше интересно что у него на обоях. Я понял, что Шайтан калитка, но вот сурс

  • @MotodorXL12
    @MotodorXL12 5 лет назад +5

    Почему не упомянул что это было сделано в советском союзе? За видос спасибо, оч полезно, и приятно что тогда делали всё на века, а сегодня делают только храмы в парках))

    • @Symmetry538
      @Symmetry538 5 лет назад +1

      только сам советский союз не на века был сделан

    • @MotodorXL12
      @MotodorXL12 5 лет назад +3

      @@Symmetry538 тогда зачем сегодня с ним воюют если его нет давно? Декоммунизация, фильмы очерняющие нашу историю, книги с тем же посылом, оскорбление и Вождей того времени и иных великих людей, оскорбление тех кто воевал за ту страну и кто трудился на благо той страны, зачем воевать с тем чего давно нет? Мож просто забыть и игнорить это чем делать одно и тожее всё время. Хотя вот чернобыль всем понравился, пример качественного обливания грязью и нашей истории и тех кто жил (и ещё жив) тогда.

    • @RogovAB
      @RogovAB 3 года назад +1

      @@MotodorXL12 Что бы второй раз не наступить в туже субстанцию.

    • @fedor_ado
      @fedor_ado 3 года назад

      @@RogovAB не волнуйся, наступим. Можешь уже думать об эмиграции.

    • @RogovAB
      @RogovAB 3 года назад +1

      @@fedor_ado Я уже давным давно подумал.

  • @ThePirateHistory
    @ThePirateHistory 5 лет назад

    Привет что посоветуешь по networking'u?И что за линукс система? и что за тема?

    • @CryptoFunIT
      @CryptoFunIT  5 лет назад +6

      По сетям определённую литературу не смогу дать. Читал книгу "Компьютерные сети" от Таненбаума и Уэзеролла. Её полезно будет читать при условии того, что хотите знать историю разработки или если вам необходимо углубленное понимание сетей со стороны теории, но чего-либо практического там не будет. Также есть в книге "UNIX Профессиональное программирование" от Стивенса и Раго глава с сокетами. Это уже более практическая часть, примеры которой написаны на языке Си. Но данной главы достаточно мало, примерно 40 страниц. Также можете посмотреть методическое пособие, которое я писал ранее. Там есть раздел работы с сетями в третьей главе, где как примеры были изображены клиент-серверное и p2p приложения на языке Go. Но рассматривать это пособие как научное не стоит, потому что могут быть допущены определённые ошибки как в тексте, так и не исключено, что могут быть в примерах программы. На счёт дистрибутива и темы: Parrot OS / ARK-Dark.

  • @jimmytalent7780
    @jimmytalent7780 3 года назад

    прикольно

  • @xXx-ws1gb
    @xXx-ws1gb 3 года назад +1

    А можешь книгу по криптографии посоветовать какую то, чтоб больше войти в курс дела?

    • @CryptoFunIT
      @CryptoFunIT  3 года назад +1

      Прикладная криптография (Б. Шнайер), Практическая криптография (Б. Шнайер, Н. Фергюсон)

    • @axelvermontov6607
      @axelvermontov6607 2 года назад +1

      @@CryptoFunIT это для новичков?

  • @shermuhammadwolf10
    @shermuhammadwolf10 5 лет назад +1

    Привет брат скажи пожалуста какую книгу советуеш для изучения C i Python спасиба

    • @CryptoFunIT
      @CryptoFunIT  5 лет назад +1

      По языку Си советую книгу от Кернигана и Ритчи: "Язык программирования Си". По питону могу посоветовать книги от Марка Лутца.

    • @shermuhammadwolf10
      @shermuhammadwolf10 5 лет назад +1

      @@CryptoFunIT спс большой 😋

  • @1UniverseGames
    @1UniverseGames 3 года назад

    Hi I'm from Bangladesh. Is it possible to use English subtitles, I actually can't understand:(

  • @МересбеС
    @МересбеС 4 года назад

    "блок разбивается на 64 бита и шифруется", а это как он так шифруется? просто блок состоит из символов, 1 символ это 8 бит, нельзя же блок целый сразу зашифровать, или просто в этом блоке все символы шифруются одинаково?

    • @CryptoFunIT
      @CryptoFunIT  4 года назад

      Текст разбивается на блоки по 64 бита и шифруется (тут уже неважно какой режим шифрования будет ECB, CBC, OFB, CFB, CTR и тп). Блок можно сразу же зашифровать, допустим блок 64-битный - это лишь одна переменная типа uint64_t, то-есть можно применить на эту переменную ключ равным 8 байтам, которые будут сконкатенированы и далее их сложить допустим операцией исключающее ИЛИ (xor) с ключом. На выходе получим зашифрованный блок. Тобишь за раз шифровать блоки можно по-идее любого размера. Суть современной криптографии в том, что она отходит от таких понятий как символы или слова и переходит только к работе с числами. На выходе, текст, который равен 8 байтам представляется (при помощи конкатенации) в виде одного 64-битового блока, который также можно представить как конкретное целое число.

    • @МересбеС
      @МересбеС 4 года назад

      @@CryptoFunIT понял, спасибо большое

  • @joefast505
    @joefast505 5 лет назад +1

    Где по-советуешь учить Си?

    • @CryptoFunIT
      @CryptoFunIT  5 лет назад +4

      Дома по книжке. Рекомендую книгу "Язык программирования Си" от Кернигана и Ритчи. Если необходимо более углубленное понимание языка Си стандарта C11, то могу порекомендовать книгу "Язык C Справочник" от Принца и Кроуфорда, второе издание. После базового понимания языка Си можно приступать к чтению книги с более практической частью: "UNIX Профессиональное программирование" от Стивенса и Раго, третье издание.

    • @joefast505
      @joefast505 5 лет назад

      @@CryptoFunIT О! Спасибо.

    • @azatmuhitov3098
      @azatmuhitov3098 2 года назад

      @@CryptoFunIT UNIX Профессиональное программирование, насколько это книга подойдет под виндовс? и если варианты для получения столь глубоких знаний под виндовс на си?

  • @ДмитрийБ-я4у
    @ДмитрийБ-я4у 3 года назад

    А какой это шифр Симметричный или Ассиметричный?

  • @romankrylov3504
    @romankrylov3504 5 лет назад +1

    DES with CRC is 64 bit key, 56 bits for key, and 8 bits for cycle redundancy checking.
    И если есть место набивке до длинны блока, почему не рассказать за паддинг? ;-)
    Тема сисек не раскрыта. Режим ECB слабый и пример слабый. Гост этот использует ECB простую замену, для реальных проектов ценности не имеет.
    Автору спасибо за ролик, интересно было посмотреть.

    • @CryptoFunIT
      @CryptoFunIT  5 лет назад +3

      В итоге ключ всё также является по стандарту DES 56-битным, 8 бит не учавствуют в шифровании информации. Padding в видео я не делал, потому что в этом примере массив уже имеет фиксированный размер, а считывание расшифрованного сообщения происходит до первого нулевого байта. Режим ECB будет всегда представляться в данных видео по блочным шифрам, потому что цель этих видео - показать работу и реализацию шифра в минимальной базовой составляющей, а не дополнять его деталями. Режимы CBC, CFB, OFB и прочие можно уже самому реализовать на основе показанного выше алгоритма. Если вы говорите про ГОСТ в широком смысле, то это не так, данный алгоритм может использовать и другие режимы шифрования, не только ECB. Определённо режим ECB считается нежелательным, но как я говорил ранее, цель данного цикла видео-уроков совершенно иная.

    • @sledleo
      @sledleo 2 года назад

      @@CryptoFunIT то есть пользовать не стоит?

  • @ОляВолкова-д7ь
    @ОляВолкова-д7ь 3 года назад +3

    да обьяснять это не твое! в криптографии не новичек но и то нихера не понял что ты хотел родить)

  • @5111
    @5111 3 года назад

    Если не андерстеанд чекайте в режиме отладки

  • @Blablablabla-car
    @Blablablabla-car 4 года назад

    Привет! Спасибо за код, но у тебя он не работает, щас попробовал и пишет ошибку сегментации. В чем может быть дело? Скачивал с гита

    • @РусланХасаншин-о9ъ
      @РусланХасаншин-о9ъ 2 года назад

      там надо изначальное значение position = 0 прописать - но лично у меня проблема с кодировкой символов

  • @ЕвлампийИшаков
    @ЕвлампийИшаков 4 года назад +1

    Так насколько эта кривография устойчива к взлому ?

  • @Bitoknavsurftletu
    @Bitoknavsurftletu 2 года назад

    збелай мне пару биткоинов