Баян же. Даже на Хабре перевод был. Комменты там и там отжигают, конечно. Но и статья какая-то - визгу много, сути мало. Тому, кто уже в криптографии и/или теории чисел немного понимает статья покажется набором банальностей. Мне, например, RSA нравится с точки зрения математики, но сложность (нюансы) имплементации, длина ключей и производительность у него неприятные. Эллиптические кривые на практике, действительно, кажутся лучшим выбором. "Кажутся" здесь, потому что в любой момент есть вероятность, что придёт математик-гений и расхреначит к чёртовой матери конкретный подобный метод, и это касается почти любой криптографии, как RSA, так и ECC, так и какой-нибудь потенциально (но условно) стойкой к квантовым алгоритмам криптографии на решётках. Тому, кто в криптографии и теории чисел не сечёт, если начнёт реализовывать криптографию - всё равно рано или поздно (99% - рано, 1% - поздно) сделает херню. Хоть в ECC, хоть в RSA, хоть в хешах, хоть в AES (даже сделает на интринсиках и всё равно налажает).
Но самое смешное, что справедливо и обратное. Можно сечь в криптографии, например, но не сечь в программировании (я подобное, кстати, видел в среде серьезных математиков), и - добро пожаловать в суровый мир программирования.
У меня от кода, который пишут математики (большинство математиков) из глаз течёт кровь. Говорю не на пустом месте - я для кандидатской жены переписывал одну программулину с фортрана сначала на C++, потом на C# (это не было основной частью диссера - с точки зрения самостоятельности выполнения работы всё честно). Ну и видел что и как вообще в их лабе пишут. Буэ.
На чистом asm писать свою реализацию RSA оооочень геморройно. Я даже не удивлюсь, если таких реализаций (на чистом asm) нет. Но ключевые операции вполне можно зафигачить вставками. Про C - тут неоднозначно. "Безопасно" - вообще очень размытое понятие. Если "написать программу, чтобы она не обращалась в непонятные адреса и не крешила процесс", то, да, на C отстрелить колени проще, пусть будет Python. Но в разрезе "сделать реализацию RSA без ошибок" - тут вопрос не столько в ЯП, сколько в понимании и внимании к деталям.
Ничего не геморно на асме реализовывать. Нужна только библиотека для больших чисел, большинство когда-то давно пользовались BigLib v0.01e by roy|fleur. На ней RSA с пол-тычка можно сделать. Я сам кейгенов забацал дофигища лет 15 назад с её использованием.
Да и библиотеку по работе с большими числами написать можно (не вижу особой проблемы, не на асме, но писал, + реализовав базовые типы несложно уже то же написать и на асме, т.е. по логическим слоям).
Comments 22
Тому, кто уже в криптографии и/или теории чисел немного понимает статья покажется набором банальностей. Мне, например, RSA нравится с точки зрения математики, но сложность (нюансы) имплементации, длина ключей и производительность у него неприятные. Эллиптические кривые на практике, действительно, кажутся лучшим выбором. "Кажутся" здесь, потому что в любой момент есть вероятность, что придёт математик-гений и расхреначит к чёртовой матери конкретный подобный метод, и это касается почти любой криптографии, как RSA, так и ECC, так и какой-нибудь потенциально (но условно) стойкой к квантовым алгоритмам криптографии на решётках.
Тому, кто в криптографии и теории чисел не сечёт, если начнёт реализовывать криптографию - всё равно рано или поздно (99% - рано, 1% - поздно) сделает херню. Хоть в ECC, хоть в RSA, хоть в хешах, хоть в AES (даже сделает на интринсиках и всё равно налажает).
Reply
Но самое смешное, что справедливо и обратное. Можно сечь в криптографии, например, но не сечь в программировании (я подобное, кстати, видел в среде серьезных математиков), и - добро пожаловать в суровый мир программирования.
Reply
Reply
Им далеко до аппаратчиков.
Reply
Reply
Про C - тут неоднозначно.
"Безопасно" - вообще очень размытое понятие. Если "написать программу, чтобы она не обращалась в непонятные адреса и не крешила процесс", то, да, на C отстрелить колени проще, пусть будет Python. Но в разрезе "сделать реализацию RSA без ошибок" - тут вопрос не столько в ЯП, сколько в понимании и внимании к деталям.
Reply
Reply
Reply
Reply
Leave a comment