Wednesday, February 24, 2021

Problem, Conjecture, Method, Example, Application

Problem

Having an interest in manual cryptography, the author explains a method of producing a hash of infinite length from a 16 digit key using only the square-root function.  This method, if proved reliable, allows a person equipped with nothing more than a calculator to securely encrypt numerical data.

Conjecture

By use of the method described below, a 16-digit key is inflated to form a pseudo-random string of digits that may be expanded iteratively to infinity while preserving the key features of pseudo-randomness.  This conjecture is entirely the work of the author.  The author invites proof of the conjecture.

Method

1)  A 16 digit key is chosen by methods described elsewhere.

2)  The key is sub-divided into four groups of four digits, e.g. 1111222233334444

3)  An iterative function is applied to the key:

       a) The square root of combination 11112222 is found.

       b) The decimal point of the product is disregarded.

       c) The four most significant digits are disregarded.

       d) The remaining digits are carried forward to the next stage (if there are less than four digits then zeros are used to make up the number of digits).  At this point the four-digit product of the iteration as described above may be labelled P12, as it is the product of groups one and two of the four groups into which the key has been split.

        e) Steps a-d are repeated according to this schema : 

                                   1111  2222  3333  4444

        First iteration     P12    P34    P13   P24

        f) The output of the first iteration becomes the input for the second iteration and so forth.

 

Example

9175624899509461
1648442814140275
0523355738513425
1599918578683461
0302369810550211
1303108882141356
5687186882096900








  

The above example may be worked using a calculator equipped with a square-root key.

For example, the final product in the table (6900) is produced by SQRT 10881356 which yields 3298.69, which then becomes 6900 as per the method explained above.

Those familiar with spreadsheets may wish to automate the process using the formulae below.  Row 1 serves the purpose of generating a 'random' key for the purpose of experimentation and may be replaced with a user-generated key:

Cell A1, A2, A3, A4

=RIGHT(CONCATENATE("0",TEXT(INT(RAND()*10000),0)),4)

Cell A2

=RIGHT(LEFT(SUBSTITUTE(SQRT(VALUE(CONCATENATE(A1,B1))),".",""),8),4)

Cell B2

=RIGHT(LEFT(SUBSTITUTE(SQRT(VALUE(CONCATENATE(C1,D1))),".",""),8),4) 

Cell C2

=RIGHT(LEFT(SUBSTITUTE(SQRT(VALUE(CONCATENATE(A1,C1))),".",""),8),4) 

Cell D2

=RIGHT(LEFT(SUBSTITUTE(SQRT(VALUE(CONCATENATE(B1,D1))),".",""),8),4) 

From this point subsequent rows can be filled by dragging the contents of row 2 to any desired depth.

The author has extrapolated this structure to the point of producing a pseudo-random string of 3,000,000 digits without discernible patterns becoming evident.

Application

Once the would-be cryptographer has expressed the data to be encrypted as numerals, encryption is achieved by adding the data, digit by digit, to the pseudo-random string, preserving only the least significant digit of the product in each case.  The recipient of the cryptograph need only reverse the procedure to achieve 'plain text'.  Being in possession of the message key, a calculator and the cryptograph, all that is required to decrypt the data is familiarity with the method.

Please see the other posts in this blog for more detail regarding the above steps.

 

  

No comments:

Post a Comment