15. A system, comprising: one or more processors; and a computer-readable storage medium coupled to the one or more processors having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations to compare a first structured data document to a second structured data document, the operations comprising: receiving the first and second structured data documents as first and second encrypted documents, respectively, the first and second encrypted documents being transmitted from a remote computing device over a network, structure and content of each of the first and second encrypted documents being encrypted using encrypted integer labels (EBOL), wherein encrypting the first and second structured data documents comprises, for each node of each of the first and second structured data documents: assigning an integer pair comprising a unique identifier and a depth of the node, encrypting the integer pair to provide an encrypted integer pair, and encrypting structure encoding information of the node, comparing nodes of the first encrypted document to nodes of the second encrypted document, a content and a location of each of the nodes remaining confidential during the comparing; generating matched pairs of nodes based on the comparing, and storing the matched pairs in computer memory, each matched pair comprising a node of the first encrypted document and a corresponding node of the second encrypted document; determining one or more edit operations based on the matched pairs; and generating an edit script comprising the one or more edit operations, the edit script being executable by one or more processors to transform the first encrypted document to provide a transformed encrypted document that is isomorphic to the second encrypted document.
19. The system of claim 15 , wherein determining one or more edit operations comprises: determining that a sibling node of a first node of a matched pair and a sibling node of a second node of the matched pair are different; generating a move operation to move the first node such that a sibling node of the first node is the same as the sibling node of the second node; and adding the move operation to the edit script.