Format preserving encryption или как правильно шифровать номера кредиток
Привет, %username%!
Сегодня у нас немного пятничная криптотема
В марте 2016 года вышла интересная публикация от NIST под номером 800-38G (pdf) и с очень интересным называнием Recommendation for Block Cipher Modes of Operation:Methods for Format-Preserving Encryption
в которой отписываются два алгоритма, позволяющие не менять формат данных при шифровании. То есть, если это будет номер кредитки
1234-3456-4567-6678, то после шифрования он тоже останется номером, просто другим. Например
6243-1132-0738-9906.
И это не простой xor, там AES и вообще всё серьезно. Давайте немного поговорим о FPE вообще, и об одной из реализаций в частности.
А так можно вообще?
Источник: Хабрахабр