1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

[Начинающим] - Криптография. Введение.

Тема в разделе "Этичный хакинг и тестирование на проникновение", создана пользователем AL04E, 2 дек 2017.

  1. AL04E

    AL04E Well-Known Member
    ELEET

    Репутация:
    23
    Регистрация:
    24 май 2017
    Сообщения:
    165
    Симпатии:
    440
    Всем привет дорогие друзья! Сегодня я решил поведать тем, кто только начал свой долгий путь о криптографии.

    -------------------------------------------------------------------------------------------------

    [1] - Что изучает криптография.

    Если говорить простыми словами, то
    А если более заморочено, то wikipedia говорит нам:
    Это невероятная наука которая на самом деле существует вот уже несколько тысяч лет. Мы живем в мире обетованом безграничным количеством информации. В этом мире есть и люди, жадно впитывающие в себя всю информацию. Так вот криптография защитит нас от опасности раскрытия конфеденциальных данных.

    В основном криптография занимается изучением методов шифрования информации, разробатывая для этого различные алгоритмы(с некоторыми из них мы сегодня познакомимся).


    [2] - Где вам оно понадобится.

    Криптография очень пригодна ИБ специалисту, т.к. за частую без нее никак)
    Часто задания связаные с криптографией встречаются на CTF соревнованиях. Мы сегодня разберем малую часть таких заданий. В дальнейшем они будут все трудней. Чем выше в гору вы взберетесь, тем трудней вам будет.



    [3] - Что такое шифрование и как оно осуществляется.

    С шифрованием мы имеем дело повседневно. Когда мы находимся на веб ресурсе с протоколом https, когда разговариваем по телефону, говорим текст наоборот(редкие случаи:)), и все этому подобное..
    Иными словами
    Познакомившись с новыми для некоторых определениями идем далее.
    Шифрование информации происходит по определенному алгоритму. В использованном алгоритме часто используется ключь. Также ключь использует принемающая сторона, для дешифровки информации. Шифрование информации бывает симметричное и асимметричное.

    [3.1] - Симметричное шифрование.

    В симетричном шифровании используют один ключь. Этот ключь преднозначен для

    • Кодирования информации(в скором поймете зачем нужны ключи)
    • Декодирование информации.
    Этот ключь должен быть как у отправителя, так и у получающей стороны.
    [Начинающим] - Криптография. Введение.

    [3.2] - Асимметричное шифрование.

    Тут дела обстаят интересней. В асимметричном шифровании используют 2 ключа(публичный и закрытый).

    Первый - для шифрации.
    Второй - для дешифрации.

    Эти ключи не должны быть одинаковы. Отсюда собственно и название - асимметричные. Для каждой стороны достаточно иметь и одного ключа.

    [Начинающим] - Криптография. Введение.


    [4] - Кодируем информацию с base(64/32/16)

    Не молодая кодировка base - алгоритм кодирования информации.
    В чем отличия между 64/32/16? - А самое наиглавнейшее отличае в алгоритме. Там информация разделяется на группы. И в каждой кодировке base свое кол-во символов в одной группе. Поясняю.


    Base64.

    В алфавите a-z, A-Z, 0-9, ?, +. И так, всего в его алфавите 64 символа. Также, в конце шифрования может быть знак "=". Он появляется из-за лишнего нулевого байта. А связано это стем, что при кодировании алгоритм переводит сообщение в двоичную систему которую должен разделить на равные группы. Так вот при нехватке для полноты равенства добавляется 0.

    Мы можем как закодировать так и декодировать информацию в base64 без использования ключа.
    Откройте свой терминал *nix.
    Для работы с этим алгоритмом нам потребуется инструмент который предустановлен в систему. Это base64)
    Давайте закодируем сообщение "CoDeBy123"
    Для этого запускаем base64.
    Код:
    base64
    Далее пишем наш текст и зажимаем CTRL+D.
    Получаем закодированное в base64 сообщение

    Код:
    Q29EZUJ5MTIzCgo=
    
    [Начинающим] - Криптография. Введение.
    Также мы можем и декодировать, для этого пропишите
    Код:
    base64 -d
    Далее пишем наше закодированное сообщение и жмем CTRL+D
    [Начинающим] - Криптография. Введение.
    Или же для работы с алгоритмом кодирования base, можете воспользоватся какими-либо специальными ресурсами.

    Base32.

    Он не далек от base64, но отличен тем, что

    • В алфавите 32 символа. С A-Z(иногда a-z) и 2-7.
    • При приобразовании, делим на группы так, чтоб в каждой группе было по 5 бит информации.
    В конце закодированого сообщения будут специальные символы(=), ситуация одинакова с base64.

    В терминале используется аналогично предыдущему.

    [Начинающим] - Криптография. Введение.
    [Начинающим] - Криптография. Введение.

    Base16.

    Этот алгоритм "основан" на шеснадцатиричной системе и содержет в алфавите 16 символов. С A-F и 0-9
    При кодировании весь алгоритм не меняется, разве что в группе по 4 бита.


    А теперь предлогаю вам решить парочку заданий.

    Задание 1.

    Определите кодировку и расшифруйте сообщение ниже. Дешифрованый текст и есть ответ.
    Код:
    MZWGCZZAFUWT4ICNPFIGCU3TK5XVEZBVGQ3AUCQ=
    Задание 2.

    Какая из кодировок ниже является base64?
    Код:
    1. MJQXGZJTGIFA====
    2. YmFzZTY0Cg==
    3. 626173653634
    

    [5] - Base в Python.

    В Python имеется библиотека base64. В ней содержится много плюшек. В том числе и кодирование в base64/32/16

    Давайте напишем простую программку которая будет кодировать/декодировать сообщение. Я набросал не много, это сильно автоматизирует действия.

    Код:
    import base64
    
    bord = """
    
    [1] - Encode
    [2] - Decode
    
    """
    print(bord)
    my_input_one = input("--> ")
    
    def decoder():
        x = input("Enter base --> ")
        my_input_two = input("Enter base(64/32/16) -> ")
        if my_input_two =="64":
            a = base64.b64decode(x.encode("utf-8"))
            print("Output --> ",a.decode("utf-8"))
    
        elif my_input_two == "32":
            a = base64.b32decode(x.encode("utf-8"))
            print("Output --> ",a.decode("utf-8"))
    
       elif my_input_two == "16":
            a = base64.b16decode(x.encode("utf-8"))
            print("Output --> ",a.decode("utf-8"))
    
    
    def encoder():
        x = input("Enter text --> ")
        my_input_two = input("Enter base(64/32/16) -> ")
        if my_input_two =="64":
            a = base64.b64encode(x.encode("utf-8"))
            print("Output --> ",a.decode("utf-8"))
    
        elif my_input_two == "32":
            a = base64.b32encode(x.encode("utf-8"))
            print("Output --> ",a.decode("utf-8"))
    
       elif my_input_two == "16":
            a = base64.b16encode(x.encode("utf-8"))
            print("Output --> ", a.decode("utf-8"))
    
    if my_input_one == "1":
        encoder()
    elif my_input_one == "2":
        decoder()
    
    И вот что вышло
    [Начинающим] - Криптография. Введение.
    [Начинающим] - Криптография. Введение.

    До встречи в следующей части!

     
    _Dr0nt, kozloff73737, Darius и 20 другим нравится это.
  2. valerian38

    valerian38 Well-Known Member

    Репутация:
    4
    Регистрация:
    20 июл 2016
    Сообщения:
    369
    Симпатии:
    265
    Спасибо. Статья зачет, обнаружил для себя некоторые новые моменты
     
    Darius нравится это.
  3. ghost

    ghost penetration testing
    Grey Team

    Репутация:
    18
    Регистрация:
    12 май 2016
    Сообщения:
    687
    Симпатии:
    1.050
    Яркий пример ХОРОШО написанной статьи :)
     
    AL04E нравится это.
  4. oappot

    oappot Well-Known Member
    Премиум

    Репутация:
    4
    Регистрация:
    9 апр 2017
    Сообщения:
    77
    Симпатии:
    124
    Хорошая статья, особенно, для основ и понимания криптографии.
     
  5. Bunder99

    Bunder99 Member

    Репутация:
    0
    Регистрация:
    19 апр 2017
    Сообщения:
    8
    Симпатии:
    3
    Хорошая статья, но для меня есть одно большое НО: орфография... Я понимаю, что это не форум о русском языке, однако, это русскоязычный форум, давайте хотя бы вычитывать внимательно статью перед публикацией. Реально глаз режет и отвлекаешься от сути на орфографию, ибо ключЬ - это выше моего понимания)))))
    Автор, продолжай раскрывать вопрос, тема достаточно интересная и для меня неизведанная. На меня не обижайся, ничего личного)
     
    moeimya нравится это.
  6. Darius

    Darius Member

    Репутация:
    0
    Регистрация:
    28 сен 2016
    Сообщения:
    15
    Симпатии:
    3
    Хотелось бы подобных примеров различных способов шифрования, или разбор шифрования основанного на своих алгоритмах* . Статья отличная!

    *aka насколько возможно
     
  7. arder

    arder Member
    Премиум

    Репутация:
    0
    Регистрация:
    25 апр 2017
    Сообщения:
    5
    Симпатии:
    0
    А лучше выложить обучающий курс по возможности/
     
Загрузка...
Похожие Темы - [Начинающим] Криптография Введение
  1. alyan
    Ответов:
    0
    Просмотров:
    993
  2. yellow50
    Ответов:
    0
    Просмотров:
    1.396

Поделиться этой страницей