А сегодня мои маленькие любители биткоинов будет небольшой вам подарок на новый год, мы рассмотрим основополагающий алгоритм этой криптовалюты под названием SHA-2 подвид SHA-256 на ассемблере. Да и в коментах к SHA-1 просили. В принципе со стороны коденья на асме, он даже немного легче чем SHA-1 ибо тут плоский матан, один только геморрой - набить небольшую кучку констант(копипаста утомляет).
Пока идут рождественские выходные - накидал небольшую програмку с алгоритмом SHA-2.
Итак, для тех, кто хочет узреть этот алгоритм, прошу под кат.
Показаны сообщения с ярлыком криптография. Показать все сообщения
Показаны сообщения с ярлыком криптография. Показать все сообщения
26 декабря 2012 г.
20 декабря 2012 г.
SHA-1 BrutForcer
Продолжим тему про брутфорсеры. Написал на асемблере программу для взлома SHA1 хешей. Алгоритм вычисляется на проце, а не на видео карте, так как не разбирался с работой CUDA и т.п. движков на асме. По этому алгоритм достаточно медленный по сравнению с вычислениями на видео картах, но зато работает на любом компе.
Как обычно, программа исключительно для ознакомления и использование на свой страх и риск, к стати по этому алгоритм намеренно замедлен, но ускорить его не проблема, выкинув некоторое количество кода. Естественно алгоритм и код можно улучшить, так что на истину в последней инстанции не претендую.
Как обычно, программа исключительно для ознакомления и использование на свой страх и риск, к стати по этому алгоритм намеренно замедлен, но ускорить его не проблема, выкинув некоторое количество кода. Естественно алгоритм и код можно улучшить, так что на истину в последней инстанции не претендую.
11 октября 2012 г.
Алгоритм SHA-1 на ассемблере.
Начнем с небольшой теории из педевикии:
(Нудным и гнусявым голосом) Алгоритм был создан в 1995 году прошлого века, насколько я понимаю в замену алгоритма MD5. По внутренней структуре алгоритм очень похоже на MD5, но имеет на мой взгляд более простую реализацию и вроде как более защищен от возникновения коллизий. Хотя в 2005 году математики из Китая придумали как провести полноценную атаку на SHA-1 причем менее чем за 2 в 69 степени операций. Что лучше, чем так называемая атака Дней рождения. За подробностями рекомендую обратиться в гугл, может в будующем я реализую алгоритм атаки Дней рождения, но сейчас поговорим как реализовать SHA-1 на ассемблере.
Понадобился мне SHA-1 для одного моего креатива, об котором я позже напишу.
Итак, простыми словами базовый алгоритм:
(Нудным и гнусявым голосом) Алгоритм был создан в 1995 году прошлого века, насколько я понимаю в замену алгоритма MD5. По внутренней структуре алгоритм очень похоже на MD5, но имеет на мой взгляд более простую реализацию и вроде как более защищен от возникновения коллизий. Хотя в 2005 году математики из Китая придумали как провести полноценную атаку на SHA-1 причем менее чем за 2 в 69 степени операций. Что лучше, чем так называемая атака Дней рождения. За подробностями рекомендую обратиться в гугл, может в будующем я реализую алгоритм атаки Дней рождения, но сейчас поговорим как реализовать SHA-1 на ассемблере.
Понадобился мне SHA-1 для одного моего креатива, об котором я позже напишу.
Итак, простыми словами базовый алгоритм:
29 августа 2012 г.
Программа для криптографии/криптоанализа CrypTool
Копался сегодня в интернетах и нашел интересную программу, под названием CrypTool. Посмотрев ютубы решил скачать и поглядеть живьем, больно она затейная оказалась. На ютубе показывалась первая версия, а я скачал вторую. Послу установки пришлось гдето с час поковыряться чтобы разобраться как она работает, оказалась что программа очень полезная как криптографу так и для криптоанализа, да и вообще интересно понаблюдать за всякими шифрами тем кто хоть както интересовался криптографией.
Банальный пример перебора кода Цезарь у меня на скриншете, хотя я делал и подбор AES естесвенно не целиком ибо на это уйдет времени до окончания солнечной системы, но самое главное оно работает и работает очень наглядно.
Программа умеет работать с синхронными/асинхронными шифрами, хэшами, WEP шифрованием, перехватывает пакеты и многое многое другое, что бывает полезно в криптоанализе или в попытке сломать какойнить протокол. Скачать ее можно тут:
Программа умеет работать с синхронными/асинхронными шифрами, хэшами, WEP шифрованием, перехватывает пакеты и многое многое другое, что бывает полезно в криптоанализе или в попытке сломать какойнить протокол. Скачать ее можно тут:
27 апреля 2012 г.
Сеть Фейштеля
Иной раз необходимо зашифровать какойнить кусочек, причем желательно не банальным XOR, так как он расшифровывается без проблем частенько даже при наличии бумажки с ручкой, а чем нибудь более стоящим. Посложнее XOR но полегче и попроще чем AES или MD5.
Для этого один из американских ученых по фамилии Фейштель разработал алгоритм, в последствии который стал называться сетью Фейштеля. Он до сих пор используется в в качестве основного движка во многих алгортмах шифрования, да хотябы в том же MD5. Я рассмотрю основной движек, без навороченных навесок типа перемешивания и прочего.
Смысл его в чем:
Для этого один из американских ученых по фамилии Фейштель разработал алгоритм, в последствии который стал называться сетью Фейштеля. Он до сих пор используется в в качестве основного движка во многих алгортмах шифрования, да хотябы в том же MD5. Я рассмотрю основной движек, без навороченных навесок типа перемешивания и прочего.
Смысл его в чем:
23 апреля 2012 г.
Длинная арифметика: Сравнение
Для следующей арифметической операции под названием деление, а именно вычисления модуля числа, нам необходима процедурка - сравнение. В принципе она очень проста, алгоритм заключается в следующем, сначала мы сравниваем длину числа в байтах, то число которое длиннее - всегда будет больше чем короткое. Если длина чисел равна, то сравниваем пару сатрших цифр в числах, если цифра в числе 1 больше, то значит число 1 больше и наоборот, если же они тоже равны то сдвигаемся на одну в право и повторяем сравнение,пока какая то цифра не окажется больше или меньше. Если все цифры закончились, но так и не найдено большее число, тогда считаем что оба числа равны.
А теперь все это на ASM:
А теперь все это на ASM:
20 апреля 2012 г.
Длинная арифметика: Умножение
Ну вот добрались до одной из основных операций в криптографии, это умножение. На текущий момент мы умеем с некоторым оговорками складывать и вычитать. Теперь необходимо разобраться как умножать, операция несколько сложнее чем две предыдущие.
Вспомним опять же 3ий класс и умножение столбиком.
Вспомним опять же 3ий класс и умножение столбиком.
18 апреля 2012 г.
Длинная арифметика: Вычитание
Продолжим работу с длинными числами, в текущий момент мы можем складывать числа произвольной длинны, а теперь нам необходимо научиться вычитать эти числа.
Опять же вспоминаем 3ий класс и как производятся вычитание при помощи столбика:
Опять же вспоминаем 3ий класс и как производятся вычитание при помощи столбика:
16 апреля 2012 г.
Длинная арифметика: Сложение
В криптографии часто возникает случаи когда необходимо работать с длинными числами, например необходимо вычислить 256 в 512 степени. А также сделать с этими числами некие арифметические операции. В текущий момент регистры в современных компьютерах, на 64 битных операционных системах, позволяют хранить знаковое число +-9223372036854775807 ну или беззнаковое - умножить это число на 2. С такими числами размеров 64бита можно проводить стандартные операции вычитания, деления и с некоторыми условями - умножение и сложение. Но как быть если число как я написал например 256 в 512 степени, это приблизительно - 1.04 * 10 в 1233 степени. Тоесть такое число будет занимать больше килобайта, если на каждый символ отдавать по 1 байту. Понятно, что килобайт это ничто в текущих реалиях, а если там будет 100 тысячная степень или еще больше? Тут к нам приходят на помощь алгоритмы длинной арифметики.
26 марта 2012 г.
Генератор псевдо случайных чисел.
Для начала, попробуем напрограммить что нибудь простое, нуууу например генератор псевдо случайных чисел. Сегодня поговорим про псевдо случайные числа и для чего они нужны, про реальный генератор случайных чисел будет отдельная статья. Ключевое слово тут "псевдо", так для чего он нужен?
Подписаться на:
Сообщения (Atom)


