CRYPTOGRAPHY METHOD
20210409194 · 2021-12-30
Inventors
Cpc classification
International classification
Abstract
A method for encrypting digital data (A, E) by conversion, comprising the steps of accessing first digital data (D), wherein the first digital data (D) consist of at least one first unit, which has a data value and a data arrangement; accessing second digital data (A, E), wherein the second digital data (A, E) consist of at least one second unit which has a data value and a data arrangement; establishing a start condition, wherein the start condition has at least one start position based on the data arrangement of the first digital data; persistently retaining the data of the start condition; forming a first temporary data stream (B) from the first digital data (D) as a function of the start condition; and forming a cipher (C) by converting the second digital data (A, E), wherein the at least one second unit (a∈A) is converted using at least one predetermined function (⊕) as a function of at least one third unit (b∈B) selected from the first temporary data stream (a⊕b=c).
Claims
1. A method for encrypting digital data (A, E) by conversion, comprising the steps of: accessing first digital data (D), wherein the first digital data (D) consist of at least one first unit, which has a data value and a data arrangement; accessing second digital data (A, E), wherein the second digital data (A, E) consist of at least one second unit, which has a data value and a data arrangement; establishing a start condition, wherein the start condition has at least one start position based on the data arrangement of the first digital data; persistently retaining the data of the start condition; forming a first temporary data stream (B) from the first digital data (D) as a function of the start condition; and forming a cipher (C) by converting the second digital data (A, E), wherein the at least one second unit (a∈A) is converted using at least one predetermined function (⊕) as a function of at least one third unit (b∈B) selected from the first temporary data stream (a⊕b=c) characterised in that the first temporary data stream is a circular data stream.
2. The method according to claim 1, characterised in that the formation of the first temporary data stream (B) furthermore comprises mathematical, stochastic and/or information-technology processing of first digital data.
3. The method according to claim 1, characterised in that the at least one third unit is selected from the temporary data stream by means of a predetermined ruleset.
4. The method according to claim 1, characterised in that the conversion takes place using the at least one predetermined function as a function of the data value and/or the data arrangement of the at least one third unit.
5. The method according to claim 1, characterised in that the second digital data (A) are formed by adaptation prior to conversion by means of mathematical, stochastic and/or information-technology processing based on digital raw data (E).
6. The method according to claim 5, characterised in that the mathematical, stochastic and/or information-technology processing is a reversible alteration of the arrangement of groups of second units.
7. The method according to claim 1, characterised in that the second digital data (E) form a second temporary data stream (A).
8. The method according to claim 1, characterised in that the start condition is saved in connection with the cipher (C).
9. The method according to claim 1, characterised in that, if it is not possible to access the first digital data, an appropriate replacement is accessed.
10. A method for decrypting a cipher (C), which is formed according to claim 1, comprising the steps of: accessing the cipher (C); accessing a start condition; accessing first digital data (D), wherein the first digital data (B, D) consist of at least one first unit, which has a data value and a data arrangement and corresponds to the digital data used for the encryption; reversal of the conversion, wherein in each case one unit of the cipher (c□C) is formed by reversed application of a predetermined function used in the encryption, as a function of at least one third unit, wherein the at least one third unit is a unit from a first temporary data stream (B), wherein the first temporary data stream (B) is formed from the first digital data (D) as a function of the start condition.
11. A method for decryption according to claim 10, wherein the method comprises the reversal of the adaptations by performing, in reverse order, the steps performed during the adaptations on the second digital data (A).
12. A device for encrypting or decrypting digital data comprising a processor and a storage medium, characterised in that the device is configured to carry out the method according to claim 1.
13. A computer program with program code for performing the method according to claim 1, when the computer program is executed on a processor.
14. A storage medium with instructions saved thereon for performing the method according to claim 1, when these instructions are executed on a processor.
15. A device for encrypting or decrypting digital data comprising a processor and a storage medium, characterised in that the device is configured to carry out the method according to claim 10.
16. A computer program with program code for performing the method according to claim 10, when the computer program is executed on a processor.
17. A storage medium with instructions saved thereon for performing the method according to claim 10, when these instructions are executed on a processor.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
DETAILED DESCRIPTION
[0065] The principle underlying the present invention is clearly described below with reference to the acronym “ARTOO”. Therein: [0066] A=Automatically, simple to handle as a fully automatic method [0067] R=Randomizing, the provision of non-deterministic random values [0068] T=Transformation, quickly executable, as compact in the algorithm [0069] OO=Infinity, the sign for infinity
[0070] Summary: If an algorithm for encryption uses an infinitely long, non-deterministic basis for the encryption, then the cipher cannot be broken.
[0071] This “ARTOO” basic principle is understood and applied in the method described here such that: [0072] infinity is meant in the sense of unlimited, without restrictions, any number, not rigidly fixed, not constant, but rather variable and flexible [0073] the random numbers are not only the basis for arithmetic operations, but rather also contribute to controlling, selecting, etc. Thus, a breakthrough is made to a firmly fixed scheme for processes [0074] the application of a simple conversion (transformation) promises improvements for users and permits universal fields of application [0075] the automatic process largely protects against operating errors and the like.
[0076] The priority is always the high degree of quality. Hereafter, aspects of the present invention shall be presented in detail, with
[0077] The left branch shows the transition of the raw data D 551, which have been individually set up by the user, to the encryption base B 553. This provides any number of non-deterministic byte values. The plurality of values permits an increase in quality by values being summarised in a bitwise manner 557. Viewed stochastically, the scatter (variance) is thus raised until good quality is attained, and thus they form the first digital data.
[0078] The right branch depicts the transition of the data E 552 to be encrypted to the working data A 554. Here, the data to be encrypted are processed bytewise in form, content and arrangement such that the attacker is able to make as few assumptions as possible 559. They form the second digital data.
[0079] The right branch makes use of the random numbers of the left 558 for this. By using the non-deterministic base B, the working data A are also influenced in a strongly non-deterministic manner.
[0080] As the quality is now very high, a simple and rapid conversion (transformation) can take place 555. From a mathematical, information processing perspective, A⊕B=C is a reversible linking of elements of the quantities. Demonstrated in the simplest case by addition c=a+b.
[0081] In order for a copy of the original to be able to be formed by decryption, in this embodiment the cipher 556 must know at least the start in D 551, so that B 553 can be reconstructed. If the conversion is inverted, here a=c−b, then A 554 has thus been recovered. If several steps for A were employed one after the other, these have to be undone in the reverse order for the decryption, in order to thus obtain a copy of the original E, as is depicted in
[0082]
[0083] In order to be able to fulfil the requirements, the files selected by the user or stored in the index must firstly be viewed in a common data stream. As an example, three files d1, d2, d3 with 3, 2 and 3 Bytes are presented, which, linked together by means of the File Concatenate that is customary in computing, for a stream b. Streams are distinguished in that a positioning can be carried out directly, with counting starting from 0.
TABLE-US-00004 d1 d2 d3 d1 1 d1 2 d1 3 d2 1 d2 2 d3 1 d3 2 d3 3
TABLE-US-00005 b b0 b1 b2 b3 b4 b5 b6 b7
[0084] At the end of the data stream, or if a position is greater than or equal to the total length, you continue from the beginning using the modulo function (remainder function %). For example, if a position is of 10 in the case of a total length of 8, then 10% 8=2.
##STR00001##
[0085] Thus, the actual positions can be concealed outwardly. Values such as 206.855.898% 8 or 299.525.537.761.704.834% 8 also give 2.
[0086] This is a difficult obstacle for an attacker, because he does not know the files, and thus doesn't know the total length which he requires in order to ascertain the position. The number is always newly determied from real random numbers and is at least 64 Bit, approx. 1.8e19. Through the remainder function (modulo) from the total length, it is possible to easily conclude the required inner position from the external position which is made public. These details are not known to an attacker, neither the amount nor the actual lengths and thus also not the total length. Outwardly, only a very large number is visible. In Terabytes, the maximum for 64 Bits is
2{circumflex over ( )}64=16,777,216 TB
and would comprise the capacity of thousands of hard drives. In fact, the actual inner start position cannot be guessed, provided that it is always independently newly determined in a stochastic manner. As the sole value which has to be transmitted publicly, this outer start position is very important. The value should be so large that it is immediately clear to any attacker that it cannot be a real value. It is advantageous if no system, such as through pseudorandom numbers or direct reference to the actual database, is used. If the formation of random numbers as a function of functions and their variables is viewed stochastically, it is better to use two functions with different influences. If different variables respectively are used, both functions are also “strictly independent” of one another. The same principle applies in reverse, in particular for series (sequences) of value from algorithms (functions).
[0087] As the position is made public as the outer start position, a further independent method is advisable, one of which is explained here. Here, the time at the start of the program (only the microseconds), the time of the action (only the microseconds) and the current mouse XY-position halted. If these are joined together bytewise, a very large position value of 230 TB is obtained.
TABLE-US-00006 /255 %255 [0.255] SystemTicks1 999888 3 5 208 + 3905 15 65 + 15 0 15 − MouseX 1920 7 128 + 7 0 7 − MouseY 1080 4 56 + 4 0 4 − SystemTicks2 111222 434 118 + 434 1 178 + 1 0 1 − Byte 208 65 128 56 118 178 Number 228.
79.742.635.698 kB 1.024 MB 1.048.57
GB 1.073.741.024 TB 1.099.511.627.776 Max 18.44
.744.073.709.500.000
indicates data missing or illegible when filed
[0088] Hereafter, the use of the start position will be described. The start position should be understood like an initial value, with which we obtain further values which are used for data-processing and for program control. The further explanations show how you come to a specific file from outside over any number of files. On the basis of the data contained therein, any number of data are then provided through a process (algorithm).
[0089] The principle of how any number of random numbers can be raised is a main factor of this encryption. A stream with 1 MB, for instance, serves for illustration, which is 7 JPEG images of 16 megapixels on a smartphone. Simplified to our decimal system, the total length is 1,000,000 Bytes, the values are approximated on the decimal system, e.g. a value of 99 at position 123.499.
[0090] Firstly, we require a random start position, which an attacker does see, but which does not correspond to a real position specification. This is similar to a transition between reference systems, in order to reach an Inner Position (the main system) from an Outer Position (public system).
[0091] If an Absolute Data Stream over all files (as the Main System) is not available in the programming language, an intermediate step is required. The next example applies the above number 228.979.742.635.698 in a support table. It shows how the Inner Position is ascertained via this Outer Position in order to then be able to ascertain the File Position 35.698 in file #3. In particular, for hardware-related programming of operating system components, drivers, and the like, the File Position must be used in older programming languages such as C.
TABLE-US-00007 228.979.742.635.698 Outer Position 228.979.742.635.698 mod 1.000.000 = 635.698 Inner Position Name Length Offset # data01.jpg 200.000 0 0 data02.jpg 200.000 200.000 1 data03.jpg 200.000 400.000 2 data04.jpg 200.000 600.000 3 35.698 File Position data05.jpg 100.000 700.000 4 data06.jpg 50.000 750.000 5 data07.jpg 50.000 800.000 6 1.000.000
[0092] In a data stream, as well as in a file (Stream, File), positioning is carried out absolutely or relative to the present position with a File Pointer (Read/Write Pointer). A relative positioning represents a jump to a new, absolute position.
TABLE-US-00008 # Position Value Next 0 635.698 98 635.796 1 635.796 96 635.892 2 635.892 92 635.984 3 635.984 84 636.068 4 636.068 68 636.136 5 636.136 36 636.172 6 636.172 72 636.244 7 636.244 44 636.288 8 636.288 88 636.376 9 636.376 76 636.452 10 636.452 52 636.504 11 636.504 4 636.508 12 636.508 8 636.516 13 636.516 16 636.532
[0093] Although this example is so simple because there is a direct correlation between position and value and additionally influences itself, it already shows a good sequence of “Short Distance Jumps” in the framed area.
[0094] Another possibility is that you read a value and increase the File Pointer by 1. This is the classic sequential behaviour for file accesses (reading, writing). The increase in the position is very important, otherwise the File Pointer would always supply the same values on the same location.
[0095] As a third possibility, the present position can be averaged with the total length. A jump is thus substantially larger than the value range of a byte [0 . . . 255]. The next
TABLE-US-00009 # Position Value Next Start 0 635.698 98 635.699 98 1 635.699 99 817.850 Jump(1.000.000 + 635.699)/2 2 817.850 50 817.851 50 3 817.851 51 908.925 Jump(1.000.000 + 817.851)/2 4 908.925 25 908.926 25 5 908.926 26 954.463 Jump(1.000.000 + 908.526)/2 6 954.463 63 954.464 63 7 954.464 64 977.231 Jump(1.000.000 + 954.464)/2 8 977.231 31 977.232 31 9 977.232 32 988.616 Jump(1.000.000 + 977.232)/2 10 988.616 16 988.617 16 11 988.617 17 994.309 Jump(1.000.000 + 988.617)/2 12 994.309 9 994.310 9 11 994.310 10 997.155 Jump(1.000.000 + 994.310)/2 12 997.155 55 977.156 55
[0096] In conclusion, the three presented examples have their own peculiarities: [0097] The sequential access (successive one after the other) is standard, the low “consumption” of data is advantageous. [0098] The application of “long-distance jumps” results in positions which are extremely difficult for an attacker to reproduce, as unknown variables (such as total length) are used, which have a meaningful effect (different file at different position). [0099] “Short Distance Jumps”, as shown above in the calculation, offer a degree of balance between consumption and attack strength.
[0100] As a further measure for the objective of as high a degree of security as possible, the control of jumps takes place by means of real random numbers. This is because the main target of attack is the start position, because it is known. It is advisable to jump at least once at the beginning of the encryption. The number and selection are taken from the data of the stream and are thus random. As this is necessary only once at the beginning, the time requirement can be ignored and a recursive search behaviour over the entire stream is also acceptable. An application buffer can be filled with random numbers. From this, there emerge further possibilities in the behaviour, such as regular jumps, random presets and others.
[0101] With the application buffer, filled with random numbers, it is possible to make a selection of a particular function. It results in a non-deterministic behaviour which makes the method secure. As explained above, there are several possibilities in the case of jumps. In the method, from a byte value such as 128, the selection can be made from 3 functions f0, f1 or f2 through modulo (f2 is invoked here):
128%3=2
[0102] In order to be able to guarantee the aim of a security which is as high as possible, the value range of the data should be involved. As explained above, the bits are weakly occupied in particular with ASCII and Unicode files. To increase quality, in certain circumstances a compression of the data can take place automatically. For this purpose, data are read and summarised until the necessary quality has been reached. An example with Unicode-32 in the first digital data D with the text “XY” depicted hexadecimally and summarised as a half byte compresses it to 2 to the power of 8 instead of 2 to the power of 64 by the factor 2 to the power of 56=281,474,976,710,656:
TABLE-US-00010 Raw data: 00, 00, 00, 58, 00, 00, 00, 59 Selection: 58, 59 Compression: 8 9 to hex 89
[0103] Finally a conversion A⊕B=C takes place, where the individual bytes respectively from A and B are linked with a predetermined mathematical, information-technological function.
[0104] In order to achieve the aim of secure encryption, some fundamentals of cryptology (cryptography for the protection of the information and cryptoanalysis for cancelling the protection) must be borne in mind. With reference to the present invention, the following advantages must be specified: [0105] As few clues as possible for the attacker, here only one value, the start position, is necessarily made public. [0106] Use of independent variables, here on the one hand the system time in fractions of a second, and on the other a data stream. [0107] Providing a large number of possibilities. Here in particular: [0108] many functions are available as a set, which are also able to be combined (like the OO in the ARTOO principle) [0109] several influencing variables are used, e.g. value, or position, or both (the R in the ARTOO principle) [0110] more possibilities (stochastic) through viewing in bytes (minimal 256) compared to a bit with two possibilities (the OO in the ARTOO principle) [0111] real random numbers (individual files, unpredictable contents, the R in the ARTOO principle) [0112] no restriction (block sizes, key lengths) thus any number of values (the OO in the ARTOO principle) [0113] The mode of operation of a program can be reproduced by any attacker, whether this be through disassembling or re-engineering. This invention offers many logical bifurcations. It deliberately prevents one step from exactly following another and being foreseeable.
[0114]
[0115] The raw data D 553 are not processed and are viewed cyclically as B. They control the group formation 559 and influence the contents thereof through the provision of random numbers 558.
[0116] A configuration file can additionally regulate general options. These conditions which prevail at the start are referred to as Start Condition. In particular, the start position, as part of the Start Condition is responsible for which random numbers are available at the start of the encryption and decryption.
[0117] The aim of a secure encryption is shown by means of an example of the present invention. A fundamental problem in application protocols is the well-known response behaviour which an attacker can make use of. On the web (WWW), the browser requests the data (resources) with “GET”. In the case of a website with nine embedded graphics, that is 10 GET requests and 10 HTTP responses such as
HTTP/1.1 200 OK\
to 15 characters plus line end, which exactly corresponds to the AES block length. With the general approach A⊕B=C, the attacker has an equation system, wherein A and C are known and the effects thereof can be formed, refined and traced back using patterns.
[0118] As a measure against this, groups can be used and rearranged. In principle, these are datablocks without fixed length, which are managed in a concatenated manner. This would yield a block chain, which could lead to mix-ups. The designation of group and list is general and unambiguous.
[0119] For performance, a random number of B=D is requested and processed, e.g. at a value 255; processed according to the last decimal place to: 5. Then two groups are formed and exchanged. The result is:
1.1 200 OK\HTTP/
and thus an attacker cannot rely on a beginning with “HTTP”.
[0120] Another example is the B from
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, . . .
from
HTTP/1.1 200 OK\
the division to
H|TT|P/1|.1 2|00 OK|\|
after reversal of the order thus
\|00 OK|.1 2|P/1|TT|H|
which no longer has much in common with the original format of the HTTP status, as is also shown by
[0121] The summarising of equal values represents a further measure against attacks. In the example,
16*112
[0122] In the transmission, use is made of the fact that ASCII does not use the highest bit. If this is detected during decryption, up to 127 characters can be recovered, which is depicted in
[0123] The alteration of contents as a further measure against attacks is similar. Hereafter, a protocol of machine control is depicted, as used in vector graphics in computers, plotters or in the web as SVG:
MOVETO:100:200;
LINETO:300:400;
. . .
[0124] The format of the protocol definitely must be known, so that two devices from different manufacturers can communicate with one another. According to the ASCII table, only a region from (hexadecimal) 0x30 to 0x5F is used. That is 3*16=48 possibilities of a total 256, i.e. around 19%. The limitation in the value range is bad from a stochastic perspective, but can be improved through an adaptation, similar to a coordinate transformation (shift of the origin and subsequent scaling). Through identical settings in the configuration file (.ini) on both devices with
[Adjust Content]
Origin=48
Scale=5
the region
0x30:(48−48)*5=0
0x5F:(137−48)*5=235/255 max.
is improved and thus cannot be immediately identified as a machine protocol, as shown by
[0125] Similar to alterations of contents (inner alteration), an adaptation of the form (external alteration) is possible as a further measure against attacks. Using the data length, assumptions can be made on the file type. For example
<100 Bytes ASCII Text with important information auch as .ini, passwords, etc.
<2 kB a DIN A4 pagee (1800 characters)
<20 kB Office documents such as contracts, reports, and so on.
[0126] Above this, there are more sophisticated formats. Due to the file system, a minimal block size (cluster) is required, 64 kB is usual, including for the saving of one byte. Use can be made of this in the present encryption. By
[FillGroup]
ignore=40000
jump=40
firstly 40000 peudorandom numbers are prefixed, processed with another algorithm—independent of the actual encryption method (series through regular jumps in Base B of 40 bytes). Only then does the actual user data come, in sum an equal amount is covered, but the attacker does not know the value and thus it is significantly more difficult to find the actual beginning and to guess the true file type.
[0127] Further variants of groups are possible. The following can be stated as objectives: [0128] altering the structure [0129] changing the order, i.e. the arrangement [0130] preventing regularity [0131] altering the contents [0132] altering the form of the cipher compared to the original and resulting in effects on form, content, scope, order, structures, etc.
[0133] These objectives are enabled by applying the ARTOO principle, where any number (OO) of random numbers (R) are available; a fast transformation (T) takes place in an automated (A) manner.
[0134] Further types of groups are conceivable. If many different types of groups are used within a file, a general entry in a configuration file is no longer sufficient. In that case, a group header must contain the peculiarities of the individual group of characters.
[0135] Accordingly, e.g. in emergencies, a limited encryption strength can ensure a minimum level of security during the communication. For differentiation, the version 0.0 is used in the header and uses an individual start position. Even in the case of a disaster, where the basis of data has broken down, an SOS radio message can be sent to the coastguard. Pirates can receive these, but not interpret them.
[0136]
[0137] Here, the data are linked (⊕) with a particular function, such as XOR individually consecutively mathematically, in an information processing manner, and saved as cipher C, e.g. a=255, b=1
c=255 XOR 1=254
[0138] It is common to all presented methods that the conversion A⊕B=C finally takes place. At the start, a particularly simple conversion was presented by addition: a+b=c. This too, can be established by means of a Start Condition and can be employed in compact devices, such as in a smart home thermostat. Through identical settings in the configuration file (.ini) on all devices (individually at the factory as a set) with
[Composition]
Function=+
Maximum=100
the base B is reduced with regard to the value range of D, then the Maximum+1=101 is required as the value for modulo (remainder function). As 0 is reserved for the jump behaviour, the value range from raw data D
[1 . . . 255]
changes to a value range of base B
[0 . . . 100]
with the value range of the working data A as ASCII
[0 . . . 127]
the target range (target quantity) of the cipher C is calculated from 0 to 227:
a+b=c
0+0=0
127+100=227
and thus cannot be immediately identified as ASCII code or a protocol for machine control. This particular type of conversion is entirely new and unusual.
[0139] Therefore, it will be explained in detail for the decryption. The same conditions prevail in the case of decryption as in the case of encryption (Start Condition). Thus, always the same value can be formed from B, regardless of how many jumps, functions, and which algorithms, etc. have been used until then. The process and uniqueness shall be illustrated with the above example. Firstly, the value for b is formed again by modulo 101 from D
b=d%(Maximum+1)
with a value for d up to and including the maximum, this is
b=100%101=100
for values greater than the maximum, an alteration takes place through modulo, e.g. 201
b=201%101=100
then, in both cases, according to the above example c=227
a=c−b
a=227−100=127
[0140] It is evident that a lot more conversions can now be used. Combinations or complex pictures can be used, as long as the inverse yields the actual original value without any loss. Regulation is performed by transition of the raw data D to the base data B.
[0141] The presented examples show various possibilities of influencing: [0142] with the first digital data A as processing of the data [0143] with the second digital data B as adaptations of the data [0144] with the formation of the cipher C as conversion of the data [0145] and in meaningful combination A, B, C
[0146] If several steps of the presented examples are employed one after the other, the steps must be executed in reverse order for the decryption. Only a few, particularly simple examples are mentioned here. The scope of functions is larger in practical application and is provided as a set of functions for the different matters. The actual selection and control is performed in accordance with the ARTOO principle in a non-predictable order (the R in ARTOO) with a non-forecastable quanitity (the OO). In this case, the scope of the functions is expandable (the OO), and therefore increases from version to version. As an overview, a quantity of functions would be conceivable in the respective sets, wherein the Version 2 assumes the existing 50 to be downwardly compatible (so that previous files from Version 1 can continue to be decrypted):
TABLE-US-00011 Set (depending on the task) Version 1.0 Version 2.0 Start position 10 20 Jump behaviour 5 30 Base current B 10 40 Working current A 20 100 Conversion cipher C 5 10 Total 50 200
[0147] The final example takes up the situation at the beginning. There, a letter ‘p’ with 3*16 values of 0 to 15 was consulted to illustrate the pattern formation. The following example shows the power of this encryption through exclusive use of the addition. The variance of B has been increased by beginning at position 11, an auxiliary variable accu (Accumulate) for adding up 7 equal values, up to a maximum of 5 different values, which are not permitted to exceed a total of 100, as shown by
[0148] A cipher emerges from this through addition of 112 to the letter ‘p’ which is always the same from the working data to be encrypted, a pattern which is much harder to recognise, as depicted by
[0149] The last example,