⬆️ ⬇️

Processing of private data on public computer networks

Computing systems have gone from mainframes to personal computers, and are now making their way back from personal computers to mainframes.

Massively offered services for everyone to perform computing on high-performance computers, implemented in the form of cloud and other systems, from companies providing similar services in public networks.

However, the use of public computer networks carries the risks for their customers:



We will not consider issues of leakage of private data or distortions in the results caused in the process of data transfer, leaving this topic to classical cryptography to ensure a closed communication channel of the required degree of reliability.

Let us consider the question when the external computer itself can be compromised, and it is possible for it to analyze private data during processing, and distort the results of calculations, and try to solve the problem, which we formulate as follows:





Terms and designations



Denote by the formula f (x) = f0? formulation of the problem of solving a mathematical equation.

As a starting point for the reasoning, we choose the problem of solving a system of linear equations.

Denote by the formula (x0 + ex): f (x0 + ex) = f0 acceptance as the solution of the problem of the value (x0 + ex), where





Formulation of the problem



It is required to find the transformation of the problem Ek and the transformation of the found solution Dk, such that



Where



At the same time, the economic / temporal / or other benefit from performing the calculations on an external computer should remain

price (f (x) = f0? -> g (y) = g0?) + price ((y0 + ey) -> (x0 + ex)) << price (f (x) = f0?)

Open model with confidence

Unclosed closed model



Solving a system of linear equations



Consider the problem of solving a system of linear equations ax = b, where



Remarks:





Linear transformations of a system of linear equations





Algorithm of protection of computation of the problem of solving a system of linear equations



  1. Form reversible matrices U and V and vector z from random variables
  2. Calculated on the local computer a '= UaV, b' = U (b-az)
  3. We transfer the problem of solving the equation a'x '= b' to the external computer.
  4. Using the obtained solution of the equation a'x '= b', we calculate on the local calculator x = Vx '+ z
  5. Verification of the truth of the found solution can be performed by explicitly substituting the found solution into the formula of the system of linear equations ax = b


')

Linear programming task



Linear programming is a mathematical discipline dedicated to the theory and methods of solving extremal problems on sets of an n-dimensional vector space defined by systems of linear equations and inequalities.

Linear programming is a special case of convex programming, which in turn is a special case of mathematical programming. At the same time, it is the basis of several methods for solving problems of integer and non-linear programming. One of the generalizations of linear programming is fractional linear programming.

Many properties of linear programming problems can also be interpreted as properties of polyhedra and thus formulate and prove them geometrically.



Consider the linear programming problem ax <= b && cx-> max, where





Algorithm for the protection of computations solving linear programming problems



  1. We form a reversible matrix V and a vector z from random variables
  2. Calculated on the local computer a '= aV, c' = cV, b '= b-az
  3. We transfer the problem of solving the equation a'x '<= b' && c'x '-> max to the external computer.
  4. Using the obtained solution of the linear programming problem a'x '<= b' && c'x '-> max, we calculate on the local computer x = Vx' + z




Remarks:







Abstract computer



According to the theory of algorithms, modern technical devices, when solving data processing problems, can be represented as a finite abstract calculator that completely simulates a calculation on any technical device.

Models of such abstract calculators have been proposed by Turing, Markov and others.

We will use the entry y = x * F to denote the operation of these calculators on the initial data x by the algorithm F where y is the desired data.

Sequential application of several algorithms (program) F1, ..., Fn in data processing will be denoted as y = x * F1 * ... * Fn

The theory of algorithms tells us that any algorithm (or composition of algorithms) has equivalent algorithms, which means that you can create an algorithm to “reduce” the number of program steps or an algorithm to obfuscate a program to complicate the analysis of a program code using a program entry F1 * ... * Fn as raw data for processing.



Public abstract calculator



Formulation of the problem:



Suppose you want to perform calculations y = x * F over the source data x by the algorithm F where y is the desired data.

Remarks:







Algorithm for the protection of computing on a public computer



  1. Take arbitrary algorithms that have the properties x = x * E * U and y = y * V * D for any valid x and y, and such that the algorithms E and D are not too costly to calculate on the local computer.
  2. We compose the algorithm G = U * F * V and using the algorithm of “reducing” the number of calculations or the algorithm “obfukatsii” we transform it to the program G 'using a local calculator.
  3. Calculate on the local computer x '= x * E
  4. Let us perform the task y '= x' * G 'on the external computer, reporting program G' to the external computer x 'as the initial data and receiving the value y' in response.
  5. Calculate on the local computer y = y '* D


Remarks:







Literature







Contacts



Source: https://habr.com/ru/post/270443/



All Articles