| CPC G06F 16/2456 (2019.01) [G06F 16/2282 (2019.01)] | 18 Claims |

|
1. A method of performing a secret-shared join of a first database table and a second database table stored respectively on a first computer and a second computer, the method comprising performing, by the first computer, a multi-party computation in conjunction with the second computer:
storing the first database table having a first column and a second column, the first column used to join the first database table and the second database table, wherein the second database table includes the first column and a third column, wherein the first column is a matching column between the first database table and the second database table;
distributing shares of the first database table to the second computer, wherein the second computer distributes shares of the second database table to the first computer;
modifying first values of the of the matching column of the first database table by appending a first identifier that indicates the first values correspond to the first database table, thereby generating first modified values, wherein a first modified value includes a first value and the first identifier;
modifying second values of the matching column of the second database table by appending a second identifier that indicates the second values correspond to the second database table, thereby generating second modified values, wherein a second modified value includes second value and the second identifier;
generating an unsorted list that includes the first modified values and the second modified values;
sorting the first modified values and the second modified values of the unsorted list to create a sorted list;
determining a bit vector by comparing a current modified value of the sorted list to a previous modified value to determine whether the current modified value is a matching value, wherein a bit value in the bit vector specifies whether a row having the matching value of the first database table and a row having the matching value of the second database table are to be combined in a combined row of a combined database table, wherein the bit vector has a length equal to a sum of a number of rows in the first database table and a number of rows of the second database table; and
generating the combined database table using the bit vector, values of the second column of the first database table, and values of the third column of the second database table.
|