Method for secure transferring of information through a network between an origin virtual asset service provider and a destination virtual asset service provider
The invention is related to a method for secure transferring of information through a network between an origin Virtual Asset Service Provider and a destination Virtual Asset Service Provider, in a hostile environment, where every entity (party member, network node) must proof its entitlement of the information being exchanged. Hostile environment means that neither any entity/network node nor the network as a whole can be trusted. The present method doesn't require other party member/network node or database to secure information transfer. Neither it requires any other trusted entity or server to guarantee or provide proof of ownership of exchange information. The present method for communicating securely between electronic devices uses asymmetric key encryption. The invention comprises also a computer program product comprising program code stored on a non-transitory computer readable medium, said program code comprising computer instructions for performing the inventive method.
1. A method for secure transferring of information through a network between an origin VASP (origin Virtual Asset Service Provider) and a destination VASP (destination Virtual Asset Service Provider), wherein:
the origin VASP (origin Virtual Asset Service Provider) is connected to said network and has an origin VASP (origin Virtual Asset Service Provider) network private key and an origin VASP (origin Virtual Asset Service Provider) network public key,
the destination VASP (destination Virtual Asset Service Provider) is connected to said network and has a destination VASP (destination Virtual Asset Service Provider) network private key and a destination VASP (destination Virtual Asset Service Provider) network public key,
said method comprising the following steps:
0a) registering an asset owner, having an owner cryptocurrency private key and an owner cryptocurrency public key, with the destination VASP (destination Virtual Asset Service Provider),
0b) creating an owner cryptocurrency address as a function of the owner cryptocurrency public key, base58 hash160 with metadata and checksum, and depositing the owner cryptocurrency address in a database accessible to the destination VASP (destination Virtual Asset Service Provider),
0c) creating a proof of ownership (POO) comprising as first contents: the owner cryptocurrency address and the destination VASP (destination Virtual Asset Service Provider) network public key and comprising a first signature of said first contents generated as a function of the owner cryptocurrency private key,
0d) storing the proof of ownership (POO) in a database accessible to the destination VASP (destination Virtual Asset Service Provider),
1a) sending a cryptocurrency address lookup query by the origin VASP (origin Virtual Asset Service Provider) to one or more nodes or all nodes of the network, wherein the cryptocurrency lookup query comprises: a searched cryptocurrency address, a challenge string and the origin VASP (origin Virtual Asset Service Provider) network public key,
1b) checking by the destination VASP (destination Virtual Asset Service Provider)—upon receiving the cryptocurrency lookup query—whether the searched cryptocurrency address matches the owner cryptocurrency address deposited in step 0b) and—in the affirmative—sending a response message (MSG 2 ) by the destination VASP (destination Virtual Asset Service Provider) to the origin VASP (origin Virtual Asset Service Provider), wherein the response message (MSG 2 ) comprises as second contents: the proof of ownership (POO) corresponding to the owner cryptocurrency address and the challenge string and comprises a second signature of said second contents generated as a function of the destination VASP (destination Virtual Asset Service Provider) network private key, and comprises the destination VASP (destination Virtual Asset Service Provider) network public key,
2a) checking by the origin VASP (origin Virtual Asset Service Provider)—upon receiving the response message (MSG 2 )—whether all the following conditions are true:
the owner cryptocurrency address contained in the proof of ownership (POO) matches the searched cryptocurrency address and
the first signature contained in the proof of ownership (POO) matches the destination VASP (destination Virtual Asset Service Provider) network public key and the first contents, by an ECDSA (Elliptic Curve Digital Signature Algorithm) function of: the first contents, the destination VASP (destination Virtual Asset Service Provider) network private key and the first signature, and
the challenge string contained in the response message (MSG 2 ) matches the challenge string contained in the cryptocurrency address lookup query and
the network public key contained in the response message (MSG 2 ) matches the network public key of the destination VASP (destination Virtual Asset Service Provider) and
the second signature contained in the response message matches the destination VASP (destination Virtual Asset Service Provider) network public key and the second contents;
and—in the affirmative—sending a third message (MSG 3 ) by the origin VASP (origin Virtual Asset Service Provider) to the destination VASP (destination Virtual Asset Service Provider), wherein the third message comprises a third contents and comprises a third signature of the third contents generated as a function of the origin VASP (origin Virtual Asset Service Provider) network private key,
3a) checking by the destination VASP (destination Virtual Asset Service Provider) upon receiving the third message (MSG 3 )—whether the third signature contained in the third message (MSG 3 ) matches the origin VASP (origin Virtual Asset Service Provider) network public key and the third contents, by the ECDSA (Elliptic Curve Digital Signature Algorithm) function of: the third contents, the origin VASP (origin Virtual Asset Service Provider) network private key and the third signature, and—in the affirmative—saving or executing the third contents.
2. The method according to claim 1 , wherein step 3a) includes generating an encrypting key as a function of the origin VASP (origin Virtual Asset Service Provider) network private key and the destination VASP (destination Virtual Asset Service Provider) network public key, and encrypting the third contents with the encryption key by the origin VASP (origin Virtual Asset Service Provider) using a symmetric-key algorithm, as well as generating a decryption key as a function of the origin VASP (origin Virtual Asset Service Provider) network public key and the destination VASP (destination Virtual Asset Service Provider) network private key, as an Elliptic-Curve Diffie-Hellman, ECDH, function of the origin VASP (origin Virtual Asset Service Provider) network public key and the destination VASP (destination Virtual Asset Service Provider) network private key, and decrypting the third contents with the decryption key by the destination VASP (destination Virtual Asset Service Provider) using a symmetric-key algorithm.
3. The method according to claim 2 , wherein the encryption or decryption is performed using the Advanced Encryption Standard 256, AES-256, algorithm.
4. The method according to claim 1 , which additionally comprises the step
4a) Sending a confirmation of saving or executing the third contents by the destination VASP (destination Virtual Asset Service Provider) to the origin VASP (origin Virtual Asset Service Provider).
5. The method according to claim 1 , wherein the third message (MSG 3 ) is transferred directly between the origin VASP (origin Virtual Asset Service Provider) and the destination VASP (destination Virtual Asset Service Provider).
6. The method according to claim 1 , wherein the challenge string in the step 1a) is a random string.
7. The method according to claim 1 , wherein said network is a peer-to-peer computer network.
8. The method according to claim 1 , wherein the asset owner is a physical person, a legal person, a network node or a Virtual Asset Service Provider, VASP.
9. A computer program product comprising program code stored on a non-transitory computer readable medium, said program code comprising computer instructions for performing the method according to claim 1 .
10. The method according to claim 1 , wherein the step of creating the proof of ownership (POO) further comprises the first signature of said first contents generated as the function of the owner cryptocurrency private key as the ECDSA (Elliptic Curve Digital Signature Algorithm) function of: the first contents and the owner cryptocurrency private key.
11. The method according to claim 10 , wherein the step of checking by the destination VASP (destination Virtual Asset Service Provider) further comprises the ECDSA (Elliptic Curve Digital Signature Algorithm) function of: the second contents and the destination VASP (destination Virtual Asset Service Provider) network private key.
12. The method according to claim 10 , wherein the step of checking by the origin VASP (origin Virtual Asset Service Provider)—upon receiving the response message (MSG 2 ) further comprises the ECDSA (Elliptic Curve Digital Signature Algorithm) function of: the second contents, the destination VASP (destination Virtual Asset Service Provider) network private key and the second signature.
13. The method according to claim 10 , wherein the step of sending the third message (MSG 3 ) by the origin VASP (origin Virtual Asset Service Provider) to the destination VASP (destination Virtual Asset Service Provider) further comprises the ECDSA (Elliptic Curve Digital Signature Algorithm) function of: the third contents and the origin VASP (origin Virtual Asset Service Provider) network private key, and comprises the origin VASP (origin Virtual Asset Service Provider) network public key.
14. The method according to claim 2 , wherein generating said encrypting key as the function of the origin VASP (origin Virtual Asset Service Provider) network private key and the destination VASP (destination Virtual Asset Service Provider) network public key comprises an Elliptic-Curve Diffie-Hellman (ECDH) function of the origin VASP (origin Virtual Asset Service Provider) network private key and the destination VASP (destination Virtual Asset Service Provider) network public key.
15. The method according to claim 7 , wherein said network is the peer-to-peer computer network with no central trusted authority and with no pre-existing trusted relationships between nodes of the computer network.