RSA / велосипеды / сложность собственных имплементаций

Jul 26, 2020 18:46

Неплохая статья, но еще сок в комментариях
https://blog.trailofbits.com/2019/07/08/fuck-rsa/

Добавлено: на русском: https://habr.com/ru/company/virgilsecurity/blog/459370/Read more... )

weak cryptography, bugs, coding, cryptography, rsa

Leave a comment

Comments 22

speshuric July 26 2020, 21:05:06 UTC
Баян же. Даже на Хабре перевод был. Комменты там и там отжигают, конечно. Но и статья какая-то - визгу много, сути мало.
Тому, кто уже в криптографии и/или теории чисел немного понимает статья покажется набором банальностей. Мне, например, RSA нравится с точки зрения математики, но сложность (нюансы) имплементации, длина ключей и производительность у него неприятные. Эллиптические кривые на практике, действительно, кажутся лучшим выбором. "Кажутся" здесь, потому что в любой момент есть вероятность, что придёт математик-гений и расхреначит к чёртовой матери конкретный подобный метод, и это касается почти любой криптографии, как RSA, так и ECC, так и какой-нибудь потенциально (но условно) стойкой к квантовым алгоритмам криптографии на решётках.
Тому, кто в криптографии и теории чисел не сечёт, если начнёт реализовывать криптографию - всё равно рано или поздно (99% - рано, 1% - поздно) сделает херню. Хоть в ECC, хоть в RSA, хоть в хешах, хоть в AES (даже сделает на интринсиках и всё равно налажает).

Reply

sporaw July 26 2020, 21:28:08 UTC
Про последний абзац - все так.

Но самое смешное, что справедливо и обратное. Можно сечь в криптографии, например, но не сечь в программировании (я подобное, кстати, видел в среде серьезных математиков), и - добро пожаловать в суровый мир программирования.

Reply

speshuric July 26 2020, 21:35:45 UTC
У меня от кода, который пишут математики (большинство математиков) из глаз течёт кровь. Говорю не на пустом месте - я для кандидатской жены переписывал одну программулину с фортрана сначала на C++, потом на C# (это не было основной частью диссера - с точки зрения самостоятельности выполнения работы всё честно). Ну и видел что и как вообще в их лабе пишут. Буэ.

Reply

nightriderz1 July 26 2020, 22:40:11 UTC
У меня от кода, который пишут математики (большинство математиков) из глаз течёт кровь
Им далеко до аппаратчиков.

Reply


anonymous July 26 2020, 23:34:03 UTC
во всем виноват асм и си))) переходите на python там безопасно))

Reply

speshuric July 27 2020, 13:42:13 UTC
На чистом asm писать свою реализацию RSA оооочень геморройно. Я даже не удивлюсь, если таких реализаций (на чистом asm) нет. Но ключевые операции вполне можно зафигачить вставками.
Про C - тут неоднозначно.
"Безопасно" - вообще очень размытое понятие. Если "написать программу, чтобы она не обращалась в непонятные адреса и не крешила процесс", то, да, на C отстрелить колени проще, пусть будет Python. Но в разрезе "сделать реализацию RSA без ошибок" - тут вопрос не столько в ЯП, сколько в понимании и внимании к деталям.

Reply

anonymous July 27 2020, 20:05:45 UTC
Ничего не геморно на асме реализовывать. Нужна только библиотека для больших чисел, большинство когда-то давно пользовались BigLib v0.01e by roy|fleur. На ней RSA с пол-тычка можно сделать. Я сам кейгенов забацал дофигища лет 15 назад с её использованием.

Reply

sporaw July 27 2020, 20:20:43 UTC
Да и библиотеку по работе с большими числами написать можно (не вижу особой проблемы, не на асме, но писал, + реализовав базовые типы несложно уже то же написать и на асме, т.е. по логическим слоям).

Reply



Leave a comment

Up