Всем привет дорогие друзья! Сегодня я решил поведать тем, кто только начал свой долгий путь о криптографии.
-------------------------------------------------------------------------------------------------
[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.
Далее пишем наш текст и зажимаем CTRL+D.
Получаем закодированное в base64 сообщение
Также мы можем и декодировать, для этого пропишите
Далее пишем наше закодированное сообщение и жмем CTRL+D
Или же для работы с алгоритмом кодирования base, можете воспользоватся какими-либо специальными ресурсами.
Base32.
Он не далек от base64, но отличен тем, что
В терминале используется аналогично предыдущему.
Base16.
Этот алгоритм "основан" на шеснадцатиричной системе и содержет в алфавите 16 символов. С A-F и 0-9
При кодировании весь алгоритм не меняется, разве что в группе по 4 бита.
А теперь предлогаю вам решить парочку заданий.
Задание 1.
Определите кодировку и расшифруйте сообщение ниже. Дешифрованый текст и есть ответ.
Задание 2.
Какая из кодировок ниже является base64?
[5] - Base в Python.
В Python имеется библиотека base64. В ней содержится много плюшек. В том числе и кодирование в base64/32/16
Давайте напишем простую программку которая будет кодировать/декодировать сообщение. Я набросал не много, это сильно автоматизирует действия.
И вот что вышло
До встречи в следующей части!
-------------------------------------------------------------------------------------------------
[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
Получаем закодированное в base64 сообщение
Код:
Q29EZUJ5MTIzCgo=
Также мы можем и декодировать, для этого пропишите
Код:
base64 -d
Или же для работы с алгоритмом кодирования base, можете воспользоватся какими-либо специальными ресурсами.
Base32.
Он не далек от base64, но отличен тем, что
- В алфавите 32 символа. С A-Z(иногда a-z) и 2-7.
- При приобразовании, делим на группы так, чтоб в каждой группе было по 5 бит информации.
В терминале используется аналогично предыдущему.
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()
И вот что вышло
До встречи в следующей части!