For example, generation of key pairs with the at least one first computing device 210 may include an elliptic curve key pair x1,P1 where P1=x1G and the at least one second computing device 220 may include another elliptic curve key pair x2,P2 where P2=x2G with the full recovery private key being a function of x1 and x2. The at least one first computing device 210 may share a ciphertext ‘c’ encrypting x1 with public key ‘pke’ with the recovery escrow service 230 (e.g., the decision on the release of private key ‘ke’ may be carried out by the trustee 330). Once ‘ke’ becomes public, each user may be able to locally decrypt ‘x1’ on the at least one second computing device 220 and compute the corresponding private key k=f(x1, x2). In order to verify proper recovery operation, the system requirements may include verification that ‘c’ encrypts ‘x1’ and that the recovery escrow service 230 be able to prove possession of the private key ‘ke’. For encryption, the homomorphic ElGamal “in the exponent” protocol may be used, where the at least a portion of the cryptographic key 206 may be divided into ‘m’ segments such that each segment may be encrypted using the recovery public key 204 ‘Qk’ such that Qk=keG to achieve (D1,Ei)=([xi]iG+riQk, riG). To prove extractability, the at least one first computing device 210 may send proofs as follows: zero knowledge proof that ‘x1’ segments are small enough to be recovered. For every encrypted segment Zero knowledge proof of knowledge of segment and randomness used in the encryption scheme. Zero knowledge proof that addition of all encrypted segments results in encryption of ‘x1’. Proof are sent to the at least one second computing device 220, as. Once the recovery private key 205 becomes public (e.g., published by the trustee 330), the at least one second computing device 220 may decrypt segment [x1]i, from Di?keEi for instance using a “dlog extraction” algorithm over a small space of options.