Я относительно новичок в C # и шифровании, поэтому, пожалуйста, потерпите меня.Я работаю над бизнес-приложением (в C #, .NET 4.0, VS 2010), которое хранит довольно много данных, и оно также должно быть способно считывать довольно большие объемы данных и фильтровать их для отображения (в основном вdatagridview, иногда просто некоторые расчеты ...).В любом случае данные должны быть зашифрованы, и должна быть возможность шифровать и дешифровать только части файлов данных (для записи и чтения со случайных позиций).Скорость очень важна (пользователь не должен ждать загрузки и отображения данных), безопасность занимает второе место.Компьютер, на котором он будет работать, будет по крайней мере двухъядерным с тактовой частотой 2,0 ГГц и оперативной памятью не менее 2 ГБ.
Я думал об использовании относительно большой (около 1 МБ) панели xor, которая будет рассчитываться во время выполнения.Я думаю, что нестандартный дизайн файла в двоичном коде в сочетании с xor должен обеспечивать относительно хорошую безопасность и скорость.Но теперь я начал думать об использовании чего-то более сильного, если оно все еще достаточно быстрое, возможно, AES (возможно, реализации .NET: Rijindael или Serpent или Twofish).Так что вы думаете, это лучше?Что обычно используют другие компании / разработчики в таких случаях?Как быстро / медленно AES?Операции ввода-вывода уже очень медленные, и я не знаю, ухудшит ли AES ситуацию или, возможно, ее даже не заметят.
Или у вас есть другие идеи о том, как шифровать данныедостаточно быстро?
ps Я знаю, что если кто-то успешно (!) отлаживает или разбирает код, он может расшифровать данные.
РЕДАКТИРОВАТЬ: я разрабатываю только пользовательское приложение для клиента,поэтому я не могу заставить их иметь лучшее оборудование, я могу порекомендовать лучшее оборудование.Мое программное обеспечение будет состоять в основном из 3 частей: POS, сервер и какой-то менеджер.Если вы считаете, что моя первая идея (своего рода xor) бесполезна и что мне следует использовать более качественное шифрование, по крайней мере, попытайтесь оценить, какое оборудование (минимум) даст желаемые результаты («достаточно быстро» = расшифровка не должнавлияние на отображение данных, например, если для загрузки и отображения данных в режиме просмотра данных требуется 1 с, то для дешифрования то же самое не должно быть более 1,2-1,3 с).