i think encrypting 300KB of data will be long running operation. I have never used security library before but i have used des algorithm to encrypt data. As des algorithm is very slow one, i could encrypt only about 500 bytes at a time. the more bytes caused watchdog reset.
i think you need to find the simplest algorithm when dealing with large amount of data. aes128 may not be possible with 300KB of data. At least i guess you will have to seperate the data to partitions and send them one by one over gprs. And you can consider using open algorithms like RC4, it is simple to implement, secure and fast. You can have a look at the following link. it compares the encryption algorithms.