A method for anonymously routing user data from a client device to a server, the method comprising: identifying, a structure to send to the server, wherein the structure comprises the user data; dividing the structure into two or more respective substructures using a clustering model that indicates potential divisions of user data in the structure based on different areas of knowledge about a user of the client device, wherein each of the respective substructures comprises information on a given area of knowledge about the user; and for each respective substructure: assigning a degree of confidentiality to the respective substructure; identifying a plurality of nodes between the client device and the server, wherein different nodes have different degrees of security; and sending the respective substructure to the server via a respective node of a plurality of nodes based on a degree of security of the respective node being not less than the assigned degree of confidentiality of the substructure, wherein the respective node is configured to apply a respective transformation to the respective substructure and transmit the transformed respective substructure to the server, wherein the server is configured to combine received transformed substructures into a transformed structure. identifying, a structure to send to the server, wherein the structure comprises the user data; dividing the structure into two or more respective substructures using a clustering model that indicates potential divisions of user data in the structure based on different areas of knowledge about a user of the client device, wherein each of the respective substructures comprises information on a given area of knowledge about the user; and for each respective substructure: assigning a degree of confidentiality to the respective substructure; identifying a plurality of nodes between the client device and the server, wherein different nodes have different degrees of security; and sending the respective substructure to the server via a respective node of a plurality of nodes based on a degree of security of the respective node being not less than the assigned degree of confidentiality of the substructure, wherein the respective node is configured to apply a respective transformation to the respective substructure and transmit the transformed respective substructure to the server, wherein the server is configured to combine received transformed substructures into a transformed structure. assigning a degree of confidentiality to the respective substructure; identifying a plurality of nodes between the client device and the server, wherein different nodes have different degrees of security; and sending the respective substructure to the server via a respective node of a plurality of nodes based on a degree of security of the respective node being not less than the assigned degree of confidentiality of the substructure, wherein the respective node is configured to apply a respective transformation to the respective substructure and transmit the transformed respective substructure to the server, wherein the server is configured to combine received transformed substructures into a transformed structure.