AES-шифрование с использованием MonoTouch - PullRequest
4 голосов
/ 22 марта 2012

Я создаю приложение Monotouch, которое загружает данные с сервера, зашифрованные с использованием AES.Затем мне нужно расшифровать эти данные при доступе к файлу.

Каков наилучший способ сделать это с помощью MonoTouch?Расшифровка iOS AES , по-видимому, аппаратно ускорена , и поэтому в идеале я хотел бы позвонить в CCCrypt.Я немного N00B для MonoTouch, так кто-нибудь знает, как это сделать?

Или, в качестве альтернативы, есть ли лучший подход к расшифровке AES в MonoTouch?

Ответы [ 2 ]

6 голосов
/ 22 марта 2012

MonoTouch обеспечивает поддержку AES внутри своей библиотеки классов, например, класс RijndaelManaged .

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

Примечания:

  • Rijndael - это оригинальное имя алгоритма, который был выбран как AES;

  • AES - это подмножество Rijndael (только один размер блока, 128 бит), поэтому вы можете делать все, что поддерживает AES, используяRijndaelManaged;

  • В настоящий момент MonoTouch не использует CommonCrypto (использует управляемую реализацию из Mono), поэтому аппаратное ускорение не будет.Вероятно, это изменится в будущих выпусках (и будет совместимым, то есть просто перекомпилируется для людей, которые использовали RijndaelManaged в своих приложениях).

EDIT

MonoTouch 5.3.3 (alpha) теперь по умолчанию использует реализации CommonCrypto, включая аппаратное ускорение (если доступно) для AES и SHA1.

0 голосов
/ 21 августа 2012

Если вас интересует шифрование данных в покое (например, базы данных) под MonoTouch, SQLCipher может быть хорошим вариантом (http://sqlcipher.net). * Поставщик MonoTouch для SQLCipher обеспечивает полное шифрование базы данных SQLite с использованием AES-256 (http://sqlcipher.net/sqlcipher-for-monotouch). Существует также сопутствующая библиотека для Mono на Android, которая предоставляет тот же API и функции для Android (http://sqlcipher.net/sqlcipher-on-mono-for-android)

Раскрытие: я работаю для Zetetic, автора SQLCipher.

...