Security feature programming

Hi. I’m trying to design a “security system” for a program. Basically, the user has a custom built usb memory stick. When he/she wants to use the software, he/she has to first insert the memory stick into a usb port. Then, when the program is opened, it checks to see if the memory stick is in the correct “layout” (in this example it has a 32 mb memory chip and a 64 mb memory chip), then runs some apps from the memory stick. Anyway, the problem is, how do I get the “layout” of the stick (that is, check to see if the memory chips are from a genuine security stick)? Is there any way to do this? Or should we consider other options? Thank you in advance. Bye.

PS: the programming has to be in c++, c# or assembly