basics hashing encryption signature threshold merklezation advanced interactivity knowledge completeness homomorphy commitment scheme random oracle quantum cryptography