Like a DMZ a VPN is a security concept, it is not a protocol (like SSH) nor a certain software package. There are multiple software packages available to set up a VPN between two or more hosts. They all use the client-server model and usually are incompatible with one another. Have look at the OSI model and make yourself aware that the encryption can be applied at different layers of the communications stack. VPN generally relies on cryptography, thus you may be interested in Cryptographic hardware acceleration and setting up Random generator.