java smartcard strong cryptography encryption security .net authentication md5 c++ sha-1 cryptography aes smart cards crypto j2ee smartcards