A public key authentication system and method for use in a computer system
having a plurality of users. The system includes a virtual smart card
server, storage connected to the virtual smart card server, and a virtual
smart card agent connected to the virtual smart card server. The storage
includes a plurality of virtual smart cards, wherein each virtual smart
card is associated with a user and wherein each smart card includes a
private key. The virtual smart card agent authenticates the user and
accesses the authenticated user's virtual smart card to obtain the user's
private key.