Cipher USB Module

Hello, guys!

I need some helpwith my project, i want to make a cipher usb module with 256 AES encryption, but I can't figure what hardware do i need, I wanted to make something similar to this and to make it I was guided to look for something like this , but I can't figure out exactly if the hardware is good and how to connect it to the usb. Or if there are any other ways to do it, but the ideea is for it to be somehow fast, I don't want to have to wait for a block(encrypt-decrypt) forever.

Thank you!

I'm not seeing the benefit of using a $25 Arduino, a $25 USB Host shield, and hours and hours of researching, coding, debugging, and swearing, to save $30.

It's purely a mathematical problem. I'm not even sure where the arduino would fit into the solution.

The maths involved is not even particularly difficult. It's just that it uses really large numbers. The main issue I can see is that you need to be able to process VERY BIG numbers. I suggest you look into the arduino big number library.

I don't think this is an appropriate project for an Arduino - It seems inappropriate from every angle I can think of.

1) It's computationally intensive - encryption always is - and and the atmega chips don't have hardware encryption to make it any faster (some higher end MCUs do have AES256 implemented in silicon - I think the second link in OP is an example of such a chip). Atmega chips are not good for computationally intensive tasks - they run at 16mhz, ffs.

2) It involves working with large amounts of data. The atmega chips used have truly tiny amount of ram - a few k depending on the chip - so they're not very good for handling large amounts of data.

3) It does not involve measuring analog inputs, using GPIO pins, PWM, or doing any of the other things that the Arduino does well.

The combination of 1) and 2) will make any solution, even if it could fit into an arduino (which I doubt), mindnumbingly slow. I don't think the arduino would be able to shuffle the data around fast enough even if it didn't need to do any processing on it.

I would recommend using a commercially available encryption solution, either that USB stick (that's not a bad price considering what it's doing, assuming it does it securely), or an external drive that has the encryption built in; The ones with a keypad on them are better, all else being equal, since they're immune to keyloggers on the host computer, and don't suffer from software compatibility issues.