Para encriptar un archivo desde visual c++:
1. Abrir un archivo con CFile...
2. Leer caracter por caracter .....
3. Escribir el caracter leido en un archivo temporal, pero modificando el caracter :
'K' + 10 = 'U'
4. Borrar el archivo actual, y reemplazarlo por el archivo temporal.
Para desencriptar:
1. Abrir el archivo encriptado con CFile...
2. Leer caracter por caracter .....
3. Escribir el caracter leido en un archivo temporal, pero regresandolo a su estado anterior:
'U' - 10 = 'K'
4. Borrar el archivo actual, y reemplazarlo por el archivo temporal.
Es la manera mas facil de ecriptar/desencriptar un archivo, pero funciona. Puedes utilizar algoritmos mucho mas complejos para ello puedes googlear: griptografía.
Respecto a que si puedes restringir el uso de tu memoria usb en otras maquinas: la respuesta es
no.
Pero puedes encriptar tus archivos y poner la memoria en modo solo lectura (si la memoria te lo permite)
Un programa libre muy utilizado para encriptar lo que quieras es gnupg:
http://www.gpg4win.org/download.html