Quick version: no matter what you do, a motivated user will receive the data he needs. Plus crypto is hard.
: , , , - : - ( , FYI), .
, - , AES , , .
: http://www.cs.ucdavis.edu/~rogaway/ocb/ocb-ref/rijndael-alg-fst.c ( .c .h, ).
, , :
.
#define KEYLENGTH(keybits) ((keybits)/8)
#define RKLENGTH(keybits) ((keybits)/8+28)
#define NROUNDS(keybits) ((keybits)/32+6)
#define KEYBITS 256
(...)
uint32_t rijndaelKey[RKLENGTH(KEYBITS)];
unsigned char key[KEYLENGTH(KEYBITS)];
int nrounds = rijndaelSetupEncrypt(rijndaelKey, key, KEYBITS);
.
unsigned char plaintext[16], ciphertext[16];
(...)
rijndaelEncrypt(rijndaelKey, nrounds, plaintext, ciphertext);
, Encrypt by Decrypt.
, , , , C, Objective-C . , : http://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Common_modes
Crypto , :/