DETAILED ACTION
Acknowledgements
Claims 1-20 are pending.
Claims 1-20 have been examined.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP §§ 706.02(l)(1) - 706.02(l)(3) for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to www.uspto.gov/patents/process/file/efs/guidance/eTD-info-I.jsp.
Claims 1, 11 and 17 are rejected on the ground of nonstatutory double patenting as being unpatentable over claim 1 of U.S. Patent No. 11,710,124, 11,757,639 and 12,483,538. Claims 1, 3-17 and 19-20 are rejected on the ground of nonstatutory double patenting as being unpatentable over claim 1 and 3-10 of U.S. Patent No. 12,430,639. Although the claim at issue is not identical, it is not patentably distinct from each other. See the claim comparison table below for detail.
19/320,516
U.S. Patent No. 11,710,124
1. A method for mutual exchange of data over a distributed ledger, comprising:
creating a key for data encryption, wherein a sending party encrypts a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform implemented on a distributed ledger;
generating a pointer upon receipt of the encrypted data set;
encrypting the key using a public key associated with a receiving party to create an encrypted key;
the data host platform creating at least one authorization token;
the data host platform transferring the at least one authorization token from a wallet address associated with the sending party to a wallet address associated with the receiving party;
the data host platform receiving a decrypted key from the receiving party;
the data host platform receiving the pointer indicating a location of the encrypted data set from the receiving party, wherein the data host platform further encrypts the encrypted data set using the public key of the receiving party to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the receiving party, wherein the receiving party decrypts the twice encrypted data set to access the encrypted key and the encrypted data set;
the receiving party decrypting the encrypted key to access the key; and
decrypting the encrypted data set using the key, wherein the receiving party is able to view the data set upon decryption.
1. A method for secured, multi-lateral, assured data transfer over a computer network for the exchange of data D1 related to qualifying transactions, the method being accomplished by a distributed computing system including a distributed ledger platform and a data host platform, the method comprising:
(a) transferring, from a sending party to a receiving party, access rights to D1, the transferring including:
the sending party generating an encryption key, K1, and encrypting D1 with K1 using a symmetric encryption algorithm to create encrypted data D1*;
the sending party transmitting D1* to the data host platform, wherein the data host platform cannot access D1;
the sending party receiving a pointer to D1*, the pointer a universal resource identifier D1*ID that corresponds to D1*;
the sending party encrypting K1 with a public key of the receiving party using an asymmetric encryption algorithm to create an encrypted key K1*;
the sending party signing an Issue transaction via a WalletRegistry smart contract on a distributed ledger platform to create an AuthToken, that is a transferrable non-fungible token on a distributed ledger that expresses a data structure containing D1*ID, K1*, and other data such as access policies; and
transferring the AuthToken to a cryptographic wallet associated with the receiving party; and
(b) accessing D1 by the receiving party, the accessing including:
the receiving party signing an Access transaction via the WalletRegistry smart contract on the distributed ledger platform resulting in the creation of a session ID, S1;
the receiving party sending an access request for D1* to the data host platform including S1 and D1*ID;
the data host platform validating the request platform by calling the WalletRegistry smart contract on the distributed ledger platform which consults data authorization policy for validation;
in response to the validating, the data host, encrypting D1* with the public key of the recipient using asymmetric encryption, resulting in D1**, and
sending D1** to the receiving party; and
the receiving party decrypting D1** using the receiving party's private key using asymmetric encryption resulting in D1*,
decrypting the encryption key K1* with the receiving party's private key using asymmetric encryption resulting in K1, and decrypting the escrowed data D1* with the encryption key K1 using symmetric encryption resulting in D1 to thereby gain access to the data D1.
11. A method for mutual exchange of data over a distributed ledger, comprising:
creating a key for data encryption;
encrypting a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform;
generating a pointer upon receipt of the encrypted data set;
encrypting the key using a public key to create an encrypted key;
the data host platform creating at least one authorization token, wherein the at least one authorization token includes the encrypted key, the pointer, and a unique token address for association with the at least one authorization token;
the data host platform transferring the at least one authorization token from a wallet address associated with a sending party to a wallet address associated with a receiving party;
the data host platform receiving a decrypted key from the receiving party, wherein the receiving party decrypts the encrypted key;
the data host platform receiving the pointer of the at least one authorization token indicating a location of encrypted data set from the receiving party, wherein the data host platform further encrypts the encrypted data set to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the receiving party, wherein the receiving party decrypts the twice encrypted data set using a private key associated with the receiving party to access the encrypted key and the encrypted data set;
the receiving party decrypting the encrypted key to access the key; and
decrypting the encrypted data set using the key.
1. A method for secured, multi-lateral, assured data transfer over a computer network for the exchange of data D1 related to qualifying transactions, the method being accomplished by a distributed computing system including a distributed ledger platform and a data host platform, the method comprising:
(a) transferring, from a sending party to a receiving party, access rights to D1, the transferring including:
the sending party generating an encryption key, K1, and encrypting D1 with K1 using a symmetric encryption algorithm to create encrypted data D1*;
the sending party transmitting D1* to the data host platform, wherein the data host platform cannot access D1;
the sending party receiving a pointer to D1*, the pointer a universal resource identifier D1*ID that corresponds to D1*;
the sending party encrypting K1 with a public key of the receiving party using an asymmetric encryption algorithm to create an encrypted key K1*;
the sending party signing an Issue transaction via a WalletRegistry smart contract on a distributed ledger platform to create an AuthToken, that is a transferrable non-fungible token on a distributed ledger that expresses a data structure containing D1*ID, K1*, and other data such as access policies; and
transferring the AuthToken to a cryptographic wallet associated with the receiving party; and
(b) accessing D1 by the receiving party, the accessing including:
the receiving party signing an Access transaction via the WalletRegistry smart contract on the distributed ledger platform resulting in the creation of a session ID, S1;
the receiving party sending an access request for D1* to the data host platform including S1 and D1*ID;
the data host platform validating the request platform by calling the WalletRegistry smart contract on the distributed ledger platform which consults data authorization policy for validation;
in response to the validating, the data host, encrypting D1* with the public key of the recipient using asymmetric encryption, resulting in D1**, and
sending D1** to the receiving party; and
the receiving party decrypting D1** using the receiving party's private key using asymmetric encryption resulting in D1*,
decrypting the encryption key K1* with the receiving party's private key using asymmetric encryption resulting in K1, and decrypting the escrowed data D1* with the encryption key K1 using symmetric encryption resulting in D1 to thereby gain access to the data D1.
17. A method for mutual exchange of data over a distributed ledger, comprising:
certifying at least one sending party and at least one receiving party by at least one third-party administrator;
initiating a transmission of a data set by the at least one sending party;
creating a key for data encryption, wherein the at least one sending party encrypts a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform implemented on a distributed ledger;
generating a pointer upon receipt of the encrypted data set;
encrypting the key using a public key associated with the at least one receiving party to create an encrypted key;
the data host platform receiving a request from the at least one sending party to create at least one authorization token, wherein the at least one authorization token is created;
the data host platform transferring the at least one authorization token from the at least one sending party to the at least one receiving party upon receiving a request to transfer the at least one authorization token from the at least one sending party;
the data host platform receiving a decrypted key from the at least one receiving party;
the data host platform receiving the pointer, wherein the data host platform further encrypts the encrypted data set using the public key of the at least one receiving party to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the at least one receiving party, wherein the at least one receiving party decrypts the twice encrypted data set to access the encrypted key and the encrypted data set;
the at least one receiving party decrypting the encrypted key to access the key; and
decrypting the encrypted data set using the key, wherein the at least one receiving party is able to view the data set upon decryption.
1. A method for secured, multi-lateral, assured data transfer over a computer network for the exchange of data D1 related to qualifying transactions, the method being accomplished by a distributed computing system including a distributed ledger platform and a data host platform, the method comprising:
(a) transferring, from a sending party to a receiving party, access rights to D1, the transferring including:
the sending party generating an encryption key, K1, and encrypting D1 with K1 using a symmetric encryption algorithm to create encrypted data D1*;
the sending party transmitting D1* to the data host platform, wherein the data host platform cannot access D1;
the sending party receiving a pointer to D1*, the pointer a universal resource identifier D1*ID that corresponds to D1*;
the sending party encrypting K1 with a public key of the receiving party using an asymmetric encryption algorithm to create an encrypted key K1*;
the sending party signing an Issue transaction via a WalletRegistry smart contract on a distributed ledger platform to create an AuthToken, that is a transferrable non-fungible token on a distributed ledger that expresses a data structure containing D1*ID, K1*, and other data such as access policies; and
transferring the AuthToken to a cryptographic wallet associated with the receiving party; and
(b) accessing D1 by the receiving party, the accessing including:
the receiving party signing an Access transaction via the WalletRegistry smart contract on the distributed ledger platform resulting in the creation of a session ID, S1;
the receiving party sending an access request for D1* to the data host platform including S1 and D1*ID;
the data host platform validating the request platform by calling the WalletRegistry smart contract on the distributed ledger platform which consults data authorization policy for validation;
in response to the validating, the data host, encrypting D1* with the public key of the recipient using asymmetric encryption, resulting in D1**, and
sending D1** to the receiving party; and
the receiving party decrypting D1** using the receiving party's private key using asymmetric encryption resulting in D1*,
decrypting the encryption key K1* with the receiving party's private key using asymmetric encryption resulting in K1, and decrypting the escrowed data D1* with the encryption key K1 using symmetric encryption resulting in D1 to thereby gain access to the data D1.
19/320,516
U.S. Patent No. 11,757,639
1. A method for mutual exchange of data over a distributed ledger, comprising:
creating a key for data encryption, wherein a sending party encrypts a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform implemented on a distributed ledger;
generating a pointer upon receipt of the encrypted data set;
encrypting the key using a public key associated with a receiving party to create an encrypted key;
the data host platform creating at least one authorization token;
the data host platform transferring the at least one authorization token from a wallet address associated with the sending party to a wallet address associated with the receiving party;
the data host platform receiving a decrypted key from the receiving party;
the data host platform receiving the pointer indicating a location of the encrypted data set from the receiving party,
wherein the data host platform further encrypts the encrypted data set using the public key of the receiving party to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the receiving party, wherein the receiving party decrypts the twice encrypted data set to access the encrypted key and the encrypted data set;
the receiving party decrypting the encrypted key to access the key; and
decrypting the encrypted data set using the key, wherein the receiving party is able to view the data set upon decryption.
1. A method for secured, data transfer over a distributed computer system, the distributed computing system including a distributed ledger platform and a data host platform, the method comprising:
transferring, from a sending party to a receiving party, access rights to data D1, the transferring including:
(b) the sending party generating an encryption key, K1, and encrypting D1 with K1 using a symmetric encryption algorithm to create encrypted data D1*;
(c) the sending party transmitting D1* to the data host platform, wherein the data host platform cannot access D1;
(d) the sending party receiving a pointer to D1*, the pointer including an D1*ID that corresponds to D1*;
(e) the sending party encrypting K1 with a public key of the receiving party using an asymmetric encryption algorithm to create an encrypted key K1*;
(f) the sending party signing an Issue transaction via a WalletRegistry smart contract on a distributed ledger platform to thereby cause the WalletRegistry smart contract to create an AuthToken, the AuthToken being a transferrable non-fungible token on a distributed ledger that includes a data structure containing D1*ID, and K1*; and
(g) transferring the AuthToken to a cryptographic wallet associated with the receiving party; and
accessing D1 by the receiving party, the accessing including:
(h) the receiving party signing an Access transaction via the WalletRegistry smart contract on the distributed ledger platform resulting in the creation of a session ID, S1;
(i) the receiving party sending an access request for D1* to the data host platform including S1 and D1*ID;
(j) the data host platform validating the request platform by calling the WalletRegistry smart contract on the distributed ledger platform to thereby cause the WalletRegistray smart contract to consult at least one data authorization policy for validation of a qualifying transaction;
(k) in response to the validation, the data host,
encrypting D1* with the public key of the recipient using asymmetric encryption, resulting in D1**, and
sending D1** to the receiving party; and
(l) the receiving party decrypting D1** using the receiving party's private key using asymmetric encryption resulting in D1*,
decrypting the encryption key K1* with the receiving party's private key using asymmetric encryption resulting in K1, and
decrypting the escrowed data D1* with the encryption key K1 using symmetric encryption resulting in D1 to thereby gain access to the data D1.
11. A method for mutual exchange of data over a distributed ledger, comprising:
creating a key for data encryption;
encrypting a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform;
generating a pointer upon receipt of the encrypted data set;
encrypting the key using a public key to create an encrypted key;
the data host platform creating at least one authorization token, wherein the at least one authorization token includes the encrypted key, the pointer, and a unique token address for association with the at least one authorization token;
the data host platform transferring the at least one authorization token from a wallet address associated with a sending party to a wallet address associated with a receiving party;
the data host platform receiving a decrypted key from the receiving party, wherein the receiving party decrypts the encrypted key;
the data host platform receiving the pointer of the at least one authorization token indicating a location of encrypted data set from the receiving party, wherein the data host platform further encrypts the encrypted data set to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the receiving party, wherein the receiving party decrypts the twice encrypted data set using a private key associated with the receiving party to access the encrypted key and the encrypted data set;
the receiving party decrypting the encrypted key to access the key; and
decrypting the encrypted data set using the key.
1. A method for secured, data transfer over a distributed computer system, the distributed computing system including a distributed ledger platform and a data host platform, the method comprising:
transferring, from a sending party to a receiving party, access rights to data D1, the transferring including:
(b) the sending party generating an encryption key, K1, and encrypting D1 with K1 using a symmetric encryption algorithm to create encrypted data D1*;
(c) the sending party transmitting D1* to the data host platform, wherein the data host platform cannot access D1;
(d) the sending party receiving a pointer to D1*, the pointer including an D1*ID that corresponds to D1*;
(e) the sending party encrypting K1 with a public key of the receiving party using an asymmetric encryption algorithm to create an encrypted key K1*;
(f) the sending party signing an Issue transaction via a WalletRegistry smart contract on a distributed ledger platform to thereby cause the WalletRegistry smart contract to create an AuthToken, the AuthToken being a transferrable non-fungible token on a distributed ledger that includes a data structure containing D1*ID, and K1*; and
(g) transferring the AuthToken to a cryptographic wallet associated with the receiving party; and
accessing D1 by the receiving party, the accessing including:
(h) the receiving party signing an Access transaction via the WalletRegistry smart contract on the distributed ledger platform resulting in the creation of a session ID, S1;
(i) the receiving party sending an access request for D1* to the data host platform including S1 and D1*ID;
(j) the data host platform validating the request platform by calling the WalletRegistry smart contract on the distributed ledger platform to thereby cause the WalletRegistray smart contract to consult at least one data authorization policy for validation of a qualifying transaction;
(k) in response to the validation, the data host, encrypting D1* with the public key of the recipient using asymmetric encryption, resulting in D1**, and
sending D1** to the receiving party; and
(l) the receiving party decrypting D1** using the receiving party's private key using asymmetric encryption resulting in D1*,
decrypting the encryption key K1* with the receiving party's private key using asymmetric encryption resulting in K1, and
decrypting the escrowed data D1* with the encryption key K1 using symmetric encryption resulting in D1 to thereby gain access to the data D1.
17. A method for mutual exchange of data over a distributed ledger, comprising:
certifying at least one sending party and at least one receiving party by at least one third-party administrator;
initiating a transmission of a data set by the at least one sending party;
creating a key for data encryption, wherein the at least one sending party encrypts a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform implemented on a distributed ledger;
generating a pointer upon receipt of the encrypted data set;
encrypting the key using a public key associated with the at least one receiving party to create an encrypted key;
the data host platform receiving a request from the at least one sending party to create at least one authorization token, wherein the at least one authorization token is created;
the data host platform transferring the at least one authorization token from the at least one sending party to the at least one receiving party upon receiving a request to transfer the at least one authorization token from the at least one sending party;
the data host platform receiving a decrypted key from the at least one receiving party;
the data host platform receiving the pointer, wherein the data host platform further encrypts the encrypted data set using the public key of the at least one receiving party to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the at least one receiving party, wherein the at least one receiving party decrypts the twice encrypted data set to access the encrypted key and the encrypted data set;
the at least one receiving party decrypting the encrypted key to access the key; and
decrypting the encrypted data set using the key, wherein the at least one receiving party is able to view the data set upon decryption.
1. A method for secured, data transfer over a distributed computer system, the distributed computing system including a distributed ledger platform and a data host platform, the method comprising:
transferring, from a sending party to a receiving party, access rights to data D1, the transferring including:
(b) the sending party generating an encryption key, K1, and encrypting D1 with K1 using a symmetric encryption algorithm to create encrypted data D1*;
(c) the sending party transmitting D1* to the data host platform, wherein the data host platform cannot access D1;
(d) the sending party receiving a pointer to D1*, the pointer including an D1*ID that corresponds to D1*;
(e) the sending party encrypting K1 with a public key of the receiving party using an asymmetric encryption algorithm to create an encrypted key K1*;
(f) the sending party signing an Issue transaction via a WalletRegistry smart contract on a distributed ledger platform to thereby cause the WalletRegistry smart contract to create an AuthToken, the AuthToken being a transferrable non-fungible token on a distributed ledger that includes a data structure containing D1*ID, and K1*; and
(g) transferring the AuthToken to a cryptographic wallet associated with the receiving party; and
accessing D1 by the receiving party, the accessing including:
(h) the receiving party signing an Access transaction via the WalletRegistry smart contract on the distributed ledger platform resulting in the creation of a session ID, S1;
(i) the receiving party sending an access request for D1* to the data host platform including S1 and D1*ID;
(j) the data host platform validating the request platform by calling the WalletRegistry smart contract on the distributed ledger platform to thereby cause the WalletRegistray smart contract to consult at least one data authorization policy for validation of a qualifying transaction;
(k) in response to the validation, the data host, encrypting D1* with the public key of the recipient using asymmetric encryption, resulting in D1**, and
sending D1** to the receiving party; and
(l) the receiving party decrypting D1** using the receiving party's private key using asymmetric encryption resulting in D1*,
decrypting the encryption key K1* with the receiving party's private key using asymmetric encryption resulting in K1, and
decrypting the escrowed data D1* with the encryption key K1 using symmetric encryption resulting in D1 to thereby gain access to the data D1.
19/320,516
U.S. Patent No. 12,430,639
1. A method for mutual exchange of data over a distributed ledger, comprising:
creating a key for data encryption, wherein a sending party encrypts a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform implemented on a distributed ledger;
generating a pointer upon receipt of the encrypted data set;
encrypting the key using a public key associated with a receiving party to create an encrypted key;
the data host platform creating at least one authorization token;
the data host platform transferring the at least one authorization token from a wallet address associated with the sending party to a wallet address associated with the receiving party;
the data host platform receiving a decrypted key from the receiving party;
the data host platform receiving the pointer indicating a location of the encrypted data set from the receiving party, wherein the data host platform further encrypts the encrypted data set using the public key of the receiving party to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the receiving party, wherein
the receiving party decrypts the twice encrypted data set to access the encrypted key and the encrypted data set;
the receiving party decrypting the encrypted key to access the key; and
decrypting the encrypted data set using the key, wherein the receiving party is able to view the data set upon decryption.
3. 14. The method of claim (1, 11), wherein the sending party signs and authorizes a request to create the at least one authorization token and/or a request to transfer the at least one authorization token.
1. A method for mutual exchange of data over a distributed ledger, comprising:
creating a key for data encryption, wherein a sending party encrypts a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform, wherein the data host platform is implemented on a distributed ledger;
generating a pointer upon receipt of the encrypted data set, wherein the pointer stores a memory of the location of the encrypted data set within the data host platform;
encrypting the key using a public key associated with a receiving party to create an encrypted key;
the data host platform receiving a request from the sending party to create at least one authorization token, wherein the at least one authorization token is created, wherein the at least one authorization token includes the encrypted key, the pointer, and a unique token address for association with the at least one authorization token;
the data host platform transferring the at least one authorization token from a wallet address associated with the sending party to a wallet address associated with the receiving party upon receiving a request to transfer the at least one authorization token from the sending party;
the data host platform receiving a decrypted key from the receiving party, wherein the receiving party decrypts the encrypted key using the private key associated with the public address to create the decrypted key and access the pointer;
the data host platform receiving the pointer of the at least one authorization token indicating the location of encrypted data set from the receiving party, wherein the data host platform further encrypts the encrypted data set using the public key of the receiving party to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the receiving party, wherein the receiving party decrypts the twice encrypted data set using a private key associated with the receiving party to access the encrypted key and the encrypted data set;
the receiving party decrypting the encrypted key to access the key;
decrypting the encrypted data set using the key, wherein the receiving party is able to view the data set upon decryption.
3. The method of claim 1, wherein the sending party signs and authorizes the request to create the at least one authorization token and/or the request to transfer the at least one authorization token.
4. 13. 20. The method of claim (1, 11, 17), wherein the exchange of the data set is conditional upon at least one transaction between the sending party and the receiving party, wherein the data host platform verifies the at least one transaction has occurred prior to sending the twice encrypted data to the receiving party.
4. The method of claim 1, wherein the exchange of the data set is conditional upon at least one transaction between the sending party and the receiving party, wherein the data host platform verifies the at least one transaction has occurred prior to sending the twice encrypted data to the receiving party.
5. 15. The method of claim (1, 11), wherein upon completion of at least one transaction between the sending party and the receiving party, the data set is made available to a third-party administrator.
5. The method of claim 1, wherein upon completion of at least one transaction between the sending party and the receiving party, the data set is made available to a third-party administrator.
6. The method of claim 1, wherein the sending party is an initiating Virtual Asset Service Provider (VASP) and the receiving party is a beneficiary VASP and/or a third-party administrator.
6. The method of claim 1, wherein the sending party is an initiating Virtual Asset Service Provider (VASP) and the receiving party is a beneficiary VASP and/or a third-party administrator.
7. The method of claim 6, wherein the method is bilateral such that the VASP and/or the third-party administrator is the receiving party in a first execution of the method and the VASP and/or the third party administrator is the sending party of a second execution of the method.
7. The method of claim 6, wherein the method is bilateral such that the VASP and/or the third-party administrator is the receiving party in a first execution of the method and the VASP and/or the third-party administrator is the sending party of a second execution of the method.
8. 16. The method of claim (1, 11), wherein the pointer is a hash pointer.
8. The method of claim 1, wherein the pointer is a hash pointer.
9. The method of claim 1, wherein the sending party is certified by a regulatory certification authority, wherein the receiving party is certified by the regulatory certification authority and/or verified by a trusted third-party VASP prior to sending the at least one authorization token.
9. The method of claim 1, wherein the sending party is certified by a regulatory certification authority, wherein the receiving party is certified by the regulatory certification authority and/or verified by a trusted third-party VASP prior to sending the at least one authorization token.
10. 12. 19. The method of claim (1, 11, 17), wherein encryption of the key, the data set, and/or the encrypted data set is accomplished using symmetric and/or asymmetric encryption techniques.
10. The method of claim 1, wherein encryption of the key, the data set, and/or the encrypted data set is accomplished using symmetric and/or asymmetric encryption techniques.
11. A method for mutual exchange of data over a distributed ledger, comprising:
creating a key for data encryption;
encrypting a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform;
generating a pointer upon receipt of the encrypted data set;
encrypting the key using a public key to create an encrypted key;
the data host platform creating at least one authorization token, wherein the at least one authorization token includes the encrypted key, the pointer, and a unique token address for association with the at least one authorization token;
the data host platform transferring the at least one authorization token from a wallet address associated with a sending party to a wallet address associated with a receiving party;
the data host platform receiving a decrypted key from the receiving party, wherein the receiving party decrypts the encrypted key;
the data host platform receiving the pointer of the at least one authorization token indicating a location of encrypted data set from the receiving party, wherein the data host platform further encrypts the encrypted data set to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the receiving party, wherein the receiving party decrypts the twice encrypted data set using a private key associated with the receiving party to access the encrypted key and the encrypted data set;
the receiving party decrypting the encrypted key to access the key; and
decrypting the encrypted data set using the key.
1. A method for mutual exchange of data over a distributed ledger, comprising:
creating a key for data encryption, wherein a sending party encrypts a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform, wherein the data host platform is implemented on a distributed ledger;
generating a pointer upon receipt of the encrypted data set, wherein the pointer stores a memory of the location of the encrypted data set within the data host platform;
encrypting the key using a public key associated with a receiving party to create an encrypted key;
the data host platform receiving a request from the sending party to create at least one authorization token, wherein the at least one authorization token is created, wherein the at least one authorization token includes the encrypted key, the pointer, and a unique token address for association with the at least one authorization token;
the data host platform transferring the at least one authorization token from a wallet address associated with the sending party to a wallet address associated with the receiving party upon receiving a request to transfer the at least one authorization token from the sending party;
the data host platform receiving a decrypted key from the receiving party, wherein the receiving party decrypts the encrypted key using the private key associated with the public address to create the decrypted key and access the pointer;
the data host platform receiving the pointer of the at least one authorization token indicating the location of encrypted data set from the receiving party, wherein the data host platform further encrypts the encrypted data set using the public key of the receiving party to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the receiving party, wherein the receiving party decrypts the twice encrypted data set using a private key associated with the receiving party to access the encrypted key and the encrypted data set;
the receiving party decrypting the encrypted key to access the key;
decrypting the encrypted data set using the key, wherein the receiving party is able to view the data set upon decryption.
17. A method for mutual exchange of data over a distributed ledger, comprising:
certifying at least one sending party and at least one receiving party by at least one third-party administrator;
initiating a transmission of a data set by the at least one sending party;
creating a key for data encryption, wherein the at least one sending party encrypts a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform implemented on a distributed ledger;
generating a pointer upon receipt of the encrypted data set;
encrypting the key using a public key associated with the at least one receiving party to create an encrypted key;
the data host platform receiving a request from the at least one sending party to create at least one authorization token, wherein the at least one authorization token is created;
the data host platform transferring the at least one authorization token from the at least one sending party to the at least one receiving party upon receiving a request to transfer the at least one authorization token from the at least one sending party;
the data host platform receiving a decrypted key from the at least one receiving party;
the data host platform receiving the pointer, wherein the data host platform further encrypts the encrypted data set using the public key of the at least one receiving party to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the at least one receiving party, wherein the at least one receiving party decrypts the twice encrypted data set to access the encrypted key and the encrypted data set;
the at least one receiving party decrypting the encrypted key to access the key; and
decrypting the encrypted data set using the key, wherein the at least one receiving party is able to view the data set upon decryption.
1. A method for mutual exchange of data over a distributed ledger, comprising:
creating a key for data encryption, wherein a sending party encrypts a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform, wherein the data host platform is implemented on a distributed ledger;
generating a pointer upon receipt of the encrypted data set, wherein the pointer stores a memory of the location of the encrypted data set within the data host platform;
encrypting the key using a public key associated with a receiving party to create an encrypted key;
the data host platform receiving a request from the sending party to create at least one authorization token, wherein the at least one authorization token is created, wherein the at least one authorization token includes the encrypted key, the pointer, and a unique token address for association with the at least one authorization token;
the data host platform transferring the at least one authorization token from a wallet address associated with the sending party to a wallet address associated with the receiving party upon receiving a request to transfer the at least one authorization token from the sending party;
the data host platform receiving a decrypted key from the receiving party, wherein the receiving party decrypts the encrypted key using the private key associated with the public address to create the decrypted key and access the pointer;
the data host platform receiving the pointer of the at least one authorization token indicating the location of encrypted data set from the receiving party, wherein the data host platform further encrypts the encrypted data set using the public key of the receiving party to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the receiving party, wherein the receiving party decrypts the twice encrypted data set using a private key associated with the receiving party to access the encrypted key and the encrypted data set;
the receiving party decrypting the encrypted key to access the key;
decrypting the encrypted data set using the key, wherein the receiving party is able to view the data set upon decryption.
19/320,516
U.S. Patent No. 12,483,538
1. A method for mutual exchange of data over a distributed ledger, comprising:
creating a key for data encryption, wherein a sending party encrypts a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform implemented on a distributed ledger;
generating a pointer upon receipt of the encrypted data set;
encrypting the key using a public key associated with a receiving party to create an encrypted key;
the data host platform creating at least one authorization token;
the data host platform transferring the at least one authorization token from a wallet address associated with the sending party to a wallet address associated with the receiving party;
the data host platform receiving a decrypted key from the receiving party;
the data host platform receiving the pointer indicating a location of the encrypted data set from the receiving party,
wherein the data host platform further encrypts the encrypted data set using the public key of the receiving party to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the receiving party, wherein
the receiving party decrypts the twice encrypted data set to access the encrypted key and the encrypted data set;
the receiving party decrypting the encrypted key to access the key; and
decrypting the encrypted data set using the key, wherein the receiving party is able to view the data set upon decryption.
1. A method of secure data transfer over a distributed ledger, comprising:
an issuing party of a decentralized computer platform generating a key;
the issuing party encrypting data with the key using a symmetric encryption algorithm to create encrypted data;
the issuing party transferring the encrypted data to a data host platform;
the data host platform creating a pointer to indicate the location of the encrypted data on the data host platform and the data host platform transferring the pointer to a distributed ledger;
the issuing party transferring the access key to the distributed ledger;
the issuing party transmitting a request to the distributed ledger to create an authorization token; the distributed ledger creating the authorization token including a unique token identifier, the access key, and the pointer;
the distributed ledger transferring the authorization token to a receiving party;
the receiving party transmitting a request to the data host platform to access the encrypted data;
the data host platform encrypting the encrypted data with the asymmetric encryption algorithm to create twice-encrypted data upon receiving the request to access the encrypted data;
the data host platform transferring the twice-encrypted data to the receiving party, the receiving party decrypting the twice-encrypted data using the asymmetric encryption algorithm to produce the encrypted data;
the receiving party decrypting the access key using the asymmetric encryption algorithm to produce the key; and
the receiving party decrypting the encrypted data with the key using the symmetric encryption algorithm to access the data.
11. A method for mutual exchange of data over a distributed ledger, comprising:
creating a key for data encryption;
encrypting a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform;
generating a pointer upon receipt of the encrypted data set;
encrypting the key using a public key to create an encrypted key;
the data host platform creating at least one authorization token, wherein the at least one authorization token includes the encrypted key, the pointer, and a unique token address for association with the at least one authorization token;
the data host platform transferring the at least one authorization token from a wallet address associated with a sending party to a wallet address associated with a receiving party;
the data host platform receiving a decrypted key from the receiving party, wherein the receiving party decrypts the encrypted key;
the data host platform receiving the pointer of the at least one authorization token indicating a location of encrypted data set from the receiving party, wherein the data host platform further encrypts the encrypted data set to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the receiving party, wherein the receiving party decrypts the twice encrypted data set using a private key associated with the receiving party to access the encrypted key and the encrypted data set;
the receiving party decrypting the encrypted key to access the key; and
decrypting the encrypted data set using the key.
1. A method of secure data transfer over a distributed ledger, comprising:
an issuing party of a decentralized computer platform generating a key;
the issuing party encrypting data with the key using a symmetric encryption algorithm to create encrypted data;
the issuing party transferring the encrypted data to a data host platform;
the data host platform creating a pointer to indicate the location of the encrypted data on the data host platform and the data host platform transferring the pointer to a distributed ledger;
the issuing party transferring the access key to the distributed ledger;
the issuing party transmitting a request to the distributed ledger to create an authorization token; the distributed ledger creating the authorization token including a unique token identifier, the access key, and the pointer;
the distributed ledger transferring the authorization token to a receiving party;
the receiving party transmitting a request to the data host platform to access the encrypted data;
the data host platform encrypting the encrypted data with the asymmetric encryption algorithm to create twice-encrypted data upon receiving the request to access the encrypted data;
the data host platform transferring the twice-encrypted data to the receiving party, the receiving party decrypting the twice-encrypted data using the asymmetric encryption algorithm to produce the encrypted data;
the receiving party decrypting the access key using the asymmetric encryption algorithm to produce the key; and
the receiving party decrypting the encrypted data with the key using the symmetric encryption algorithm to access the data.
17. A method for mutual exchange of data over a distributed ledger, comprising:
certifying at least one sending party and at least one receiving party by at least one third-party administrator;
initiating a transmission of a data set by the at least one sending party;
creating a key for data encryption, wherein the at least one sending party encrypts a data set using the key to create an encrypted data set;
sending the encrypted data set to a data host platform implemented on a distributed ledger;
generating a pointer upon receipt of the encrypted data set;
encrypting the key using a public key associated with the at least one receiving party to create an encrypted key;
the data host platform receiving a request from the at least one sending party to create at least one authorization token, wherein the at least one authorization token is created;
the data host platform transferring the at least one authorization token from the at least one sending party to the at least one receiving party upon receiving a request to transfer the at least one authorization token from the at least one sending party;
the data host platform receiving a decrypted key from the at least one receiving party;
the data host platform receiving the pointer, wherein the data host platform further encrypts the encrypted data set using the public key of the at least one receiving party to create a twice encrypted data set;
the data host platform sending the twice encrypted data set to the at least one receiving party, wherein the at least one receiving party decrypts the twice encrypted data set to access the encrypted key and the encrypted data set;
the at least one receiving party decrypting the encrypted key to access the key; and
decrypting the encrypted data set using the key, wherein the at least one receiving party is able to view the data set upon decryption.
1. A method of secure data transfer over a distributed ledger, comprising:
an issuing party of a decentralized computer platform generating a key;
the issuing party encrypting data with the key using a symmetric encryption algorithm to create encrypted data;
the issuing party transferring the encrypted data to a data host platform;
the data host platform creating a pointer to indicate the location of the encrypted data on the data host platform and the data host platform transferring the pointer to a distributed ledger;
the issuing party transferring the access key to the distributed ledger;
the issuing party transmitting a request to the distributed ledger to create an authorization token; the distributed ledger creating the authorization token including a unique token identifier, the access key, and the pointer;
the distributed ledger transferring the authorization token to a receiving party;
the receiving party transmitting a request to the data host platform to access the encrypted data;
the data host platform encrypting the encrypted data with the asymmetric encryption algorithm to create twice-encrypted data upon receiving the request to access the encrypted data;
the data host platform transferring the twice-encrypted data to the receiving party, the receiving party decrypting the twice-encrypted data using the asymmetric encryption algorithm to produce the encrypted data;
the receiving party decrypting the access key using the asymmetric encryption algorithm to produce the key; and
the receiving party decrypting the encrypted data with the key using the symmetric encryption algorithm to access the data.
Allowable Subject Matter
Claims 1-20 would be allowable if double patent rejections, set forth in this Office action, are overcome. The closest prior art of record is US20200127834A (“Westland et al.”). Westland et al. teaches creating a key for data encryption, wherein a sending party encrypts a data set using the key to create an encrypted data set; (Fig. 2 steps 202 and 204; ¶0025 and ¶0028); sending the encrypted data set to a data host platform implemented on a distributed ledger; (Fig. 2 step 210; ¶0033); encrypting the key using a public key associated with a receiving party to create an encrypted key; (Fig. 2 step 206; ¶0029); the receiving party decrypting the encrypted key to access the key; (Fig. 2 step 212, ¶0035); decrypting the encrypted data set using the key, wherein the receiving party is able to view the data set upon decryption. (Fig. 2 step 212; ¶0036). However, the prior art does not teach generating a pointer upon receipt of the encrypted data set; the data host platform creating at least one authorization token; the data host platform transferring the at least one authorization token from a wallet address associated with the sending party to a wallet address associated with the receiving party; the data host platform receiving a decrypted key from the receiving party; the data host platform receiving the pointer indicating a location of the encrypted data set from the receiving party, wherein the data host platform further encrypts the encrypted data set using the public key of the receiving party to create a twice encrypted data set; the data host platform sending the twice encrypted data set to the receiving party, wherein the receiving party decrypts the twice encrypted data set to access the encrypted key and the encrypted data set.
Conclusion
The following prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US20220012358A1 (“Gaddam et al.”) discloses a system and method for enabling user control over usage of their information by data consumers, even when untrusted parties are involved, while also preventing collusion between the untrusted party and a data consumer. A user's information may be collected by a client device and provided to a host server. An encrypted version of the user's information may be stored at the host server so that it is processed on a private enclave of the host server. When the data is to be provided to multiple data consumers, the data may be encrypted for each of the data consumers and may be released to each of those data consumers simultaneously once confirmation has been received that the data has been made available to each of the data consumers.
US6311171B1 (“Dent”) discloses a method for providing secure electronic communications, for example communications relating to asset trading. Symmetrical usage of encryption keys by first and second parties engaged in these communications provide enhanced security. The establishment of trusted registries, e.g., databases, which include electronic asset representations, allow for trades to be enacted without significant human intervention.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to YINGYING ZHOU whose telephone number is (571)272-5308. The examiner can normally be reached 9-5.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, John W Hayes can be reached on 571-272-6708. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/YINGYING ZHOU/Primary Examiner, Art Unit 3697