I second nik
Also,
You should try and stay away from using soft wares if you plan on using this in business. common software encryption is VERY easy to crack, and i can not stress that enough. (added explanation for the down voter).
_
A hacking organization, that i am in no way affiliated with, uses symmetric encryption.
A weak forms of symmetric encryption is: Source (http://support.microsoft.com/kb/246071)
"Symmetric encryption is the oldest and best-known technique. A secret key, which can be a number, a word, or just a string of random letters, is applied to the text of a message to change the content in a particular way. This might be as simple as shifting each letter by a number of places in the alphabet. As long as both sender and recipient know the secret key, they can encrypt and decrypt all messages that use this key."
If you want a stong encryption i suggest you come up with an advanced algorithm that includes the Machine id of the device connecting to the encrypted data and then write an over ride encryption to be able to access the device from another machine.
A file is an array of bytes, just like a string.. So if you have a string:
"Hello world"
the bytes: (hex)
[0x68,0x65,0x6c,0x6c,0x6f,0x20,0x77,0x6f,0x72,0x6c,0x64]
Run a simple algorithm such as:
for (unsigned long int i=0; i <= bytelength;i += 2){//Calculating byte length is an entire different article
if(i%2){ //if ret is 0 then skip
*(DWORD*)bytes[i] += *(DWORD*)0x00; //Some additional byte pattern
}
}
so you would now have the bytes:
[0x68,(0x65 + 0x00),0x6c,(0x6c + 0x00),0x6f,(0x20 + 0x00),0x77,(0x6f + 0x00),0x72,(0x6c + 0x00),0x64]
Also when disabling the device after use you should rewrite the files that are removed from its file system, this could take up to 60 mins on a 20gb 2.0 usb drive.
You would need to encrypt each file before saving the files to the usb.
You should also set up USB permissions.
Also you should write a program that stores files inside the program (like a virtual machine) and only allow authorized users to access the encrypted files. (like a log in).
This is similar to what we do. I suggest you use a much more complicated algorithm.
We use Geographical positioning in our algorithm so if someone is disconnected from our server or not in an authorized location the encryption will not work. Which is what we needed, your algorithm may be entirely different.