stable key generation