Method for encrypting data using matrix operations - Patents.com
The method uses matrix operations and predefined sequences to enhance cryptographic security by increasing permutations and combinations, addressing vulnerabilities in current systems by providing equivalent strength to RSA-1024 without lengthy keywords and simplifying decryption.
Patent Information
- Application Number
- JP2023546369
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2020-10-10
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2040-10-10
AI Technical Summary
Current cryptographic systems rely on the length of encryption keywords for strength, which is vulnerable to brute force attacks due to advancements in computing power, and managing large keywords is cumbersome, while existing methods for improving security through multiple encryption rounds complicate decoding.
A method using matrix operations with predefined sequences and substitution alphabets to encrypt data, where the strength is derived from the large number of permutations and combinations rather than keyword length, reducing the need for lengthy keywords and simplifying the encryption process.
This approach enhances security by providing a key space equivalent to RSA-1024 without the complexity of long keywords, making it resistant to brute force attacks and simplifying the decryption process.
Smart Images

Figure 0007610017000001 
Figure 0007610017000002
Abstract
Description
[Technical field]
[0001] The present invention relates to electronic communication using an encryption method and a device using it, where a given data string, likewise an intelligible original text, is transformed into an intelligible data string by transposing data or groups of data or by replacing them with other data according to a predefined system based on rearranging series, sequences or consecutive numbers. In particular, it deals with block encryption algorithms using symmetric keywords, whose strength against attempts to decrypt such keywords does not depend on the length of the keyword.
[0002] Industrial Applications This may be applied to protect digital messages and different electronic commerce transactions exchanged between human correspondents or between digital communication instruments, computers, or other instruments or devices connected to the Internet. [Background technology]
[0003] Every cryptosystem has a concealment mechanism based on two operations, applied independently or in combination: the operation of "transposing" (or "rearranging") the characters of the "base message" (the information we want to send to the recipient correspondent, which today can have any digital or analog message format) and the operation of "substituting" (replacing) the characters in the "base message". The effect we try to achieve is the encryption (concealment) of the "base message" from everyone who does not know what transposition and substitution operations were performed to transform the "base message" into the "encrypted message" and from everyone who does not know what order was used in applying such operations.
[0004] If we fragment the "base message" into blocks of characters to be processed by the encryption method, we can call this "block encryption". Due to the computational power and speed of computers, an alternative method is to encrypt every data chunk or character in the base message, which is called "stream encryption". If the key needed to decrypt a message is the same as the one used to encrypt it, we have a "symmetric" cryptosystem. If different keywords are needed to encrypt and decrypt, we have an "asymmetric" cryptosystem.
[0005] Today, there are many of these two types of systems, and they are typically used to handle business transactions, e-mail messages, and various digital Ruko They are applied to the transmission of files of content, as well as to the transmission over the Internet of many information packets of an "important" or "ordinary" nature. Among these systems we can find, for example:
[0006] RSA: Uses the symmetric algorithm RC5 (designed in 1994), which works with 32, 64, or 128-bit blocks (64 bits is the recommended setting), with a maximum key length of 1024 bits (128 bits is the recommended setting), and a "key space" of 2^128 (=3.40 x 10^38). (or the number of possible keywords) This will process 18 to 20 encryption rounds (12 rounds is the recommended setting).
[0007] From 1991 to 2007, RSA Security, as a patent assignee, offered rewards to anyone who could "crack" keywords up to 2048 bits, and thus by 2003 the recommendation was to use 1024-bit keywords (corresponding to 128 characters). ,key The goal was to increase the size of the space to (2^1024) = 1.79 × 10^308. Among other recent results, a successful attack on a 795-bit keyword was published in December 2019.
[0008] AES: It uses only 128-bit blocks and has 128-bit encryption (and 10 encryption rounds), 192-bit encryption (and 12 encryption rounds), and 256-bit encryption (and 14 encryption rounds). ,key The spaces are 2^128 (=3.40×10^38) and 2^192 (=6.27×10^57) respectively. 、y 2 ^256(=1.15×10^77).
[0009] TWOFISH: This algorithm uses 128-bit blocks, 12 encryption rounds, and keyword sizes of 128, 192, and 256 bits. (key The space operates at a maximum of (2^256)=1.15×10^77).
[0010] IDEA: 52 x 16 bit keyword extraction through 64 bit blocks and successive rotations and fragmentations. Do The 128-bit keyword used to generate (corresponding to a key space of 2^128) Works with.
[0011] DES: A standard created in 1975 that works with 64-bit blocks, 16 encryption rounds, and 56-bit keywords, with (2^56=7.2×10^16) combinations. Key This was in 1999 when 3 x 56 bit keywords ((2^56)^3 = 3.74 x 10^50 Key It was replaced by 3DES, which works on a 256-bit cipher suite (empty).
[0012] In 2012, free online services became readily available that could crack a 56-bit DES keyword within 26 hours, and the size of the keyword continues to grow today [https: / / crack.sh].
[0013] Area of improvement Most of the currently available systems base their "strength" on the length of the encryption keyword. "Strength" then is the ability to withstand "brute force" attacks, i.e., the ability to resist attempts to "guess" the keyword by testing all possible keyword choices based on the length of the keyword and based on the different types of characters it contains. Thus, the more characters the keyword contains, the stronger the "strength" of the system.
[0014] For example, in AES-128, a 128-bit keyword (corresponding to 16 characters) generates a key space of (2^128), in AES-192, a 192-bit keyword (corresponding to 24 characters) generates a key space of (2^192), and in AES-256, a 256-bit keyword (corresponding to 32 characters) generates a key space of (2^256). Given the progress of computer design, this is a weakness of cryptosystems, because the packing density is 10^9 transistors per chip (as of 2004) With the computing power available (as of 2018) approaching (5x10^10) transistors per chip, 128-bit and even 192-bit keywords are considered "unsafe" even for "non-sensitive" SW applications.
[0015] On the other hand, the use of "long" keywords introduces another weakness in existing systems, since the creation of "large length" keywords makes it difficult to actually guarantee the diversity (randomness) of the keyword generation as well as to ensure its handling and dissemination to the parties involved, forcing the establishment of some keyword management mechanism that involves generating "true" random keywords, which makes it harder for users to "remember" the generated keywords (a 1024-bit key corresponds to 128 alphanumeric or other type characters).
[0016] Furthermore, some of the existing systems have "encryption" mechanisms based on low-complexity transposition and substitution operations, which make it necessary to counteract this effect by applying several "encryption rounds", i.e. by repeating the steps required for encryption (10 to 16 times), which can be even more inconvenient as it affects the decryption process. Thus, the technical problem solved by the present invention corresponds to how to provide a more secure method that does not implicitly use hard-to-remember keywords or an excessive amount of encryption rounds.
[0017] Novelty of the invention With reference to aspects of other issued patents similar to the present invention, the use of number sequences to perform encryption / decryption processes is mentioned in U.S. Patent No. 7,995,748-B2, entitled "Method and Apparatus for providing encryption / decryption using two sequences of numbers," published on August 9, 2011. However, such a system limits the types of number sequences to a subset of the number sequences that may be used in the present invention.
[0018] In fact, in the said patent, the proposed method is based on a matrix of size (8×8) and solves the “Knight Circulation Problem” (the knight in chess, Following a continuous path, This paper deals with the solution of the problem of visiting every square on a chessboard (8x8) once, without visiting any square twice, and the solution is estimated to be (1.06×10^14) [see: "Some enumerations of Classes of Knight's Tours" in "Knight's Tours Notes" on GP Jelliss's website [_www.mayhematics.com / t / 8a.html]]. However, the number of sequences that can be generated for an (8x8) matrix using the method presented here is 64! (64 factorial = 1.26×10^89), which is significantly larger than the initial number.
[0019] The use of a solution to the "Knight problem" as a sequence is described in U.S. Patent Application No. 2016 / 379527, published December 29, 2016. Not granted, but by the inventor It is also mentioned in the encryption method described in the paper (now abandoned), which proposes another different way of using the solution in the encryption process.
[0020] In both cases, there is not yet a repertoire available for a few more than (10^14) solutions, 1882 In 2000, French abbot Philippe Jolivald published over 413,000 solutions to the "Knight's Problem", which would greatly facilitate "brute force" attacks (using automated algorithms).
[0021] The present invention does not use a solution to the "Knight Cycle Problem" in any of the steps of the encryption method. Similarly, the use given to sequences, series, and successive numbers in the present invention bears no relationship to the use given in the two previously referenced patents. Furthermore, while the present invention contemplates the use of permutations, the sequence of permutations is only a particular case of many that may be used. [Prior art documents] [Patent documents]
[0022] [Patent Document 1] US Patent No. 7995748-B2 [Patent Document 2] U.S. Patent Application No. 2016 / 379527 [Non-patent literature]
[0023] [Non-Patent Document 1] "Some enumerations of Classes of Knight's Tours" in "Knight's Tours Notes" on the GP Jelliss website [_www.mayhematics.com / t / 8a.html] Summary of the Invention [Problem to be solved by the invention]
[0024] According to the invention, this solves the necessary randomness for the generated keys, but in the method of the invention the keywords are not random, since they are generated when encoding the actions to be performed at each stage where they should be applied.
[0025] According to the invention, this also solves the weakness of the current systems, which is related to obtaining the strength of the method through the length of the keyword (1024 bits or more), since that strength is achieved through the different operations performed in the encryption process, combined with the large number of options available for each of those operations. In fact, the keyword to be used (in the preferred embodiment) is no more than 320 bits (40 alphanumeric, or other type of characters), and nevertheless the strength of the method is not affected.
[0026] According to the invention, the latter also solves the weakness caused by the need to manage a large size of keywords, since the keywords should be "designed" and "coded" according to the desired effect to be achieved through the operation involved, or should be selected from a repertoire of previously generated keywords. Thus, even if the keys are selected (randomly or sequentially) from a digital repository, they are not generated randomly. 。
[0027] According to the invention, the possibility of improving the strength of the method is also available by carrying out different modifications in some of the parameters that increase (using automatic algorithms) the number of options to be explored in a "brute force" attack, resulting in a similarity to that of RSA-1024 (2^1024=1.79x10^308). Among them, the following points are particularly noteworthy:
[0028] * By increasing the size of the "sequence" used: for example, when using a set of 64 numbers, the number of different ways to arrange them is 64! (64 factorial = 1.26 x 10^89), while if this set is increased to 128, the number of different permutations increases to 128! (128 factorial = 3.85 x 10^215).
[0029] * By increasing the number of permutations used: for example, if we use two sets of numbers with 64 numbers each, the number of different permutations increases to (64! x 64!), i.e. 64 factorial x 64 factorial, i.e. 1.61 x 10^178, but if we use two sets of 128 numbers, this increases to 128! x 128! (128 factorial x 128 factorial, i.e. 1.48 x 10^431).
[0030] * By increasing the number of "substitution alphabets" used: For example, with a 26-letter alphabet, the number of distinct alphabets we can generate is 26! (26 factorial = 4.03 x 10^26). But if we use two 26-letter alphabets, that number increases to (26!)^2 ([26 factorial] squared, or 1.62 x 10^53).
[0031] * By increasing the size of the "substitution alphabet" used: For example, if we double the number of letters (without repeating letters, for example by including upper and lower case letters, or by adding special characters and accented vowels), the number of distinct alphabets increases to 52! (52 factorial = 8.06 x 10^67).
[0032] * Thus, if we simply combine the effects of using 128 permutations of numbers and four 26-letter "substitution alphabets", the number of different choices is (128! x (26!)^4), or (1.02 x 10^322), making it stronger than the one in RSA-1024.
[0033] Finally, according to the present invention and what has been described in the previous paragraph, we are also able to reduce the inconvenience of having to apply several "encryption rounds" to improve the strength of the method (although applying several "encryption rounds" is also one of the ways to improve the strength of the method), which makes it easier to apply encryption and decryption, but this does not mean that the number of options that need to be explored in a "brute force" attack (using an automatic algorithm) is reduced. [Means for solving the problem]
[0034] The method presented here involves carrying out a preliminary step, by applying three processes in which data transposition and substitution are performed, to digitally With The encrypted message allows a string of data (the "base message") to be encrypted and made incomprehensible to a third party (the "encrypted message") who ignores the method applied to perform the encryption. For the purposes of illustration, we will assume that the string of data contains "alphanumeric characters", but its composition can be much more extensive and varied, as described in the appended claims.
[0035] Preliminary: definitions and previous steps Define the "base message" to be encrypted, Define four operations for reordering the "base messages", Choose the "block size" to use when encrypting (including 64, 128, or 256 characters); Select a "Matrix Size" that will accommodate the "Base Message" according to the defined "Block Size", i.e. for 64 character blocks choose (16x4), for 128 character blocks choose (16x8) and for 256 character blocks choose (16x16); Define a "number set" to be used in the encryption process whose size is equal to the "block size". The "number set" contains consecutive numbers from "1" to the size of the selected block (64, 128, or 256), Define four operations for sorting "sets of numbers", Define the "substitution alphabet" (a 26-letter alphabet), Define keywords CK1, Ck2, and CK3 to be used by an originating correspondent to generate an "encrypted message" and by a receiving correspondent to decrypt said "encrypted message", Transcribe the "permutation alphabet" into a matrix [A0] of size (26 × 1), where "26" is the number of letters in the alphabet. Fragmenting the Base Message according to a selected Block Size; Transcribe the "base message" into multiple matrices [A1]. The number of matrices used depends on the quotient between the number of characters in the "base message" and the "block size". Transfer the “number set” to a matrix [B1] of the same size as the matrix [A1]. The characters in the "base message" may be "alphabet" (in any language), numbers, alphanumeric characters, symbols, ideograms, phonemes, images or other and may be encoded in ASCII, UTF-8, Unicode, or any other form of digital or analog encoding. If the number of characters in the "base message" (or the number of characters in the last fragment of the message) is less than the size of the matrix [A1] used, the necessary amount of "blanks" may be added as "padding characters" to complete the contents of the matrix. Instead of using a "space" for the "word spacing" and as a "padding character" in the "base message", another character from the "substitution alphabet" or some other one used to complete the definition of the matrix [A1] can also be used.
[0036] Process 1: Rearrange the "base message" [A1] to generate an "intermediate message" [A2] Operation 1: Transpose the rows in the [A1] matrix based on what indicates the keyword CK1; Operation 2: Transpose the columns in the [A1] matrix based on what indicates the keyword CK1; [A1] Define the concentric parallelograms in the matrix, Action 3: Rotate the characters within each concentric parallelogram based on what the keyword CK1 indicates; Step 4: Shift the [A1] matrix symmetrically based on what indicates the keyword CK1. During the application of these four operations just described, a matrix [A2] is generated that contains an “intermediate message”.
[0037] Process 2: Rearrange the "set of numbers" [B1] to generate a "new permutation" [B2] Operation 1: Transpose the rows in the [B1] matrix based on what indicates the keyword CK2; Operation 2: Transpose the columns in the [B1] matrix based on what indicates the keyword CK2; [B1] Define a concentric parallelogram in a matrix, Action 3: Rotate the letters within each concentric parallelogram based on what the keyword CK2 indicates; Step 4: Shift the [B1] matrix symmetrically based on what indicates the keyword CK2. While applying these four operations just described, a matrix [B2] is generated that contains the “new permutation”.
[0038] Process 3: Encrypt the "intermediate message" [A2] to generate the "encrypted message" [C1] Perform character substitutions on the "Intermediate Message" based on instructions in Keyword CK3 regarding how to use the "Substitution Alphabet" together with the "New Permutations" to produce an "Encrypted Message" [C1]; - Send the "encrypted message" to the receiving communicator using an unsecured channel "of To transmit, to the receiving communicator using a pre-agreed protection channel, The original "number set", Transmit the keywords CK1, CK2, and CK3, as well as the "substitution alphabet."
[0039] The present invention can be more fully understood from the following description when read in conjunction with the accompanying drawings which illustrate an example implementation on a (5×4) matrix and some of its corresponding optional alternatives, which are provided for illustrative purposes only and are not intended to limit its implementation and use in any manner or with respect to those defined in the appended claims. [Brief description of the drawings]
[0040] [Figure 1]FIG. 1 shows an example of an application, in which matrix [A1] (101 in the figure) shows a general example of a "base message", and matrices [A1a], [A1b], [A1c] and [A2] (102 to 106 in the figure) show an example of how elementary operations described by keyword CK1 rearrange an initial "base message" and transform it into a matrix [A2] (106 in the figure) containing "intermediate messages", matrix [B1] (201 in the figure) shows a general example of a "number set", and matrices [B1a], [B1b], [B1c] and [B2] (202 to 206 in the figure) show an example of how elementary operations described by keyword CK2 rearrange an initial "number set" and transform it into a matrix [B2] (206 in the figure) containing a "new permutation", Matrix [C1] (303) shows an example of how the "intermediate message" on matrix [A2] (302) is transformed into an "encrypted message" by applying the "permutation function" described by keyword CK3, using the "new permutation" [B2] (301); the same already mentioned matrix of Figure 1 is a diagram which, when viewed backwards, illustrates the decryption operation on the message from matrix [C1] (303) to obtain the "base message" shown in matrix [A1] (101). [Diagram 2] A diagram showing the components for each matrix in relation to the "Number Set", the "New Permutation", and the "Permutation Alphabet". The six matrices in the diagram show the component letters for each matrix (402, 403, 405, 407, 409, and 411 in the diagram), the sequential numbers for the alphabet (401), the letter components for those matrices (404, 406, 408, 410, 412 in the diagram), and the "New Permutation" for each of the "New Permutations" for the example described in the previous diagram. The figure shows in detail the coordinates for the positions (409 and 410 in the figure), matrices [A1] and [A2] show the original "base message" (403 and 404 in the figure) and the "intermediate message" (405 and 406 in the figure), matrices [B1] and [B2] show the "initial number set" (407 and 408 in the figure) and the "new permutation" (409 and 410 in the figure), and finally, matrix [C1] shows the "encrypted message" (411 in the figure). DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0041] Detailed Description of the Drawings Example: Figure 1 - Application of the method described in the present invention: Encryption Process: In this figure, a complete example is shown showing all the steps required to achieve encryption. The above example is created using a (5x4) matrix to encrypt a 20 character message to be delivered to the receiving correspondent after performing the steps (process) described as (1) -> (2) -> (3).
[0042] 1) Generate an "intermediate message": (101) Original (secret) "base message": Knowing that in order to encrypt the (5x4) “Base Message” we have to generate an “Intermediate Message” that contains the keyword “CK1=4231ACBED-04V”, in Figure 1 we can see in detail all the necessary process steps for generating said “Intermediate Message”.
[0043] (102) Transpose the rows in matrix [A1]: Using the first four characters of keyword CK1 ("4231"), we vertically transpose the rows in matrix [A1] by changing their relative position (in this case) from "4321" to "4231" according to the instructions in the keyword, generating matrix [A1a] shown in Figure 1. Thus, row "4" in [A1] keeps the fourth position (top in [A1a]), and row "3" in [A1] keeps the third position (top in [A1a]). 3 From the row of [A1a] 2 (counting from the bottom) and row "2" in [A1] becomes the first row in [A1]. 2 From the row of [A1a] 3 row, and row "1" in [A1] maintains its position (the bottom edge in [A1a]).
[0044] (103) Transpose the columns in matrix [A1a]: Using the next five characters in keyword CK1 ("ACBED"), we horizontally transpose the columns in matrix [A1a] by changing their relative positions from "ABCDE" to "ACBED" according to the instructions in the keyword, generating matrix [A1b] shown in Figure 1.
[0045] Thus, column "A" in matrix [A1a] maintains its position as the first column (leftmost column) in matrix [A1b], and column "B" matrix Move from the second column in [A1a] to the third column in [A1b], and column "C" matrix From the third column in [A1a] matrix Go to the second column in [A1b] and column "D" is matrix From the 4th column in [A1a] matrix Go to the fifth column (the rightmost column) in [A1b], and column "E" is matrix From the 5th column in [A1a] matrix Go to the fourth column in [A1b] (see Figure 1).
[0046] (104)Definition of a concentric parallelogram in [A1b] (without shift): To facilitate the transposition of the concentric parallelograms in matrix [A1c] (in the next step), the distribution of the "base message" positions is shown in matrix [A1b], with the rows and columns already transposed, but before performing the character rotation defined in keyword CK1.
[0047] (105) Transpose the concentric parallelogram in the matrix [A1c]: Using the next three characters in keyword CK1 ("-04"), we transpose the contents of cells in the concentric rectangle shown in matrix [A1c] "No Shift" (104 in Figure 1) by moving such contents counterclockwise by "4" positions (counterclockwise rotation is indicated by the "minus" sign "-").
[0048] Thus, the letters "tss" in the top row of the inner concentric rectangle in matrix 104 (for example) are moved to coordinates (d,3)-(d,2)-(c,2) in the same rectangular matrix[A1c] "shifted" (105 in Figure 1), while the letters "hlo" in matrix 104 (Figure 1) (for example) are moved from coordinates (a,4)-(b,4)-(c,4) to coordinates (b,1)-(a,1)-(a,2) in the outer concentric rectangle in matrix[A1c] "shifted" (105 in Figure 1).
[0049] (106) Transpose the matrix [A1c] using the symmetric shift process to obtain the matrix [A2]: Using the last letter ("V") in keyword CK1, the matrix generated in process (105) is vertically symmetrically shifted to generate matrix [A2], which is the matrix of the "intermediate message" (106 in Figure 1), so that since we are performing a "vertical symmetric shift", a new transpose of the matrix on the rows is generated, row 4 ( of 105 The top of [A1c]) is row 1 ( of 106 [A2]) and of 105 [A1c] row 3 is of 106 It moves to row 2 of [A2], and so on until all rows in the matrix [A1c] have been transposed to form [A2] (see Figure 1).
[0050] Keyword CK1 structure and length: So far we can say that the structure and length of keyword CK1 is defined as follows: CK1 = "(N) Row Sort" + "(M) Column Sort" + "Rotation direction" ("+ / -") + "Rotation displacement (G)" + "Type of symmetrical movement" ("H" = horizontal, "V" = vertical, "R" = right diagonal, "L" = left diagonal) = "N" letter + "M" letter + 1 letter +2 numbers + 1 letter. This example So ,keyword CK1 Length = 4 + 5 + 1 + 2 + 1 = 13 characters = 104 bits.
[0051] 2) Generate a "new sequence" (matrix [B2]): (201) Define "number set" [B1]: Assuming that a "number set" has been defined or selected from the repository (matrix [B1]), according to the keyword "CK2=3142BDAEC+03H", in Figure 1 we can see in detail all the steps of the process of generating a "new permutation", including the following stages:
[0052] (202) Row transposition in matrix [B1a]: Using the first four characters in keyword CK2 ("3142"), we vertically transpose the rows in matrix [B1] by changing their relative positions from "4321" to "3142" according to the instructions in the keyword, to generate matrix [B1a] shown in Figure 1.
[0053] So line "4" is Counting from the bottom No. 4 Position of (in matrix [B1] Best end) to the th 2 Move to row "3" in [B1]. 3 From row of matrix [B1a] 4 Move to row "2" and row "3" will be the first row in [B1]. 2 From row of matrix [B1a] 1 Move to row "1" and row "1" is the first row in [B1]. 1 row to the third row in matrix [B1a] (see Figure 1).
[0054] (203) Transpose the columns in matrix [B1b]: Using the next five characters in keyword CK2 ("BDAEC"), the columns in matrix [B1a] are transposed horizontally, changing their relative position from "ABCDE" to "BDAEC" according to the instructions in the keyword, to produce matrix [B1b].
[0055] Thus, column "A" moves from the first position (leftmost column) in matrix [B1a] to the third column in matrix [B1b], column "B" moves from the second position in [B1a] to the first column in [B1b], column "C" moves from the third column in [B1a] to the fifth column in matrix [B1b], column "D" moves from the fourth column in [B1a] to the second column in matrix [B1b], and column "E" moves from the fifth column in [B1a] to the fourth column in matrix [B1b] (see Figure 1).
[0056] (204)Define a concentric parallelogram in [B1c] (no shift): To facilitate the transposition of the concentric parallelograms in matrix [B1c] (in the next step), the distribution of the "number set" positions is shown in matrix [B1b] "no shift", where the rows and columns have already been transposed, but before any rotation as defined by keyword CK2.
[0057] (205) Transpose the concentric parallelogram in the matrix [B1c] (shifted): With the next three characters in keyword CK2 ("+03"), we transpose the contents of the cells in the concentric rectangles shown in matrix [B1b] by moving said contents clockwise by "3" positions (the rotation is indicated by the "plus" sign "+").
[0058] Thus, for example, the numbers "14-1-19" in the top row of the inner concentric rectangle of matrix [B1c] "no shift" are moved to the bottom row of the same rectangle as "19-1-14", and the number "6" in the top row of the outer rectangle in matrix [B1c] "no shift" (along with the rest of the numbers in that concentric rectangle) is shifted three positions to the right (see matrix [B1c] in Figure 1).
[0059] (206) Transpose the matrix [B1c] using the symmetric translation process to obtain the matrix [B2]: Using the last letter ("H") in keyword CK2, matrix [B1c] is generated in the previous step, generating matrix [B2], which is the matrix of the "new permutation" (206 in Figure 1), whereby a new transposition of the matrix onto its columns is generated, since we are performing a "horizontal symmetric move", so that column 1 (the leftmost column) is moved to position 5, column 2 is moved to position 4, and so on until all columns in the matrix are transposed (see Figure 1).
[0060] Structure and length of keyword CK2: So far, we can say that the structure and length of keywords CK1 and CK2 are defined by the same components: CK2 = "(N) Row Sort" + "(M) Column Sort" + "Rotation direction" ("+ / -") + "Rotational displacement (G)" + "Type of symmetrical movement" ("H" = horizontal, "V" = vertical, "R" = right diagonal, "L" = left diagonal) = "N" letter + "M" letter + 1 letter + 2 numbers + 1 letter This example So ,keyword CK2 The length of = 4 + 5 + 1 + 2 + 1 = 13 characters = 104 bits.
[0061] 3) Generate the encrypted message: Using the "new permutation" (301: matrix [B2]) and the "intermediate message" (302: matrix [A2]), generate the "encrypted message" (303: matrix [C1]) with the keyword CK3 = "01A":
[0062] (301) "New Permutation": Included for visual reference only (same as process 206).
[0063] (302) "Intermediate Message": Included for visual reference only (same as process 106).
[0064] (303) "Encrypted Message": Using the three characters in keyword CK3 ("01A"), we encrypt and replace the text in the "intermediate message", Defined in the alphabet It does this by advancing the characters the number of positions indicated by "New Permutation", thereby generating the matrix [C1] by reading the permutation starting at position ("01") and cycling through the sequence in ascending order (the cycling direction is indicated by the "A" in "Ascending"), as defined in the keyword. In Figure 1 we can see in detail all the steps of the process while encrypting the message.
[0065] So, starting (for example) at position "01" in the "New Permutation" (which corresponds to coordinate (c,2) in matrix [B2]), we indicate that the letter "m" at coordinate (c,2) in matrix [A2] should be replaced by the letter one position earlier ("01A") at coordinate (c,2) in matrix [C1]. The next letter after the letter "m" in the permutation alphabet is the letter "n". Thus, at coordinate (c,2) in matrix [C1], the letter "m" from the "Intermediate Message" is replaced by the letter "n" in the encrypted message.
[0066] At position "02" in the "new permutation" (coordinate (a,4) in matrix [B2]), the letter "l" (coordinate (a,4) in matrix [A2]) is replaced by the letter "n" (which is two positions beyond the letter "l" in the permutation alphabet) and inserted at coordinate (a,4) in matrix [C1].
[0067] For position 03 in the new permutation (coordinate (e,4) in matrix [B2]), the character in the intermediate message is *, which is used as a word spacer. , placed Since it is not converted, the same character "*" is inserted at the coordinate (e,4) in the matrix [C1].
[0068] At position "04" (coordinate (d,4) in [B2]), the letter "c" in matrix [A2] is replaced by the letter "g" (which is four positions beyond the letter "c" in the replacement alphabet) at coordinate (d,4) in matrix [C1], and so on until all letters in the "intermediate message" have been replaced, completing the encryption and producing matrix [C1].
[0069] As might be expected, when the position number in the "new permutation" exceeds the number of letters in the substitution alphabet used, we must think of it as a cyclic string, moving to the first letter in an ascending cycle, and to the last letter in a descending cycle.
[0070] Structure and length of keyword CK3: As can be seen, the structure and length of keyword CK3 are defined as follows: CK3 = "Start position to start replacement" + "Travel direction (A=ascending / D=descending)" This example So ,keyword CK3 The length of = 2 digits + 1 character = 3 characters = 24 bits.
[0071] Figure 2: The components for each matrix in relation to the initial "number set", the "new permutation", and the "permutation alphabet".
[0072] Figure 2 shows the details of the contents of each of the six matrices in the example created in Figure 1, for all positions in the "Permutation Alphabet" [A0], for the "Base Message" [A1], for the "Intermediate Message" [A2], for the "Number Set" [B1], for the "New Permutation" [B2], and for the "Encrypted Message" [C1].
[0073] matrix[A0]: Permutation alphabet. (401): Positions "1" through "26" for characters in the "substitution alphabet", (402): The text for the alphabet that has the simplest distribution for possible letters that can be used for substitution while encrypting the "intermediate message".
[0074] Matrix [A1]: "Base message" (403): The original text for the secret "base message" in the constructed example, (404): Coordinates for each character of the “base message” in matrix [A1].
[0075] Matrix [A2]: "Intermediate message" (405): The transposed text for the "intermediate message" in the example, (406): Coordinates for each character of the “intermediate message” in matrix [A2].
[0076] Matrix [B1]: "Initial number set" (407): Positions "1" to "20" for the "number set" used in the example, (408): Coordinates of each position of the “set of numbers” in the matrix [B1].
[0077] Matrix[B2]: "New permutation" (409): Positions "1" to "20" for the "new permutation" generated in the example, (410): Coordinates for each position in the “new permutation” in matrix [B2].
[0078] Matrix [C1]: "Encrypted message" (411): The text for the "encrypted message" generated in the example. (412): Coordinates for each character of the “encrypted message” in matrix [C1].
[0079] Decryption Process: The details described to explain the encryption example in Figure 1 can also be used to explain all the necessary steps for the decryption process. Assuming that the originating correspondent has sent an encrypted message to the recipient, received it (through an unsecured channel) along with a public set of numbers, and also received the corresponding keyword (through a pre-agreed secured channel), the following steps are described for the decryption process as follows (note that the step numbers of the encryption process have been preserved to illustrate the order in which they are applied, and to make more clear the fact that to "decrypt" we must reverse the effect of "encrypt"): (1a → 1d) → (3) → (2d → 2a)
[0080] 1 Generate a "new permutation" (matrix [B2]): Using the original "number set" (matrix [B1]) and the keyword "CK2=3142BDAEC+03H" received by the recipient from the originating correspondent, the generation of a "new permutation" can be performed by a process that includes the following operations: 1a) Transpose the rows in matrix [B1] to generate matrix [B1a] shown in Figure 1; 1b) Transpose the columns in matrix [B1a] to produce matrix [B1b] as shown in Figure 1; 1c) Transpose the concentric parallelogram in matrix [B1b] "without shift" to generate matrix [B1c] shown in Figure 1; 1d) Perform a "horizontal symmetric shift" of matrix [B1c] to generate matrix [B2] shown in Figure 1;
[0081] 3) Recover the "intermediate message" from the "encrypted message." Taking the encrypted message [C1] received from the outgoing correspondent and the keyword CK3 = "01A", in Figure 1 we can see in detail the process of recovering the "intermediate message" by undoing the substitution operation performed by using the keyword CK3 to generate the matrix [A2]:
[0082] Similar to the process of encrypting a message, what we have done is to permute each character from the "intermediate message" by using the position of the "new permutation" to "advance" the character the number of characters dictated by the position of the permutation to which the substitution is being made, and to recover the "intermediate message", we simply need to "move back" the characters of the encrypted message the number of positions in the permutation alphabet dictated by the position of the permutation to which the substitution is being applied.
[0083] Thus, for position "01" in the encrypted message (the letter "n" at coordinate (c,2) in matrix [C1]), we must go "back" one position from the letter "n", i.e., at coordinate (c,2) in matrix [A2], we must now find "m" (the letter before "n" in the permutation alphabet).
[0084] For position "02" in the encrypted message (the letter "n" at coordinate (a,4) in matrix [C1]), we must "move back" the letter "n" two positions, i.e., at coordinate (a,4) in matrix [A2], there must now be the letter "l" (the letter two positions before "n" in the permutation alphabet).
[0085] For position “03” in the encrypted message (coordinate (e,4) in matrix [C1]), there is no change since the character “*” is used as a word spacer, and the same character must appear at coordinate (e,4) in matrix [A2].
[0086] The process continues in the same manner until all positions in the matrix [C1] have been visited and replaced.
[0087] Finally, we should note that while "recovering" the "intermediate message" from the "encrypted message", accented vowels will not appear in the "intermediate message" unless they are included in the substitution alphabet.
[0088] 2) Reconstruct the "base message" from the "intermediate message": Taking the “intermediate message” received from the originating correspondent (matrix [A2] generated by the previous process) and the keyword “CK1 = 4231ACBED-04V”, in Figure 1 we can see in detail the process of restoring the original “base message” by inverting the transposition operation performed using the keyword CK1 to generate the matrix [A1]: this requires reversing the effect of the applied operation, i.e., in this case applying four different methods in reverse to transpose the original (and “secret”) base message, all of which are described in the keyword CK1.
[0089] 2d) Undo the applied symmetric transformation to obtain the matrix [A1c]: Since the keyword indicates a "vertical symmetric move" ("V" = position #13 in keyword CK1), this corresponds to a transposition onto the rows in matrix [A2], and matrix [A1c] is obtained by moving the fourth row (top row) in matrix [A2] to the position of the first row (bottom row), and so on, until four rows have been moved.
[0090] 2c) Undo the rotation of the concentric rectangle to get the matrix [A1b]: As the applied rotation was "-04" (transposing the letters by 4 positions in the levogirus direction), to undo the effect we need to apply a rotation in the opposite direction "+04", i.e. transpose the concentric rectangular letters in matrix [A2] by 4 positions in the dextrogirus direction to obtain matrix [A1b].
[0091] Thus (for example), the letter "omt" (top row of the inner concentric rectangle) at coordinates (b,3)-(c,3)-(d,3) in matrix [A1c] is moved to coordinates (c,2)-(b,2)-(b,3) in matrix [A1b] after undoing the rotation. Similarly (for example), the letter "aaoy-?" in the first row of the outer concentric rectangle changes its coordinates from (a,4)-(b,4)-(c,4)-(d,4)-(e,4) in matrix [A1c] to (e,4)-(e,3)-(e,2)-(e,1)-(d,1) in matrix [A1b] after undoing the rotation.
[0092] 2b) Undo the column transposition to get matrix [A1a]: Since column transposition means transforming the column "ABCDE" in [A1a] to the column "ACBED" in [A1b], to recover the matrix [A1a], we only need to reverse the process to matrix [A1b]. Thus, the first column in matrix [A1b] (the leftmost column) does not move since it has not been transposed, and remains unchanged in matrix [A1a]. The second column in matrix [A1b] must return to the third column (counting from left to right) in matrix [A1a], and so on, according to transforming the column "ACBED" to "ABCDE", to obtain the matrix [A1a] (see Figure 1).
[0093] 2a) Undo the row transposition to get matrix [A1]: Since row transposition (counting from top to bottom) means transforming a row from "4321" in matrix [A1] to "4231" in matrix [A1a], to recover matrix [A1] (containing the original "base message"), we only need to reverse the transposition process to matrix [A1a]. Thus, the fourth row (the topmost row) in matrix [A1a] does not move since it was not transposed, and remains unchanged in matrix [A1a]. The third row in matrix [A1a] must move to the second row (counting from the top) in matrix [A1], and so on according to transforming rows from "4231" to "4321", to obtain matrix [A1] (see Figure 1).
[0094] Strength of the calculation method according to the described example: a) Create an "intermediate message": The matrix size chosen is [5×4], so the number of rows (M) is 5 and the number of columns (N) is 4. The “base message” was defined to be 20 characters long (M×N). The predefined operations for reordering the "base messages" are: a.1) Column transposition: (N a1 = 120 choices). To transpose a column, there are M! (M factorial) ways to do it. In the example, 5!=120. a.2) Row transposition: (N a2 = 24 choices). To transpose a row, there are N! (N factorial) ways to do it. In the example, 4!=24. a.3) Rotating a concentric parallelogram: (N a3 = 336 choices). To rotate the contents of the concentric parallelograms, consider a "positive" (clockwise) or "negative" (counterclockwise) rotation for each of the (N / 2) concentric parallelograms (for odd values of "N", we only consider the integer part of the quotient since there is a central parallelogram of size (M×1) that is not rotated). This involves (2^(N / 2)) options. To do so, we use N a3 There are three different ways to do this. The formula for the number of choices is: N a3 ={2×[(M+N)-2×(2n+1)]}×(2^(N\2)), for values of the product operator index {n=0 to k}. For n=k, such that (N-2k=2) for even values of N, N a3 ={2×[(M+N)-2×(2n+1)]}×[M-2(k+1)]×(2^(N\2)+1) multiplication operator, and the same Index vinegar. For odd values of N, (n=k) such that (N-(2k+1)=2), and (N\2)=the integer part of the quotient. Note that the factor [M-2(k+1)] gives the number of options for "circular rotations" of a central parallelogram of size (M×1) that are applicable in matrices with odd values of N. In the example, for M=5 y N=4, we have k=1: N a23 ={2×[(5+4)-2×(2×0+1)]}×{2×[(5+4)-2×(2×1+1)]}×(2^2) =({14}×{6}×4)=336. a.4) Matrix symmetric transformation: (N a4 =4 choices). In order to symmetrically transform a matrix, there are four different ways to do so: horizontally, vertically, diagonally left, and diagonally right. Note that a diagonal symmetric transform is really a combination of a symmetric transform and a rotation, so an [M×N] matrix becomes an [N×M] matrix, and it becomes necessary to continue using an [N×M] matrix while applying this method. a.5) The order of application of these four steps: (N a5 = 24 choices). In addition, the order used to apply the previous four steps generates another 4!=24 choices, ultimately increasing the number of times the base message can be permuted to: Number of options for process (a): N a =N a1 ×N a2 ×N a3 ×N a4 ×N a5 =(M!×N!×[{2×[(M+N)-2×(2n+1)]}×2^(N / 2) multiplication operator]×4×4!) N a =(5!×4!×[({14}×{6})×2^2]×4×4!)=(120×24×[(84)×4]×4×24) =92,897,280=(9.28×10^7) where this is for the product operator index {n=0 to k}.
[0095] If the length (number of characters) in the "base message" requires defining multiple (M x N) matrices, and for each new matrix we change the "number set", the "permutation alphabet", and the keywords used for sorting and encryption, then the number of choices N a increases with a multiplier effect according to each contribution.
[0096] b) Generate a "new permutation": Since the matrix chosen is [5x4], the numbers in the "number set" are 20, and there are 20! (20 factorial = 2.43x10^18) different ways to generate the series. If multiple "number sets" were to be used, each new permutation would have a multiplier effect, giving another (MxN)! (MxN factorial) options. The operations defined for sorting "sets of numbers" are as follows: b.0) Define "number set" (N b0 =20! choices). b.1) Transpose columns: (N b1 = 120 choices). b.2) Transpose the rows: (N b2 = 24 choices). b.3) Rotating a concentric parallelogram: (N b3 = 336 choices). b.4) Transform the matrix symmetrically: (N b4 = 4 choices). b.5) Define the order for applying the four steps: (N b5 = 24 choices). Number of options for process (b): N b =N b0 ×N b1 ×N b2 ×N b3 ×N b4 ×N b5 N b =(M×N)!×(M!×N!×({2×[(M+N)-2×(2n+1)]})×2^(N / 2)×4×4!), for values of the multiplication operator index {n=0 to k}. In the example, N b =20!×(5!×4!×({14×6}×4)×4×4!)=(2.43×10^18)×(120×24×336×4×24) N b =(2.26×10^26)
[0097] c) Encrypt the "intermediate message": To do the encryption, we must define (or choose) a "substitution alphabet." If the alphabet contains P letters, then there are P! (P factorial) different ways to permute the alphabet. In this example, we use a 26 letter alphabet, and therefore there are 26! (26 factorial = 4.03 x 10^26) different ways to permute the alphabet. If multiple "substitution alphabets" were to be used, then each new alphabet would give P! (P factorial) options, with a multiplier effect.
[0098] In encryption, we also generate "new permutations" using "new permutations" that give (MxN)! (MxN factorial) different ways, so if we decide to use multiple "number sets" (if the "base message" had to be fragmented into several blocks), each new permutation gives (MxN)! (MxN factorial) options, with a multiplier effect. Note that if the "number sets" used are the same as the ones created in process (b), the number of options given would already have been taken into account in such a process.
[0099] The operations defined for encrypting "intermediate messages" are as follows: c.0) Define "substitution alphabet": (N c0 =26! choices). c.1) Select an initial replacement cell: (N c1 = 20 choices).
[0100] To encrypt an intermediate message, it is necessary to determine which position in the message to use to start substituting characters. For a message with (M × N) characters, there are (M × N) different ways to choose the position to start. In our example, this is 20 It means different choices for each person.
[0101] c.2) Select the tour direction: (N c2 = 2 choices). To encrypt an intermediate message, it is also necessary to decide which direction (clockwise / counterclockwise) to use while cycling through the message substituting characters. This gives us two more options:
[0102] c.3) Use of "new number set": (N c3 =20! choices). It does not apply to the example being described.
[0103] Processes that do not modify the set of numbers (c) options: N c =N c0 ×N c1 ×N c2 =P!×(M×N)×2 N c =26!×(5×4)×2=(4.03×10^26)×20×2=(1.61×10^28)
[0104] Overall, the options for this method are: (N i ) multiplication operator =N a ×N b ×N c , where i={a,b,c}
[0105] (N i ) = [(M×N)!]×[M!×N!×({2×[(M+N)-2×(2n+1)]}×2^(N / 2))×4×4!]^2×[P!×(M×N)×2], where this is for the product operator index {n=0 to k}.
[0106] In the example, (N i ) multiplication operator =N a ×N b ×N c , where i={a,b,c} =(9.28×10^7)×(2.26×10^26)×(1.61×10^28) =(3.38×10^62)
[0107] Based on the examples described and what has been stated in the "Background Art", it seems reasonable to choose a matrix size [M×N] of [16×4], [16×8] or [16×16], which is equivalent to saying that the blocks should be 64, 128 or 256 characters (512, 1024 or 2048 bits). And since the strength of the scheme allows it, it should be enough to use only one "number set", one "substitution alphabet" with P characters (26 or more), and only one "encryption round" with blocks of 2048 bits, two rounds with blocks of 1024 bits, and three rounds for blocks of 512 bits.
[0108] With a 26 letter alphabet, the number of options to explore (in a "brute force" attack) is: a) For a 512-bit block with one "number set", one "substitution alphabet", and three "encryption rounds" (i.e., by using three sets of keywords CK1, CK2, and CK3): (N i ) multiplication operator =... ={[(16×4)!]×[(16!×4!×(36×28)×(2^2)×4)×4!]^2×[26!×(16×4)×2]}^3 ={[1.26×10^89]×[1.94×10^20]^2×[5.16×10^28]}^3=(1.51×10^475)
[0109] b) For a block of 1024 bits with one "number set", one "substitution alphabet" and two "encryption rounds" (i.e. by using two sets of keywords CK1, CK2 y CK3): (N i ) multiplication operator =... ={[(16×8)!]×[(16!×8!×(44×36×28×20)×(2^4)×4)×4!]^2×[26!×(16×8)×2]}^2 ={[3.85×10^215]×[1.14×10^27]^2×[1.03×10^29]}^2 =(2.76×10^597)
[0110] c) 2048-bit blocks, one "number set", one "substitution alphabet", one "encryption round" (i.e., the keyword CK1 , CK2 , and CK3 ) by using only one set of: (N i ) multiplication operator =... =[(16×16)!]×[(16!×16!×(60×52×44×36×28×20×12×4)×(2^8)×4)×4!]^2×[26!×(16×16)×2] =[8.57×10^506]×[1.42×10^42]^2×[2.06×10^29] =(3.61×10^620)
[0111] Other ways to increase the strength of the method: A multiplier effect is achieved over the number of options generated by this method (which must be explored by an automated algorithm in a "brute force" attack) if we increase: the number of blocks to use to fragment the Base Message (applying this method if the number of characters in the Base Message so requires); The number of "operations" used to sort the "base messages", The number of "operations" used to sort a "set of numbers", the number of "reordering" operations applied to the "base message", The number of "sorts" applied to the "set of numbers", The number of "substitution operations" applied in the same encryption process, The number of "number sets" used in the same encryption process; The number of "substitution alphabets" used in the same encryption process; The number of encryption processes (character substitutions in the "intermediate message"), Combine some (or all) of the cryptographically relevant described methods in the same encryption process. 。
[0112] Please note that all methods for increasing the strength of the methods we have just mentioned must be coded in the keywords CK1, CK2 y CK3, including the order in which we may determine to apply the added elements.
[0113] Structure and Length of Keywords for "Preferred Embodiments" a) Regarding 512-bit blocks: Length of CK1 = Length of CK2 (as both keywords share the same structure) Length of CK2 = 4 numbers (row rearrangement: numbers 1 to 4) +16 characters (column sorting: letters "A" through "P") + "Rotation direction" ("+ / -") + "Rotational Displacement" ("G" position such that 0≦G≦64) + "Type of symmetrical movement" (V=vertical, H=horizontal, L=left diagonal, R=right diagonal) + "Number set" codes (e.g., number set = 17,576 codes for 3 letters = 26^3 different codes) =4 numbers + 16 characters + 1 character (positive / negative) + 2 numbers + 1 character +3 characters = 27 characters =216 bits. CK3 length = "initial position for substitution" ("n", 1≦n≦64) + "Travel direction (A=ascending / D=descending)" = 2 numbers + 1 letter = 3 letters =24 bits.
[0114] b) For 1024 bit blocks: Length of CK1 = Length of CK2 (as both keywords share the same structure) Length of CK2 = 8 numbers (row rearrangement: numbers from 1 to 8) +16 characters (column sorting: letters "A" through "P") + "Rotation direction" ("+ / -") + "Rotational Displacement" ("G" position such that 0≦G≦128) + "Type of symmetrical movement" (V=vertical, H=horizontal, L=left diagonal, R=right diagonal) + "Number set codes" (e.g., 3 characters = 26^3 different number set codes = 17,576 codes) =8 numbers + 16 characters + 1 character (positive / negative) + 3 numbers + 1 character +3 characters = 32 characters =256 bits. CK3 length = "initial position for substitution" ("n", 1≦n≦128) + "Travel direction (A=ascending / D=descending)" = 3 numbers + 1 letter = 4 letters =32 bits.
[0115] c) Regarding 2048-bit blocks: Length of CK1 = Length of CK2 = 16 numbers (new lines) + 16 characters (new column) + "Rotation direction" ("+ / -") + "Rotational Displacement" ("G" position such that 0≦G≦256) + "Type of symmetrical movement" (V=vertical, H=horizontal, L=left diagonal, R=right diagonal) + "Number set code" (For example, 3 characters = 26^3 different number set codes = 17,576 symbols) =16 numbers + 16 characters + 1 character (positive / negative) + 3 numbers + 1 character +3 characters = 40 character =320 bits. CK3 length = "initial position for substitution" ("n", 1≦n≦256) + "Travel direction (A=ascending / D=descending)" = 3 numbers + 1 letter = 4 letters =32 bits.
[0116] Please note that when we refer to a "number set code" in the above definition, we are assuming that it makes it possible to identify elements in a repository of "number sets" that have been predefined for such purpose and are known to the corresponding parties.
[0117] Thus, we can have such a repository for permutation alphabets, sorting operations, permutation functions, or even for keywords used. The present disclosure includes the following aspects. (Clause 1) A method for encrypting data, comprising the steps of: in a system implemented in a computational form or digital integrated circuit, a "number set" is used to encrypt a "base message" to render its contents unintelligible; a) defining a "base message" with a specific type of "character" selected from the types of "character" that may be used according to a pre-agreed content between the corresponding parties, and from the total number of characters contained in this "base message", one or more [A1] matrices are constructed such that said total number of characters contained in said "base message" is included in said matrices; b) defining a "number set" formed by consecutive numbers ranging from "1" to the "size" of said matrix (equal to the product of the number of rows and the number of columns), randomly distributed in a matrix [B1] of the same size as the matrix [A1]; c) determining a series of four successive permutation operations applied to a matrix [A1] containing said "base messages" to transform it into an "intermediate message" [A2]; Types of permutation operations include transposing rows, transposing columns, rotating concentric parallelograms (clockwise / counterclockwise), and symmetrically shifting the matrix (vertically, horizontally, diagonally to the right or left, at least two of these in case of a square matrix); The sequence of operations is coded by four operations applied to form a keyword CK1, d) determining another series of four successive permutation operations to be applied to the matrix [B1] containing said "set of numbers" to transform it into a "new permutation" [B2]; said permutation operation on matrix [B1] is the same type of operation used to permutate matrix [A1]; said sequence of operations being coded with said four operations applied to form a keyword CK2; e) applying a keyword CK1 to permute said "base message" [A1], thereby generating said "intermediate message" [A2], and applying a keyword CK2 to permute said "number set" [B1], thereby generating said "new permutation" [B2]; f) defining a "substitution alphabet" [A0] by specifying the number and types of characters it contains, together with the position each of them has within said alphabet; the "permutation alphabet" has a cyclic structure, i.e. the next character following the last character is the first character in the sequence of operations; g) determining, by using said "new permutation" [B2], the position within said "intermediate message" [A2] from which said permutation shall begin and the direction of rotation within said message (towards the end or towards the beginning); This is encoded in the keyword CK3 by specifying the operations to be followed to construct the "encrypted message" [C1], h) determining a "substitution operation" for each character of said "intermediate message" [A2] which is to be replaced by another character obtained by displacing the original position of said character to be replaced in said "substitution alphabet" [A0] by a certain number of positions; the displacement for the replacement of the characters in the message is in a forward or backward direction, and in the circular direction of the message as defined in CK3 to continue the replacement, spaces, asterisks, said numbers and any other special characters not defined in said "Substitution Alphabet" remain unmodified in said "Encrypted Message" (except for accented vowels, which should be treated as unaccented vowels), and when a character defined in said "Substitution Alphabet" that appears in upper case in said "Intermediate Message" must be replaced, the corresponding replacement character is also displayed in upper case, i) starting said encryption by identifying a position number in said "new permutation" [B2] where said substitution begins (initial cipher) and identifying said character that is placed in said position in said "intermediate message" [A2]; j) identifying the position in alphabet [A0] of a first character to be substituted and determining the placement of the replacement character by moving the replacement character from the original position of the character to be substituted within the replacement alphabet a number of times indicated by the initial cipher; k) replacing said original character in said "intermediate message" [A2] with said identified replacement character, thereby determining said first character in said "encrypted message" [C1]; this operation repeats steps (1.i) to (1.k) for each successive character in said "intermediate message" [A2] according to said cyclic direction defined by keyword CK3, thereby generating said "encrypted message" [C1]; l) transmitting said "number set" [B1] (or its identification code) and said "encrypted message" [C1] to a receiving correspondent using a communication channel that does not need to be protected; m) transmitting to said receiving correspondent, through a pre-agreed secure channel, said "substitution alphabet" [A0] (or its identification code) and keywords CK1 to CK3; n) decrypting said message by said receiving correspondent based on said "substitution alphabet", keywords CK1 to CK3, said "encrypted message" and said original "number set" by applying said method in reverse as described in steps (1i to 1k). (Clause 2) A "preferred embodiment" comprising steps (1.a) to (1.k), a) in step (1a), said size of said block is to be coded at the beginning of a keyword CK1, b) in step (1a), the characters in the "base message" may be "alphabet" (in any language), numbers, alphanumeric characters, symbols, ideograms, phonemes, images or other and may be encoded in ASCII, UTF-8, Unicode or any other form of digital or analog encoding; c) in step (1a), a matrix [A1] is defined with a size of (16x4), (16x8) or (16x16) characters to be selected based on the number of characters in the "base message"; d) in step (1a), if the number of characters in the "base message" exceeds the size of the matrix, then the message should be fragmented in 64 character blocks (for a matrix size of 16x4), 128 character blocks (for a matrix size of 16x8), or 256 character blocks (for a matrix size of 16x16); e) in step (1a), if the number of characters in the "base message" (or the number of characters in the last fragment of the message) is less than the size of the matrix [A1] used, then the necessary amount of "blanks" should be added as "padding characters" to complete the contents of the matrix; f) in step (1a), the character "space" is to be used as a word spacing in the "Base Message" to complete the definition of the matrix [A1]; g) in step (1b), the "number set" may be formed from a set of (M x N) numbers in ascending or descending order, forming a series, order or sequence, not necessarily consecutive; h) in step (1b), the "number set" [B1] may be obtained using a number set generator designed for this purpose, for matrix sizes (16x4), (16x8) and (16x16), also taking into account the parameters involved, or by selecting it from a repository containing a repertoire of previously defined and clearly identified "number sets", i) in steps (1b and 2h), the identifier of said "number set" should be coded at the beginning of the keyword CK2, j) in steps (1c), (1d) and (1e), in order to rearrange the matrix [A1], the keyword CK1 should be used together with said encodings of said four operations that would have been defined for each matrix; k) in steps (1c), (1d) and (1e), in order to rearrange the matrix [B1], the keyword CK2 should be used together with said encodings of said four operations that would have been defined for each matrix; l) in step (1f), said "permutation alphabet" [A0] may be obtained from an alphabet generator designed for this purpose for (16x4), (16x8) and (16x16) matrices, taking into account the parameters involved, or by selecting it from a repository containing a repertoire of previously defined and clearly identified alphabets; m) in step (1f), the "substitution alphabet" may include "alphabetical characters", alphanumeric characters, special characters, vowels or consonants with spelling accents, numbers, positive and negative signs, symbols, icons, and others that correspond to the language and / or form of coding used; n) in steps (1f) to (1k), the encoding in the keyword CK3 is to be used for the position at which to start the permutation and for the cyclic direction of the "new permutation" [B1], both of which are used to achieve the encryption of the matrix [A2], o) in step (1g), exactly one "new permutation" and exactly one "substitution alphabet" should be used to encrypt every matrix [A2]; p) in steps (1f) and (1g), in order to avoid the need to transmit to the recipient correspondent of steps (1l) and (1m), the "number set" to be used must also be identified in keyword CK2, and the "substitution alphabet" to be used must also be identified in keyword CK3; q) in steps (1c) to (1g), the keywords CK1 to CK3 can be obtained using a keyword generator designed for this purpose for matrix sizes (16x4), (16x8) and (16x16) taking into account the parameters involved, or they can be selected from a repository containing a repertoire of previously defined and clearly identified keywords, r) in steps (1a) to (1k) constituting an "encryption round" for said method, these should be applied only once with a matrix size of (16x16), twice with a matrix size of (16x8) and three times with a matrix size of (16x4) elements, in each case the corresponding number of keyword trios CK1, CK2, CK3 may be defined or only one keyword trio may be used in every "encryption round", s) steps (1a) to (1k) constituting an "encryption round" of the method are applied to a matrix of size (16x16), (16x8) or (16x4) elements a number of times to be determined and agreed with said receiving correspondent, in each case said corresponding number of keyword trios CK1, CK2, CK3 may be defined or only one keyword trio may be used in every "encryption round", The method according to clause 1, wherein steps (1a) to (1k) constituting an "encryption round" of the method are applied a number of times to be determined and agreed with the recipient correspondent to a matrix of (M×N) elements, the size of which should be determined between the parties involved, and in each case the corresponding number of keyword trios CK1, CK2, CK3 may be defined or only one keyword trio may be used in all of said "encryption rounds". (Clause 3) In steps (1a) and (1b), a) the matrix [A1] can also be defined for a character size of [M×N]; b) that instead of using a "blank" for the "word spacing" and as a "padding character" in said "base message", another character from said "substitution alphabet" or some other one used to complete said definition of the matrix [A1] may also be used; c) The method according to clauses 1 and 2, further comprising, if it is necessary to define multiple matrices [A1] to contain the "base message", also defining (generating or selecting) several matrices [B1], each having a different "number set" of the same size and number as matrix [A1]. (Clause 4) The method according to clauses 1 and 2, further comprising, in steps (1c) and (1d), a) the reordering of the "base message" [A1] may also be omitted to be performed after the encryption, only the "number set" [B1] having been previously reordered, thus resulting in a matrix [C1] that is reordered, generating a matrix [C2] comprising the "encrypted and reordered message". (Clause 5) In steps (1c), (1d) and (1e), a) that to each one of said matrices [A1] and [B1] we can either apply equal quarters of a different reordering operation, respectively, or alternatively apply different quarters of different reordering operations to each other, and that in each of these alternatives it is necessary to select one of said different ways of defining said reordering operations to generate matrices [A2] and [B2], and also to select the order used to apply them, which has the corresponding effect on keywords CK1 and CK2, which must reflect said new reordering operations and the order used to apply them; b) The method according to clauses 1 and 2, further comprising: the permutation operations of matrices [A1] and [B1] can be made to be more than four operations by repeating (or creating new ones). (Clause 6) In step (1f), a) like the "base message", the characters in the "substitution alphabet" may be alphabetic (in any language), alphanumeric, symbolic, ideographic, phonetic, pictorial, or other, and the characters may be encoded in digital or analog form in ASCII, UTF-8, Unicode, or any other form of encoding; b) that in order to determine the positions of all "letters" in the "permutation alphabet", it is necessary to select one of the different ways of permuting the "number of letters" it may contain; c) that if multiple matrices [A1] are defined to contain said "base message", a different "substitution alphabet" may also be defined for each matrix, with said corresponding effect on keyword CK3, which must reflect said new definition of said "substitution alphabet" through an identification code; d) The method according to clauses 1 and 2, further comprising: when using a different "substitution alphabet" for each [A2] matrix, it is necessary to determine the order to be used in their application while generating the matrix [C1] containing said "encrypted message", which has a corresponding effect on keyword CK3, which must reflect which alphabet should be applied to each fragment. (Clause 7) In steps (1g) and (1h), a) if multiple [A1] matrices are defined to contain said "base message", then a different "initial position of substitution" may be defined for each matrix [A2], which has the corresponding effect on keyword CK3, which must reflect said different "initial position of substitution" for each fragment; b) if multiple [A1] matrices are defined to contain said "base message", then a different "permutation operation" may also be defined for each [A2] matrix, which has the corresponding effect on keyword CK3, which must reflect which "permutation function" should be applied to each fragment; c) that in said "substitution operation", said displacement required to obtain said position of said substitution character may be determined based on a property (among other things: even or odd, prime or not prime, a multiple of a given number or a given group of numbers, a divisor of a given number or a divisor of a group of numbers), a numerical range (among other things: half, third, quartile, quintile or decile of the size of said number set or of the size of said substitution alphabet), any other characteristic of said position number within said "number set", and / or any other characteristic of said "new permutation" to be processed, said displacement also being obtained based on a function defined for this purpose, which has said corresponding effect over the keyword CK3, which must reflect to which type or group of characters these different displacements should be applied; d) thus, an example of a permutation function is that, where "s" is the corresponding number of the "new permutation" being processed, the position of the replacement character in the "permutation alphabet" is obtained by "promoting" (or "demoting") it by (s+1) positions if "s" is an "even number", or by "promoting" (or "demoting") it by "s" positions if "s" is an "odd number", thereby making it possible to generate different permutation operations to obtain the replacement character to be used for each position; e) that in said "permutation operation" applied to a number of "encryption rounds", the promotion and demotion operations to be used in each round can be alternated while maintaining the remaining parameters; f) while using a different "permutation operation" for each [A2] matrix, in order to encrypt the matrix [A2] containing said "intermediate message" to generate the matrix [C1] containing said "encrypted message", it is necessary to determine the order to be used while applying the different operations, which has the corresponding effect on the keyword CK3, which must reflect the order to be used to apply said reordering operations, which must also reflect the "new permutation" used for said permutation; g) if multiple matrices [A1] are defined to comprise said "base message", if it is decided in step (1.e) not to permute [A1], then all of the [A1] matrices may be encrypted by using a different "new permutation" [B2] for each matrix [A1], otherwise all of the [A2] matrices may be encrypted by using the same "new permutation" [B2] or by using a different "new permutation" [B2] for each "A2" matrix; h) the method according to clauses 1 and 2, further comprising: while using a different "new permutation" to encrypt each [A1] matrix (if it was decided not to permute in step (1e)), or while using a different "new permutation" to encrypt each [A2] matrix, it is also necessary to determine the order used to apply the different permutations while encrypting matrices [A1] or [A2] to generate matrix [C1] comprising said "encrypted message", which has the corresponding effect on keyword CK3, which must reflect the order used to apply each "new permutation" to said fragments of said message. (Article 8) For steps (1g) to (1k), The method according to clauses 1, 2 and 5, further comprising: a) if in step (1e) it is decided to skip permuting said matrix(es) [A1] before said encryption operation, then it will be necessary to apply said permutation to matrix(es) [C1], which has the corresponding effect across keywords CK2 and CK3, which must reflect the order to be used while permuting and encrypting. (Article 9) For steps (1f) and (1g), The method of any one of clauses 1, 7 and 8, further comprising: a) extending the definition of keyword CK3 to include additional substitution operations, all of the initial substitution positions, and all of the cyclic directions, and wherein the substitution operations may be repeated or alternatively a new substitution operation as described in clause 7 may be applied. (Article 10) After carrying out steps (1f) to (1k), a) a final transposition of the "encrypted message" can be performed by defining a "transcription operation" that selects an initial position for starting the "new permutation" and by defining a direction for traversing the permutation (towards the beginning or the end of the permutation), where the permutation is assumed to have a cyclic structure (connecting from the end to the beginning); b) creating a matrix [C3] having the same size and number of fragments as matrix [C1], transcribing all fragments of the encrypted message according to the order of the "new permutation" starting, for each fragment, from the initial position possibly selected for starting the transcription, which has the corresponding effect over keyword CK3, which must reflect the transcription operation of all fragments of the encrypted message to create [C3]. (Article 11) In steps (1a) to (1k), 9. The method of any one of clauses 1 to 8, further comprising a) a decision as to which of the possible options of the plurality of options described are to be used and / or the order to use while applying a selected option of the plurality of options that can be generated for applying the method, said options having to be coded into all CK1, CK2 and CK3 keywords as appropriate. (Article 12) In step (1l), The method of clauses 1 and 2 further comprising: a) if in step (1a) it is decided to define a number of matrices [A1] to comprise said "base message", then said recipient correspondent must transmit all said identifiers of said "number set" [B1] and all said identifiers of said "permutation alphabet" [A0] using a communication channel that does not need to be secured with the understanding that all of said defined repositories are under security. (Article 13) In step (1m), The method according to clauses 1 and 2, further comprising: a) if in step (1a) it is decided to define a number of matrices [A1] to contain said "base messages", then having to transmit to said recipient communicator, by using a pre-agreed secure communication channel, all of said encrypted messages contained in said matrices [C1] (or [C2], or [C3]) which may be defined, and all of said keywords CK1 to CK3 (or identifiers thereof) which may be defined. (Article 14) In step (1n), The method according to clauses 1 and 2, further comprising: a) if in step (1a) the originating communicator decides to define a number of [A1] matrices to contain said "base message", then in order to decrypt said message, said receiving communicator must apply said method in reverse as described based on said "substitution alphabet" (or an identifier thereof), said keywords CK1 to CK3 (or an identifier thereof), said matrix [C1], [C2] or [C3] containing said "encrypted message", and said matrix [B1] containing said original "number set" (or an identifier thereof). [Explanation of symbols]
[0118] 104 Queue
Claims
1. A method for encrypting data, in a system implemented in a computational form or digital integrated circuit, in which a "number set" is used to encrypt a "base message" to make its contents unintelligible, said method comprising: a) defining a "base message" with a specific type of "character" selected from the types of "character" that may be used according to a pre-agreed content between the corresponding parties, and from the total number of characters contained in this "base message", one or more [A1] matrices are constructed such that said total number of characters contained in said "base message" is included in said matrices; b) defining a "number set" formed by permutations of successive numbers distributed in a matrix [B1] of the same size as the matrix [A1], from "1" to the "size" of said matrix (equal to the product of the number of rows and the number of columns); c) determining a sequence of four successive permutation operations to be applied to the matrix [A1] containing said "base message" and transforming it into an "intermediate message" [A2], the types of permutation operations being transposing rows, transposing columns, rotating a concentric parallelogram (clockwise / counterclockwise) and symmetrically shifting said matrix (vertically, horizontally, diagonally to the right or left, at least two of these in the case of a square matrix), said sequence being coded with the four operations applied forming a keyword CK1, d) determining another series of four successive permutation operations to be applied to the matrix [B1] containing said "number set" and transforming it into a "new permutation" [B2], said permutation operations on matrix [B1] being of the same type as those used to permute matrix [A1], said series of operations being coded with said four operations applied forming a keyword CK2; e) applying a keyword CK1 to permute said "base message" [A1], thereby generating said "intermediate message" [A2], and applying a keyword CK2 to permute said "number set" [B1], thereby generating said "new permutation" [B2]; f) defining a "substitution alphabet" [A0] by specifying the number and type of characters it contains, together with the position each of them has within said alphabet, said "substitution alphabet" having a cyclic structure, i.e., the next character following the last character is the first character in said sequence; g) using said "new permutation" [B2], determining the position in said "intermediate message" [A2] from which the permutation shall begin and the direction of circulation within said message (towards the end or towards the beginning), this being coded in a keyword CK3 by specifying the operations to be followed to construct an "encrypted message" [C1]; h) determining a "substitution operation" of each character of said "intermediate message" [A2] by another character obtained by shifting the position of the original character in said "substitution alphabet" [A0] by a certain number of positions, the displacement for the replacement of said characters in said message being made in a forward or backward direction and in said cyclic direction of said message as defined in CK3 to continue said substitution, blanks, asterisks, said numbers and any other special characters not defined in said "substitution alphabet" remain unmodified in said "encrypted message" (except for accented vowels, which should be treated as unaccented vowels), and when a character defined in said "substitution alphabet" occurring in upper case in said "intermediate message" has to be replaced, the corresponding substitution character is also displayed in upper case, i) starting said encryption by identifying a position number in said "new permutation" [B2] where said substitution begins (initial cipher) and identifying said character that is placed in said position in said "intermediate message" [A2]; j) identifying the location in alphabet [A0] of a first character to be substituted and determining the placement of the replacement character by moving the replacement character from the original location of the character to be substituted within the replacement alphabet a number of times indicated by the initial cipher; k) replacing the original character of the "intermediate message" [A2] by the identified replacement character, thereby determining the first character in the "encrypted message" [C1], this operation being repeated from steps (i) to (k) for each successive character in the "intermediate message" [A2] according to the cyclic direction defined by keyword CK3, thereby generating the "encrypted message" [C1]; l) transmitting said "number set" [B1] (or its identification code) and said "encrypted message" [C1] to a receiving correspondent using a communication channel that does not need to be protected; m) transmitting to said receiving correspondent, through a pre-agreed secure channel, said "substitution alphabet" [A0] (or its identification code) and keywords CK1 to CK3; and n) decrypting said message by said receiving correspondent based on said "substitution alphabet", keywords CK1 to CK3, said "encrypted message", and said original "number set" by applying said method in reverse as described in steps (i to k).
2. In steps (a) to (k), In step (a), the size of the block should be coded at the beginning of the keyword CK1, In step (a), the characters in the "base message" may be "alphabet" (in any language), numbers, alphanumeric characters, symbols, ideograms, phonemes, images or other and may be encoded in ASCII, UTF-8, Unicode or any other form of digital or analog encoding; In step (a), a matrix [A1] is defined with a size of characters of (16x4), (16x8) or (16x16) to be selected based on the number of characters in the "base message", in step (a), if the number of characters in the "base message" exceeds the size of the matrix, then the message should be fragmented in 64 character blocks (for a matrix size of 16x4), 128 character blocks (for a matrix size of 16x8), or 256 character blocks (for a matrix size of 16x16); in step (a), if the number of characters in the "base message" (or the number of characters in the last fragment of the message) is less than the size of the matrix [A1] used, then the necessary amount of "blanks" should be added as "padding characters" to complete the contents of the matrix; in step (a), the character "space" is to be used as a word spacing in the "base message" to complete the definition of the matrix [A1]; In step (b), the "number set" may be formed from a set of (M x N) numbers in ascending or descending order, constituting a series, order or sequence, not necessarily consecutive; In step (b), the "number set" [B1] may be obtained using a number set generator designed for this purpose, for matrix sizes (16x4), (16x8) and (16x16), also taking into account the parameters involved, or by selecting it from a repository containing a repertoire of previously defined and clearly identified "number sets", In step (b) and in the previous step, the identifier of said "number set" should be coded at the beginning of the keyword CK2, In steps (c), (d) and (e), in order to rearrange the matrix [A1], the keyword CK1 should be used together with said encodings of said four operations that would have been defined for each matrix; In steps (c), (d) and (e), in order to rearrange the matrix [B1], the keyword CK2 should be used together with said encodings of said four operations that would have been defined for each matrix; In step (f), said "permutation alphabet" [A0] may be obtained from an alphabet generator designed for this purpose for (16x4), (16x8) and (16x16) matrices, taking into account the parameters involved, or by selecting it from a repository containing a repertoire of previously defined and clearly identified alphabets; In step (f), the "substitution alphabet" may include "alphabetical characters", alphanumeric characters, special characters, vowels or consonants with spelling accents, numbers, positive and negative signs, symbols, icons, and others that correspond to the language and / or form of coding used; in steps (f) to (k), the encoding in the keyword CK3 is to be used for the position from which to start the permutation and for the cyclic direction of the "new permutation" [B1], both of which are used to achieve the encryption of the matrix [A2]; In step (g), exactly one “new permutation” and exactly one “substitution alphabet” should be used to encrypt every matrix [A2]; In steps (f) and (g), in order to avoid the need to transmit to the recipient correspondent of steps (l) and (m), the "number set" to be used must also be identified in keyword CK2, and the "substitution alphabet" to be used must also be identified in keyword CK3; In steps (c) to (g), the keywords CK1 to CK3 can be obtained using a keyword generator designed for this purpose for matrix sizes (16×4), (16×8) and (16×16) taking into account the parameters involved, or they can be selected from a repository containing a repertoire of previously defined and clearly identified keywords; in steps (a) to (k) constituting an "encryption round" for said method, these should be applied only once with a matrix size of (16x16), twice with a matrix size of (16x8) and three times with a matrix size of (16x4) elements, in each case the corresponding number of keyword trios CK1, CK2, CK3 may be defined or only one keyword trio may be used in every "encryption round", steps (a) to (k) constituting an "encryption round" of the method are applied a number of times to be determined and agreed with said receiving correspondent, on matrices of size (16x16), (16x8) or (16x4) elements, and in each case said corresponding number of keyword trios CK1, CK2, CK3 may be defined or only one keyword trio may be used in every "encryption round", The method according to claim 1, wherein steps (a) to (k) constituting an "encryption round" of the method are to be considered as being applied a number of times to be determined and agreed with the recipient correspondent, to a matrix of (M x N) elements, the size of which should be determined between the parties involved, and in each case the corresponding number of keyword trios CK1, CK2, CK3 may be defined or only one keyword trio may be used in all of the "encryption rounds".
3. In steps (a) and (b), The matrix [A1] may also be defined for a character size of [M×N], Instead of using a "blank" for the "word spacing" and as a "padding character" in said "base message", another character from said "substitution alphabet" or some other one used to complete said definition of the matrix [A1] may also be used; A method according to claim 1 or 2, in case it is necessary to define multiple matrices [A1] to contain the "base message", it is also possible to define (generate or select) several matrices [B1], each having a different "number set" of the same size and number as matrix [A1].
4. A method according to claim 1 or 2, wherein in steps (c) and (d), a) the reordering of the "base message" [A1] may also be omitted to be performed after the encryption, having only previously reordered the "number set" [B1], thus resulting in a matrix [C1] that is reordered, generating a matrix [C2] comprising the "encrypted and reordered message".
5. In steps (c), (d) and (e), for each one of said matrices [A1] and [B1] we can either apply equal quarters of the different reordering operations respectively, or alternatively we can apply different quarters of the different reordering operations to each other respectively, and for each of said steps (c), (d) and (e) one is selected out of all the different ways of defining said reordering operations to generate matrices [A2] and [B2], and the order used to apply them is selected, which has said corresponding effect on the keywords CK1 and CK2, which must reflect the new reordering operations and said order used to apply them; The method according to claim 1 or 2, wherein the permutation operations of matrices [A1] and [B1] can also be more than four operations by repeating permutation operations (or creating new ones).
6. In step (f), - as with the "base message", the characters in the "substitution alphabet" may be alphabetic (any language), alphanumeric, symbolic, ideographic, phonetic, pictorial, or other, and the characters may be encoded in digital or analog form in ASCII, UTF-8, Unicode, or any other form of encoding; To determine the positions of all the "letters" in the "permutation alphabet", it is necessary to choose one of the different ways of permuting the "number of letters" it may contain; If more than one matrix [A1] is defined to contain said "base message", a different "substitution alphabet" may also be defined for each matrix, with said corresponding effect on keyword CK3, which must reflect the new definition of said "substitution alphabet" through its identifier; A method as claimed in claim 1 or 2, in which when using a different "substitution alphabet" for each [A2] matrix, it is necessary to determine the order used to apply the different alphabets to encrypt the matrix [A2] containing the "intermediate message" to produce the matrix [C1] containing the "encrypted message", which has a corresponding effect on the keyword CK3, which must reflect which alphabet should be applied to each fragment.
7. In steps (g) and (h), if multiple [A1] matrices are defined to contain said "base message", a different "initial position of substitution" may be defined for each matrix [A2], which has the corresponding effect on keyword CK3, which must reflect said different "initial position of substitution" for each fragment; If multiple [A1] matrices are defined to contain said "base message", a different "permutation operation" may also be defined for each [A2] matrix, which has the corresponding effect on the keyword CK3, which must reflect which "permutation function" should be applied to each fragment; in said "substitution operation", said displacement necessary to obtain said position of said substitution character may be determined based on a property (among others: even or odd, prime or not prime, a multiple of a given number or a given group of numbers, a divisor of a given number or a divisor of a group of numbers), a numerical range (among others: half, third, quartile, quintile or decile of the size of said number set or of the size of said substitution alphabet), some other characteristic of said position number within said "number set", and / or some other characteristic of said "new permutation" to be processed, said displacement also being obtained based on a function defined for this purpose, which has said corresponding effect over the keyword CK3, which must reflect to which type or group of characters these different displacements should be applied; Thus, an example of a permutation function is: if "s" is the corresponding number of the "new permutation" being processed, then the position of the replacement character in the "permutation alphabet" is obtained by "promoting" (or "demoting") it by (s+1) positions if "s" is an "even number", or by "promoting" (or "demoting") it by "s" positions if "s" is an "odd number", thereby making it possible to generate different permutation operations and obtain the replacement character to be used for each position; said "permutation operation" applied to a number of "encryption rounds", the promotion and demotion operations to be used in each round can be alternated while maintaining the remainder of said parameters; while using a different "permutation operation" for each [A2] matrix, it is necessary to determine the order to be used while applying the different operations to encrypt the matrix [A2] containing said "intermediate message" to generate the matrix [C1] containing said "encrypted message", which has said corresponding effect over the keyword CK3, which must reflect said order to be used to apply said reordering operations, which must also reflect said "new permutation" used for said permutation; if multiple matrices [A1] are defined to comprise the "base message", if it is decided in step (e) not to permute [A1], then all of the [A1] matrices may be encrypted by using a different "new permutation" [B2] for each matrix [A1], otherwise all of the [A2] matrices may be encrypted by using the same "new permutation" [B2] or by using a different "new permutation" [B2] for each "A2" matrix, The method according to claim 2, wherein while using a different "new permutation" to encrypt each [A1] matrix (if it was decided in step (e) that no permutation should be performed) or while using a different "new permutation" to encrypt each [A2] matrix, it is also necessary to determine the order used to apply the different permutations while encrypting matrices [A1] or [A2] to generate the matrix [C1] comprising the "encrypted message", which has the corresponding effect on keyword CK3, which must reflect the order used to apply each "new permutation" to the fragments of the message.
8. In steps (g) to (k), A method according to any one of claims 1, 2 and 5, wherein in step (e) it is decided to skip the permutation of said one or more matrices [A1] before the encryption operation, then it becomes necessary to apply said permutation to one or more matrices [C1], which has the corresponding effect across keywords CK2 and CK3, which must reflect the order to be used while permuting and encrypting.
9. In steps (f) and (g), The method of any one of claims 1, 7 and 8, wherein the encryption process may also be performed multiple times, extending the definition of keyword CK3 to include additional substitution operations, all of the initial substitution positions and all of the cyclic directions, and the substitution operations may be repeated or new substitution operations as claimed in claim 7 may be applied.
10. After carrying out steps (f) through (k), A final permutation of the "encrypted message" can be performed by defining a "transcription operation" in which a starting position is chosen in the "new permutation" and by defining a direction for traversing the permutation (towards the beginning or the end of the permutation), where the permutation is assumed to have a cyclic structure (connecting from the end to the beginning); A method according to any one of claims 1 to 8, comprising creating a matrix [C3] having the same size and the same number of fragments as the matrix [C1] and transcribing all the fragments of the encrypted message according to the order of the "new permutation" starting for each fragment from the initial position possibly selected for starting transcription, which has the corresponding effect over the keyword CK3, which must reflect the transcription operation of all the fragments of the encrypted message to create [C3].
11. In steps (a) to (k), A method according to any one of claims 1 to 8, further comprising making a decision as to which of the possible options of a described plurality of options are to be used and / or the order to use while applying a selected option of the plurality of options that can be generated for applying the method, said options having to be coded into all CK1, CK2 and CK3 keywords as appropriate.
12. In step (l), A method as claimed in claim 1 or 2, wherein if in step (a) it is decided to define a number of matrices [A1] to comprise said "base message", then all identifiers of said "number set" [B1] and all of said identifiers of said "permutation alphabet" [A0] must be transmitted to the recipient communicator using a communication channel that does not need to be protected with the understanding that all of said defined repositories are under security protection.
13. In step (m), A method according to claim 1 or 2, wherein in step (a) it is decided to define a number of matrices [A1] to contain said "base messages", the recipient communicator must transmit, by using a pre-agreed secure communication channel, all of said encrypted messages contained in the matrix [C1] (or [C2] or [C3]) which may be defined, and all of said keywords CK1 to CK3 (or identifiers thereof) which may be defined.
14. In step (n), A method according to claim 1 or 2, wherein in step (a) the originating communicator decides to define a number of [A1] matrices to contain the "base message", in order to decrypt the message the receiving communicator must apply the method in reverse as described based on the "substitution alphabet" (or an identifier thereof), the keywords CK1 to CK3 (or an identifier thereof), the matrices [C1], [C2] or [C3] containing the "encrypted message", and the matrix [B1] containing the original "number set" (or an identifier thereof).
Citation Information
Patent Citations
Communication method and communication system
JP2008250298A
Method of generating a random permutation, random permutation generating device, and encryption / decryption device having the same
US20130259224A1
Using state reordering to protect against white box attacks
US20160359618A1
SKC-JJU256 encryption using knights tour solutions as the main key to create a cryptosystem
US20160379527A1
US7995748-B2