Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
ENCRYPTING PLAINTEXT OR DECRYPTING CIPHERTEXT USING A POLYALPHABETIC/SUBSTITUTION CIPHER
Document Type and Number:
WIPO Patent Application WO/2020/095034
Kind Code:
A1
Abstract:
A system for and method of encrypting a plaintext string. For each portion of the plaintext string, a substitution number and a repositioning number are generated, these two numbers having a predetermined mathematical relationship. The repositioning numbers are used to rearrange the portions of the plaintext string (to form an intermediate string) and the substitution numbers are used to substitute portions of the intermediate string with encoded portions. Concepts extend to a corresponding method of decrypting a ciphertext string.

Inventors:
DUNKLEY ADAM (GB)
Application Number:
PCT/GB2019/053126
Publication Date:
May 14, 2020
Filing Date:
November 05, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
DUNKLEY ADAM (GB)
International Classes:
H04L9/06
Foreign References:
US10043036B12018-08-07
Other References:
ANONYMOUS: "Advanced Encryption Standard - Wikipedia", 2 November 2018 (2018-11-02), XP055659045, Retrieved from the Internet [retrieved on 20200117]
Attorney, Agent or Firm:
ELKINGTON AND FIFE LLP (GB)
Download PDF:
Claims:
CLAIMS:

1. A method of encrypting a plaintext string into a ciphertext string, each string being formed of a sequence of portions, the method comprising:

initializing an intermediate string formed of a sequence of portions;

performing, for each portion of the plaintext string, iterative steps of:

obtaining a substitution number

obtaining a repositioning number, the repositioning number having a predetermined numerical relationship with the substitution number;

replacing a portion of the intermediate string with the portion of the plaintext string based on the repositioning number; and

associating the substitution number with a portion of the intermediate string, and

generating the ciphertext string by encoding each portion of the intermediate string to form a portion for the ciphertext string, using the substitution number associated with the said portion of the intermediate string.

2. The method of claim 1, wherein the step of obtaining a substitution number comprises modifying a substitution number used in a previous iterative step of obtaining the substitution number using a modifying algorithm to obtain the substitution number.

3. The method of claim 2, wherein, in a first iteration of obtaining the substitution number, the step of obtaining the substitution number comprises obtaining the substitution number from a cryptographic key.

4. The method of any preceding claim, wherein the step of associating the substitution number with a portion of the intermediate string comprises

identifying, from a plurality of substitution ciphers, a substitution cipher for the portion of the intermediate string based on the substitution number; and

associating the identified substitution cipher with the portion of the intermediate string.

5. The method of any preceding claim, wherein the step of replacing a portion of the intermediate string and the step of associating the substitution number are performed in parallel.

6. The method of any preceding claim, wherein the step of associating the substitution number with a portion of the intermediate string comprises:

overwriting the portion of the plaintext string with information generated based on the substitution number, wherein the overwritten portion of the plaintext string corresponds to a portion of the intermediate string.

7. The method of any preceding claim, wherein the step of obtaining the repositioning number comprises performing a first algorithm on the substitution number to obtain the repositioning number.

8. The method of claim 7, wherein performing the first algorithm comprises:

performing a trigonometric or inverse trigonometric function on the substitution number to obtain at least one trigonometric result; and

obtaining the repositioning number based on the at least one trigonometric result.

9. The method of claim 8, wherein the at least one trigonometric result comprises a plurality of trigonometric results, and the step of obtaining a repositioning number comprises selecting one of the plurality of trigonometric results based on a cryptographic key.

10. The method of any preceding claim, wherein the portion of the plaintext string is a character of the plaintext string and a portion of the ciphertext string is a character of the ciphertext string.

11. The method of any preceding claim, further comprising adding one or more null portions to the plaintext string, each null portion representing text to be ignored.

12. The method of claim 11, further comprising:

performing, for each null portion of the plaintext string, iterative steps of:

obtaining a substitution number for substituting a null portion of the plaintext string with a portion for the ciphertext string; obtaining a repositioning number, the repositioning number having a predetermined numerical relationship with the substitution number;

replacing a portion of the intermediate string with a portion of the plaintext string based on the repositioning number; and

associating the substitution number with a portion of the intermediate string;

13. The method of any preceding claim, further comprising, for each portion of the ciphertext string, iterative steps of:

substituting the portion of the ciphertext string with a replacement portion for the ciphertext string using a second substitution cipher, the second substitution cipher associating each possible portion of the ciphertext string with a respective replacement portion for the ciphertext string; and

modifying the second substitution cipher so that each possible portion of the ciphertext string becomes associated with a different respective replacement portion.

14. The method of claim 13, wherein the step of modifying the second substitution cipher is based on the substitution number associated with the portion of the intermediate string that formed the portion of the ciphertext string.

15. A method of encrypting a plaintext into a ciphertext, the method comprising:

dividing the plaintext into two or more plaintext strings; and

performing the method of any preceding claim on each plaintext string.

16. A method of decrypting a ciphertext string into a plaintext string, each string being formed of a sequence of portions, the method comprising:

generating an intermediate string by performing, for each portion of the ciphertext string, iterative steps of:

obtaining a substitution number;

obtaining a repositioning number, the repositioning number having a predetermined numerical relationship with the substitution number;

decoding the portion of the ciphertext string using the obtained substitution number, to thereby generate a portion of the intermediate string; and

associating the repositioning number with the decoded portion of the ciphertext string, and generating the plaintext string by repositioning each portion of the intermediate string to form a portion for the plaintext string, using the repositioning number associated with the said portion of the intermediate string.

17. The method of claim 16, wherein the step of obtaining the repositioning number comprises performing a first algorithm on the substitution number to obtain the repositioning number.

18. The method of claim 17, wherein performing the first algorithm comprises:

performing a trigonometric or inverse trigonometric function on the substitution number to obtain at least one trigonometric result;

obtaining the repositioning number based on the at least one trigonometric result.

19. A computer program comprising code means for implementing the method of any preceding claim when said program is run on a computer.

20. An encrypting device for encrypting a plaintext string into a ciphertext string, each string being formed of a sequence of portions, the encrypting device comprising a processing unit adapted to:

initialize an intermediate string formed of a sequence of portions;

perform, for each portion of the plaintext string, iterative steps of:

obtaining a substitution number;

obtaining a repositioning number, the repositioning number having a predetermined numerical relationship with the substitution number;

replacing a portion of the intermediate string with the portion of the plaintext string based on the repositioning number;

associating the substitution number with a portion of the intermediate string; generating the ciphertext string by encoding each portion of the intermediate string to form a portion for the ciphertext string, using the substitution number associated with the said portion of the intermediate string.

21. A decrypting device for decrypting a ciphertext string into a plaintext string, each string being formed of a sequence of portions, the decrypting device comprising a processing unit adapted to: generate an intermediate string by performing, for each portion of the ciphertext string, iterative steps of:

obtaining a substitution number;

obtaining a repositioning number, the repositioning number having a predetermined numerical relationship with the substitution number;

decoding the portion of the ciphertext string using the obtained substitution number, to thereby generate a portion of the intermediate string; and

associating the repositioning number with the decoded portion of the ciphertext string, and

generate the plaintext string by repositioning each portion of the intermediate string, using the repositioning numbers associated with each portion of the intermediate string.

Description:
ENCRYPTING PLAINTEXT OR DECRYPTING CIPHERTEXT USING A POLYALPHABETIC/SUBSTITUTION CIPHER

FIELD OF THE INVENTION

This invention relates to encryption methods and corresponding decryption methods.

BACKGROUND OF THE INVENTION

Data encryption, also called data enciphering or data encoding, is an important aspect of electronic communication. In particular, data encryption helps prevent unauthorized access to stored information or information that is transmitted across a publically accessible channel.

In order to securely transmit information or‘plaintext’, the transmitter may encrypt the plaintext using a cryptographic key, to generate‘ciphertext’ for transmittal. The receiver can decrypt the ciphertext using this same cryptographic key to thereby obtain the initial plaintext. Thus, the plaintext is securely sent to the receiver (as third parties are unable to read or understand the ciphertext without the cryptographic key). Both the transmitter and the receiver therefore require access to the same cryptographic key.

It has been previously proposed to use a pseudorandom number sequence, generated from a cryptographic key, to encrypt plaintext or decrypt ciphertext. Various encryption methods that use such a pseudorandom number sequence are well known in the prior art. One known encryption method uses respective numbers of a pseudorandom number sequence to replace portions of the plaintext with portions for the ciphertext (e.g. using a substitution cipher).

To generate a pseudorandom number sequence, a modifying algorithm is commonly used. Typically, a modifying algorithm is applied to a last number in the sequence to generate a subsequent pseudorandom number for the pseudorandom number sequence.

SUMMARY OF THE INVENTION

The invention is defined by the claims.

According to a first aspect of the inventive concept, there is provided a method of encrypting a plaintext string into a ciphertext string, each string being formed of a sequence of portions, the method comprising: initializing an intermediate string formed of a sequence of portions; performing, for each portion of the plaintext string, iterative steps of: obtaining a substitution number; obtaining a repositioning number, the repositioning number having a predetermined numerical relationship with the substitution number; and replacing a portion of the intermediate string with the portion of the plaintext string based on the repositioning number; associating the substitution number with a portion of the intermediate string, and generating the ciphertext string by encoding each portion of the intermediate string to form a portion for the ciphertext string, using the substitution number associated with the said portion of the intermediate string.

The proposed method encrypts a plaintext string by rearranging/scrambling the portions of the plaintext string, to form an intermediate string, and subsequently substituting each portion of the intermediate string with a portion for a ciphertext string.

It is a concept of the present invention that the number used for substituting a portion of the intermediate string with an encoded portion (i.e. a substitution number) has a mathematical relationship with a number that was used to define the location of a portion of the intermediate string (i.e. a repositioning number). This means that a scrambling and substituting of a plaintext string can be performed whilst generating fewer pseudorandom numbers, thereby increasing a security of the encryption methodology.

To bring this effect about, for each portion of the plaintext string, a substitution number is obtained, which is mathematically related to a repositioning number. Each repositioning number is used to position a respective portion of plaintext string within the intermediate string. Each substitution number is then associated with a portion of the intermediate string. It is not necessary for a substitution number to be associated with the portion of the intermediate string that was positioned using the repositioning number obtained from that substitution number.

The proposed method provides a highly secure encryption methodology. In particular, by performing both a scrambling and substitution step, there is a reduced likelihood that an unauthorised party will be able to crack an intercepted ciphertext, as typical cracking mechanisms (e.g. frequency analysis or identification of repeating word patterns) will be less capable of identifying shuffled and encrypted text.

As the repositioning numbers used to scramble or rearrange the plaintext string have a mathematical relationship with respective substitution numbers, a processing power required to encrypt the plaintext string is reduced, as fewer pseudorandom numbers need to be generated and steps of scrambling and identifying substitution information can be performed in parallel, without impacting a security of the encryption methodology. The step of obtaining a substitution number may comprise modifying a substitution number used in a previous iterative step of obtaining the substitution number using a modifying algorithm to obtain the substitution number.

Thus, the substitution number may be pseudorandomly generated for each iteration of obtaining a substitution number, in particular by modifying a previous iteration of the substitution number. Any suitable recursive algorithm for iteratively modifying a number may be used (such as any pseudorandom number generating algorithm known in the art).

In at least one example, in a first iteration of obtaining the substitution number, the step of obtaining the substitution number comprises obtaining the substitution number from a cryptographic key.

Thus, the substitution number may be initialized by reference to a cryptographic key. This enables a cryptographic key to define the encryption of a plaintext string, and enables ease of decryption of an encrypted plaintext string (i.e. a ciphertext string).

The step of associating the substitution number with a portion of the intermediate string may comprises identifying, from a plurality of substitution ciphers, a substitution cipher for the portion of the intermediate string based on the substitution number; and associating the identified substitution cipher with the portion of the intermediate string.

In other words, a polyalphabetic cipher table for encrypting the intermediate portion may be built by identifying substitution ciphers for each portion of the intermediate string, so that each portion of the intermediate string is encoded using a different column of the substitution cipher.

Use of different substitution ciphers for each portion of the intermediate text further increases the security of an encryption. In particular, it provides a one-to-many encryption methodology, that reduces a likelihood that common cipher-cracking techniques, frequency analysis in particular, work on the ciphertext.

Preferably, the step of replacing a portion of the intermediate string and the step of associating the substitution number are performed in parallel. This increases a processing speed and efficiency of the encryption methodology.

The present invention also innovatively recognises that a scrambling and determination of a future substitution to perform can be performed in parallel.

Preferably, the step of associating the substitution number with a portion of the intermediate string comprises overwriting the portion of the plaintext string with information generated based on the substitution number, wherein the overwritten portion of the plaintext string corresponds to a portion of the intermediate string. Thus, the plaintext string may be iteratively converted into a substitution information dataset. This reduces a memory usage of the encryption methodology, providing a more efficient encryption method.

Optionally, the step of obtaining the repositioning number comprises performing a first algorithm on the substitution number to obtain the repositioning number. This ensures that the substitution number and the repositioning number have a predetermined mathematical relationship,

By performing an algorithm on the substitution number (e.g. rather than performing another pseudorandom number generating step) a number of pseudorandom numbers available to a potential cracker is reduced, thereby increasing a security of the encryption methodology.

In at least one embodiment, performing the first algorithm comprises: performing a trigonometric or inverse trigonometric function on the substitution number to obtain at least one trigonometric result; and obtaining the repositioning number based on the at least one trigonometric result.

Preferably, the at least one trigonometric result comprises a plurality of trigonometric results, and the step of obtaining a repositioning number comprises selecting one of the plurality of trigonometric results based on a cryptographic key. This increases a security of the encryption method, as there are multiple possible options for the repositioning number, of which the correct one is identified by the cryptographic key. This reduces a likelihood that a potential cracker will be able to identify the repositioning number used, thereby increasing a security.

The portion of the plaintext string may a character of the plaintext string and a portion of the ciphertext string may be a character of the ciphertext string. Thus, each character of the plaintext string may be encoded separately. This reduces a required memory storage for a potential substitution cipher(s), as fewer potential values for the plaintext string need to be stored, and increases an overall security - as each character is separately encoded.

In at least one embodiment, the method comprises adding one or more null portions to the plaintext string, each null portion representing text to be ignored.

Adding null portions to the plaintext string further increases a security of the encryption. Null portions disrupt, for example, frequency analysis programs, as they cannot be distinguished (when encoded) from actual or intended data of the plaintext string.

Adding one or more null portions to the plaintext string may add a corresponding number of portions to the initialized intermediate string. The method may further comprise performing, for each null portion of the plaintext string, iterative steps of: obtaining a substitution number for substituting a null portion of the plaintext string with a portion for the ciphertext string; obtaining a repositioning number, the repositioning number having a predetermined numerical relationship with the substitution number; replacing a portion of the intermediate string with a portion of the plaintext string based on the repositioning number; and associating the substitution number with a portion of the intermediate string.

The method may further comprise for each portion of the ciphertext string, iterative steps of: substituting the portion of the ciphertext string with a replacement portion for the ciphertext string using a second substitution cipher, the second substitution cipher associating each possible portion of the ciphertext string with a respective replacement portion for the ciphertext string; and modifying the second substitution cipher so that each possible portion of the ciphertext string becomes associated with a different respective replacement portion.

In his way, the ciphertext string may be further encoded using a substitution cipher that is iteratively modified. This further increases encryption security.

Preferably, the step of modifying the second substitution cipher is based on the substitution number associated with the portion of the intermediate string that formed the portion of the ciphertext string.

There is also proposed a method of encrypting a plaintext into a ciphertext, the method comprising: dividing the plaintext into two or more plaintext strings; and performing the method previously described on each plaintext string.

Thus, a long plaintext may be divided into plaintext strings, each of which are individually encoded.

There is also proposed a method of decrypting a ciphertext string into a plaintext string, each string being formed of a sequence of portions, the method comprising: generating an intermediate string by performing, for each portion of the ciphertext string, iterative steps of: obtaining a substitution number; obtaining a repositioning number, the repositioning number having a predetermined numerical relationship with the substitution number; decoding the portion of the ciphertext string using the obtained substitution number, to thereby generate a portion of the intermediate string; and associating the repositioning number with the decoded portion of the ciphertext string, and generating the plaintext string by repositioning each portion of the intermediate string to form a portion for the plaintext string, using the repositioning number associated with the said portion of the intermediate string. The step of obtaining the repositioning number may comprise performing a first algorithm on the substitution number to obtain the repositioning number.

Performing the first algorithm may comprise: performing a trigonometric or inverse trigonometric function on the substitution number to obtain at least one trigonometric result; and obtaining the repositioning number based on the at least one trigonometric result.

There is also proposed a computer program comprising code means for implementing any previously described method when said program is run on a computer. Preferably, any one or more of the herein described methods are computer-implemented methods. Similarly, there may be provided a computer program comprising code means for implementing any herein described method when said program is run on a computer.

An encrypting device for encrypting a plaintext string into a ciphertext string, each string being formed of a sequence of portions, the encrypting device comprising a processing unit adapted to: initialize an intermediate string formed of a sequence of portions; perform, for each portion of the plaintext string, iterative steps of: obtaining a substitution number; obtaining a repositioning number, the repositioning number having a predetermined numerical relationship with the substitution number; replacing a portion of the intermediate string with the portion of the plaintext string based on the repositioning number; associating the substitution number with a portion of the intermediate string; generating the ciphertext string by encoding each portion of the intermediate string to form a portion for the ciphertext string, using the substitution number associated with the said portion of the intermediate string.

There is also proposed a decrypting device for decrypting a ciphertext string into a plaintext string, each string being formed of a sequence of portions and each sequence being of a predetermined length, the decrypting device comprising a processing unit adapted to: generate an intermediate string by performing, for each portion of the ciphertext string, iterative steps of: obtaining a substitution number; obtaining a repositioning number, the repositioning number having a predetermined numerical relationship with the substitution number; decoding the portion of the ciphertext string using the obtained substitution number, to thereby generate a portion of the intermediate string; and associating the repositioning number with the decoded portion of the ciphertext string, and generate the plaintext string by repositioning each portion of the intermediate string, using the repositioning numbers associated with each said portion of the intermediate string.

BRIEF DESCRIPTION OF THE DRAWINGS Examples of the invention will now be described in detail with reference to the accompanying drawings, in which:

Figure 1 illustrates a method of encrypting a plaintext string to form a ciphertext string according to an embodiment;

Figure 2 illustrates a method of generating a substitution and repositioning number for use in encrypting the plaintext string according to an embodiment;

Figure 3 illustrates a function used for generating a substitution and repositioning number according to an embodiment;

Figure 4 illustrates a step of obtaining an intermediate string during a method of encrypting a plaintext string according to an embodiment;

Figure 5 illustrates a step of obtaining a substitution information dataset during a method of encrypting a plaintext string according to an embodiment;

Figure 6 illustrates a method of encoding an intermediate string to form a ciphertext string according to an embodiment;

Figures 7 and 8 illustrate methods of further encoding a ciphertext string according to an embodiment;

Figure 9 illustrates a method of encrypting a plaintext string according to another embodiment of the invention;

Figure 10 illustrates a method of encrypting a plaintext according to an embodiment of the invention; and

Figure 11 illustrates an encrypting device for encrypting a plaintext string according to an embodiment of the invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

According to a concept of the invention, there is proposed a system for and method of encrypting a plaintext string. For each portion of the plaintext string, a substitution number and a repositioning number are generated, these two numbers having a predetermined mathematical relationship. The repositioning numbers are used to rearrange the portions of the plaintext string (to form an intermediate string) and the substitution numbers are used to substitute portions of the intermediate string with encoded portions. Concepts extend to a corresponding method of decrypting a ciphertext string.

Illustrative embodiments may be employed in encryption and/or decryption systems, for the secure transmission and/or storage of data.

A“string” is modelled as a sequence of one or more portions. Each portion of the sequence can therefore be associated with a particular location. In this way, the string comprises one or more locations at which a portion can be positioned.

In hereafter-described embodiments, each portion of a plaintext string to be encrypted is a single symbol (e.g. letter, character or number). However, in other embodiments, each portion of the plaintext string may represent a plurality of symbols or other data units (such as a portion of binary or hexadecimal information).

Figure 1 illustrates a method 1 of encrypting a plaintext string 10, to form a ciphertext string 11, according to an embodiment of the invention. As illustrated, the plaintext string is formed from a plurality of different portions lOa, lOb, lOc, so as to be formed from a sequence of portions to be encrypted.

To encrypt the plaintext string 10, an intermediate (scrambled) string 12 is generated along with a substitution information dataset 13 for encoding the intermediate string 12. The encoded intermediate string 12 forms the ciphertext string 11.

The intermediate string 12 is a scrambled version of the plaintext string 10, and each substitution information entry of the substitution information dataset 13 is associated with a respective portion of the intermediate string 12. The number of substitution information entries in the dataset is equal to the number of portions in the intermediate string.

The intermediate string 12 and the substitution information dataset 13 is generated by performing a process 14 on each portion lOa, lOb, lOc of the plaintext string 10.

Initially, before the process 14, the intermediate string 12 may be initialized (e.g. a blank sequence of portions may be generated). The number of portions in the initialized intermediate string may be equal to the number of portions in the plaintext string upon which process 14 is performed.

The process 14 comprises a step 15 of obtaining two numbers, a first number S and second number R, having a predetermined mathematical relationship. The first number S is hereafter labelled a“substitution number” S, and the second number R is hereafter labelled a “repositioning number” R.

The process comprises a step 16 of associating the substitution number S with a portion/location of the intermediate string 12. Preferably, in each iteration, the substitution number is associated with an earliest portion/location of the intermediate text that is not already associated with a substitution number.

Preferably, and as later described, a substitution number S is processed to generate a substitution information entry that is then associated with a portion/location of the intermediate string 12. In this way, a substitution information dataset 13 can be generated.

The process also comprises a step 17 of assigning the portion of the plaintext string to a location of the intermediate string using the repositioning number R. Thus, the repositioning number R is used to scramble a location of a portion of the plaintext string. In particular, step 17 may replace a portion of the intermediate string with a portion of the plaintext based on the repositioning number R.

Steps 16 and 17 can be performed in parallel, to thereby increase processing efficiency.

The substitution number S does not need to be associated with the portion of the intermediate string to which the portion of the plaintext string is assigned based on the repositioning number R. For example, and as illustrated, in a first iteration, the first portion lOa of the plaintext string may be assigned to a third location of the intermediate string 12 (based on the repositioning number R) and the substitution number S may be associated with a first location of the intermediate string 12.

This process 14 is repeated for each portion of the plaintext string, until the intermediate string 12 contains all portions of the plaintext string (but having a scrambled order), and a substitution information dataset 13 is generated, formed of a plurality of substitution information entries. It will be clear that in each iterative process 14, a substitution number S is associated with a different location of the intermediate string 12, so that a respective substitution information entry (that is generated based on the substitution number) is also associated with a respective location of the intermediate string.

The process 14 may therefore comprise a step 18 of determining whether all portions of the plaintext string 11 have been assigned to a location in the intermediate string. If all portions have been assigned, the process 14 ends; otherwise, process 14 is repeated.

When the process 14 has been completed for each portion of the plaintext string 10, the method 1 comprises a step 19 of encoding the intermediate string 12 using the substitution information dataset 13. In particular, each portion of the intermediate string is encoded using the information contained in the corresponding substitution information entry to thereby generate the ciphertext string 11. As previously identified, in preferable embodiments, step 16 comprises generating substitution information for a particular portion of the intermediate string using the substitution number S. This substitution information can be used to encode the associated portion of the intermediate string. The iterative performing of step 16 therefore results in the generation of a substitution information dataset 13, each entry of which is associated with a respective portion of the intermediate string 12.

By way of example, and as illustrated, a substitution number S may be processed in step 16 to identify which of a plurality of substitution ciphers (e.g. substitution cipher“1” or substitution cipher“2”) is used to encode an associated portion of the intermediate string. For example, a first substitution cipher may be associated with a first range of possible values for a substitution number, and a second, different substitution cipher may be associated with a second, different range of possible values for a substitution number and so on.

In this way, a substitution number S can be correlated to a substitution cipher in step 16, and the identified cipher used, in step 19, to encode a respective portion of the intermediate string according to known concepts. Step 16 may therefore comprise generating information identifying a substitution cipher for a portion of the intermediate string 12 and storing it as an entry in a substitution information dataset 13.

In other examples, each substitution number S is associated with a shift value for encoding an associated portion using a Caesar cipher. Thus, step 16 may comprise a step of processing the substitution number to generate a shift value for encoding using a Caesar cipher, which is stored as a substitution information entry of the dataset 13.

Other methods of encoding a portion of an intermediate string, or at least of generating information for encoding such a portion, based on a substitution number will be readily apparent to the skilled person.

Optionally, the step 15 of obtaining the two numbers R, S comprises generating the two numbers based on a cryptographic key C key , e.g. by applying an algorithm to the cryptographic key. Preferably, step 15 only comprises obtaining the two numbers R, S using the cryptographic key C key for a first iteration of step 14. In particular, step 15 may comprise, for a first iteration of the process 14, generating the two numbers by applying an algorithm to a cryptographic key.

In some embodiments, step 15 may comprise generating the two numbers using the substitution number S generated in a previous iteration of step 15. For example, step 15 may comprise modifying the substitution number of a previous iteration using a predetermined pseudorandom number generating algorithm, and using the modified substitution number to generate a new substitution number and repositioning number. For example, the modified substitution number may be set as a new substitution number, and an algorithm applied to the modified substitution number to generate the repositioning number.

Thus, the substitution number S may be pseudorandomly generated for each iteration of obtaining a substitution number, in particular by modifying a previous iteration of the substitution number S. Any suitable recursive algorithm for iteratively modifying a number may be used (e.g. such as any pseudorandom number generating algorithm known in the prior art).

In another embodiment, step 15 may comprise, in each iteration, obtaining a generating number (or“seed number”) for use in a subsequent iteration of step 15. Step 15 may therefore comprise generating three numbers (the substitution number S, the repositioning number R and a generating number), e.g. based on a generating number generated in a previous iteration of the process 14. Preferably, in a first iteration, step 15 comprises generating the three numbers using the cryptographic key C key -

Thus, step 15 may comprise obtaining a substitution number S and a repositioning number R based on a generating number (obtained either from the cryptographic key C key or generated in a previous step).

In some examples, this generating number is obtained based on a substitution number of a previous iteration. In further examples, the generating number is set as the substitution number S.

Figure 2 illustrates an embodiment of the step 15 of generating (at least) two numbers according to an embodiment of the invention.

Step 15 comprises a sub-step 21 of obtaining a generating number G, C key - As previously explained, the generating number G may be generated during a previous iteration of the process 14, may be obtained from the cryptographic key C key (e.g. for a first iteration), may be obtained by modifying a substitution number S from a previous iteration or may be obtained by modifying a repositioning number R from a previous iteration.

In one example, sub-step 21 comprises selecting a predetermined portion of the cryptographic key C key as the generating number or applying a predetermined algorithm to the cryptographic key to generate the generating number.

In another example, sub-step 21 comprises retrieving a stored generating number G (e.g. generated during a previous iteration).

In yet another example, sub-step 21 comprises modifying the substitution number or repositioning number of a previous iteration using a pseudorandom number generating step to generate a generating number. Any suitable algorithm for iteratively modifying a number may be used (e.g. such as any pseudorandom number generating algorithm known in the prior art).

Step 15 further comprises a sub-step 22 of using the generating number G, C key to obtain at least two numbers Bi, B 2 , B N that have a predetermined mathematical relationship. Two of these numbers are identified as the first number Bi (for obtaining the substitution number S) and the second number B 2 (for obtaining the repositioning number R).

In embodiments, at least three numbers Bi, B 2 , B N are obtained, each of which is used to define the substitution number, the repositioning number and the generating number respectively.

In some examples, sub-step 22 may comprise setting the generating number G as the substitution number S and applying a function to the generating number to generate the repositioning number. In such an example, sub-step 21 may comprise modifying a substitution number of a previous iteration to obtain the generating number, and thereby substitution number of the current iteration (e.g. using any known modification technique, such as those used in conventional pseudo-random number generators).

In another example, sub-step 22 may comprise setting the obtained generating number G as the repositioning number and applying a function to the generating number to generate the substitution number.

In another example, sub-step 22 may comprise applying a function having multiple possible answers to the generating number obtained in sub-step 21, two of which are identified as the substitution number S and the repositioning number R respectively, and optionally a third of which is identified as a generating number G for a subsequent iteration.

In yet another example, sub-step 22 may comprise applying a predetermined function to the generating number obtained in sub-step 21, and setting the answer as one of the substitution number or repositioning numbers. Sub-step 22 may also comprise identifying other input values for the predetermined function that result in the same answer (as when the function was applied to the generating number), and selecting one of the other input values as the other one of the substitution or repositioning numbers.

Thus, step 15 applies a process that obtains, as input, a generating number and outputs at least two numbers, for use as the substitution number and the repositioning number. The substitution number and the repositioning number thereby have a predetermined numerical/mathematical relationship. As previously explained, the substitution/repositioning number (or modified versions thereof) may be used in a subsequent iteration of step 14 as the generating number. In other words, the substitution/repositioning number may be used as (or further processed to obtain) a generating number for a subsequent iteration. Alternatively, the applied algorithm may output at least three numbers, including the substitution number, the repositioning number and a generating number for a subsequent iteration.

In one example, there is a first function, wherein at least one of the following is true: applying the first function to the generating number (obtained in sub-step 21) results in the substitution number and applying the first function to the repositioning number results in the substitution number;

applying the first function to the substitution number results in the generating number (obtained in sub-step 21) and applying the first function to the repositioning number results in the generating number; or

applying the first function to the substitution number results in the repositioning number and applying the first function to the generating number (obtained in sub-step 21) results in the repositioning number.

Thus, in one embodiment, performing an inverse of the first algorithm to the substitution number results in the repositioning number or vice versa. In other examples, applying the first function to the substitution number generates the repositioning number or vice versa.

Thus, embodiments may make use of a first function in order to determine the substitution and/or repositioning number. Thus, the first function may define a mathematical relationship between the two numbers.

Preferably, the first function or algorithm is a trigonometric function.

By way of example, the first function, fix), may be in the form of: where x is the generating number and A, B and C are variables of the first function. One or more of the variables A, B and C may be omitted for the sake of simplicity.

Each of the variables A, B and C may be modified for each iteration of the step 15 (i.e. when step 14 is repeated). This increases an effective randomness of the generating system, thereby increasing security. The modification to the variables may be performed using any modifying algorithm, such as those used in conventional pseudorandom number sequence generators. To reduce processing power, a same algorithm can be used on each of the variables A, B and C.

Thus, the first function preferably comprises one or more variables that are modified between different iterations of step 15.

Figure 3 can be used to conceptually understand various embodiments for obtaining the substitution number and repositioning number that make use of the first function f(x). Figure 3 illustrates a plot of the first function fix), as set out in equation (1), for differing values of x.

In a first example, the substitution number is used as the generating number to generate the repositioning number. In other words, the generating number obtained in step 21 is set as the substitution number and is also used to generate the repositioning number. The substitution number has a value 35, which is identified on the y-axis. The substitution number may be effectively modified between different iterations of step 15 (e.g. by using the substitution number to generate a new generating number) using any known modifying algorithm, such as those used in conventional pseudorandom number sequence generators.

It will be clear that performing an inverse of the first function fix) on the substitution number 35 results in a plurality of trigonometric results, e.g. values 31, 32, 33, along the x- axis. Thus, there are a plurality of different values for which, when the first function is applied to them, result in the substitution number. One of these values is selected or processed to generate the repositioning number.

Thus, the step of obtaining the repositioning number comprises performing a first algorithm (here, an inverse of the function fix)) on the substitution number to obtain the repositioning number. In particular, the step comprises performing a trigonometric or inverse trigonometric function on the substitution number to obtain at least one trigonometric result; wherein the step of obtaining the repositioning number is based on the at least one trigonometric result.

In other words, it is determined which trigonometric result(s) generate the substitution number when input to the first function. One or more of these trigonometric results is selected/processed to obtain the repositioning number.

Preferably, the step of obtaining a repositioning number comprises selecting one of the plurality of trigonometric results based on a cryptographic key. In other words, the cryptographic key may be used to define which of the possible values 31, 32, 33 is selected as the repositioning number. For example, a particular digit of the cryptographic key may define which of a plurality of possible values to select as the repositioning number. Thus, the substitution number and the repositioning number have a predetermined numerical relationship.

In a second example, the substitution number and repositioning number is generated on the basis of a dedicated generating number.

In this second example, a location of a generating number 31 is identified on the x- axis. Applying the first function on the generating number 31 outputs a“trigonometric result” 35 - on the y-axis. It will be clear that applying this same first function fix) on other values of x (i.e. other input values) will result in the same trigonometric result 35. These same numbers are designated as“possible values” 32, 33.

The substitution number S and the repositioning number R (and optionally the generating number G for a subsequent iteration) can then be generated based on any one of the trigonometric result or possible values. This results in the substitution number S and the repositioning number R having a predetermined relationship.

Preferably, the trigonometric result 35 is used as the basis for the substitution number S and one of the possible values 32 (e.g. a value most proximate to the generating number 31) is processed for selection as the repositioning number R. Other methods of selecting one of the possible values 32, 33 will be apparent to the skilled person (e.g. using the cryptographic key).

For example, the substitution number may be: equal to the trigonometric result, a result of rounding the trigonometric result or a selection of predetermined digits of the trigonometric result (e.g. a predetermined number of digits after a decimal point). Other methods of identifying appropriate substitution information entries will be readily apparent to the skilled person (e.g. applying a predetermined algorithm). Similar methods may be adopted for processing a possible value 32 to generate the repositioning number. In other examples, this processing (e.g. rounding) may be performed in later steps 16, 17.

It is preferred for the trigonometric result on the y-axis to be used to generate the substitution number, because the trigonometric result on the y-axis will have a predetermined allowable range of values. This means that predetermined ranges can be set for defining substitution information (e.g. the identity of a substitution cipher) with respect to the y-axis trigonometric result, to enable suitable substitution information to be identified with ease.

Other examples for obtaining the substitution number and the repositioning number using the first algorithm fix) will be readily apparent to the skilled person. Other examples for the first algorithm fix) will also be apparent to the skilled person. The trigonometric function f(x) is preferably an aperiodic (i.e. non-periodic), alternating function. Here, the term“alternating function” means that if the function is performed on values spanning from 0 to ¥, the output of the function will cross a threshold value (typically 0) multiple times. This ensures that a plurality of possible values can be obtained (as the function alternates). An aperiodic function increases the security of the encoding methodology.

As illustrated in Figure 3, the trigonometric function need not be periodic, although it may be in other embodiments. Similarly, a trigonometric characteristic is not essential, and the first function may be replaced by any other function, preferably an aperiodic alternating/oscillating function.

Figure 4 illustrates, in more detail, an embodiment of step 17 that is performed iteratively to process the plaintext string 10 so as to generate the intermediate string 12.

The cryptographic key C key is processed in step 15 to obtain a first repositioning number Ri, and a first generating number Gi (which may be the substitution number).

In step 41, a first portion lOa of the plaintext string 10 is assigned to a location of the intermediate string 12 based on the first repositioning number Ri.

In a preferred embodiment, the first repositioning number Ri indicates a number of places that the first portion lOa should be shifted relative to its location in the plaintext string 10

In some examples, step 41 may comprise processing the repositioning number to obtain the shift value. For example, the repositioning number may be rounded to a nearest integer. In another example, a predetermined number of digits of the repositioning number (e.g. the first two digits after a decimal point) are selected as the shift value.

In the illustrated example, the (processed) first repositioning number Ri has a value 1, and the first portion lOa is shifted one place to the right.

If the repositioning number is greater than a number of available positions, the shifting may cycle around the intermediate string. For example, in the illustrated example, the first repositioning number Ri may alternatively have a value of 4, 7, 10 and so on (assuming a right shift occurs), and still lie in a same location in the intermediate string 12.

The shift may occur to the left or right in different embodiments. In some examples, the direction of the shift alternates for each consecutive iteration of the step 14, or otherwise follows a predetermined pattern. The direction of the shift may additionally or otherwise depend upon a value found in the cryptographic key C key· Such methods increase a security of the encryption. Step 15 is repeated (using the first generating number Gi) to obtain a second repositioning number R 2 and a second generating number G 2.

In step 42, the second portion of the plaintext string is assigned to a location in the intermediate string 12 based on the second repositioning number R 2. This may be performed in the same way as in step 41.

In step 42, if the location in the intermediate string 12 indicated by the second repositioning number R 2 is occupied (e.g. by the relocated first portion lOa of the plaintext string), the next available location (e.g. immediately to the left or right, preferably depending upon the direction of the shift) is selected.

For example, if step 42 comprises shifting the second portion lOb of the plaintext string by the repositioning number, e.g. which has a value of 0 or 3, the second portion may be assigned to the next available space (i.e. immediately to a right, assuming a right shift is used).

Step 15 is then repeated again, to generate a third repositioning number R 3. Step 43 comprises assigning the third portion lOc of the plaintext string to a location of the intermediate string 12 based on the third repositioning number, according to any previously described method.

The above-described method for generating the intermediate string may be appropriately adapted for different lengths of the plaintext string and/or intermediate string.

Of course, the repositioning numbers may need to be pre-processed in steps 41, 42, 43 (e.g. rounded, or select number of digits identified) to determine how a repositioning takes places. The need to pre-process will depend upon the embodiment.

Other (non-shifting) embodiments for rearranging the portions of the plaintext string based on respective repositioning numbers will be readily apparent to the skilled person, such as associating each location in the intermediate string with a range of repositioning numbers, and assigning a portion of the plaintext string to a respective location based on the nearest available range of repositioning numbers.

Figure 5 illustrates a detailed embodiment of step 16 that is iteratively performed to generate the substitution information dataset 13.

As previously explained, in iteratively performed step 15, respective substitution numbers Si, S 2 and S 3 are generated.

In step 51, a first substitution number Si is processed to generate a first entry for the substitution information dataset 13. Likewise, in step 52 a second substitution number S 3 is processed to generate a second entry for the substitution information dataset 13 and in step 53, a third substitution number S 3 is processed to generate a second entry for the substitution information dataset 13.

The steps 51, 52 and 53 may comprise, for example, rounding a substitution number to a nearest integer, identifying a cipher associated with a substitution number (and generating a substitution information entry identifying the cipher) or selecting a predetermined number of digits as an entry for the substitution information dataset.

Preferably, in order to save memory space, steps 51-53 comprise placing a respective substitution number in a vacant portion of the plaintext string (i.e. the portion that has been relocated or assigned a location within the intermediate string in step 16 of process 14).

In this way, there is proposed a concept in which a substitution number (or information generated based on the substitution number) replaces a portion of the plaintext string that has been assigned to a new location in the intermediate string. Thus, the plaintext string 10 is gradually converted into the substitution information dataset. In other words, a method may comprise overwriting a portion of the plaintext string with information generated based on the substitution number. The overwritten portion of the plaintext string corresponds to a portion of the intermediate string.

In some examples, the substitution number S is used as a generating number G (for generating repositioning and/or substitution numbers in subsequent iterations).

Figure 6 illustrates a method of a step 19 of encoding the intermediate string 12 using the substitution information dataset 13, to thereby generate the ciphertext string.

A substitution information entry may be associated with a particular substitution cipher 65, 66. As is well known in the art, a substitution cipher associates possible values for a portion of a string (e.g. the intermediate string) with encoded values.

Step 19 may therefore comprise a step 61 of identifying the substitution cipher associated with a substitution information entry. For example, a first substitution cipher 65 may be associated with a value“1” for a substitution information entry, and a second substitution cipher 66 may be associated with a value“2” for a substitution information entry.

In another example, each substitution cipher 65, 66 may be associated with a respective range of values for a substitution number (stored as a substitution information entry), and the appropriate substitution cipher can be selected.

Thus, the identifying of an appropriate substitution cipher may occur during step 19 or during generation of the substitution information entry (in step 16). As is known in the art, a substitution cipher correlates known possible values for a portion of the plaintext string (and therefore, in the described embodiment, the intermediate string) with an encoded portion or a substitute portion.

Step 19 also comprises a step 62 of substituting each portion of the intermediate string 12 with an encoded portion, using the substitution cipher 65, 66 corresponding with the substitution information entry associated with said portion of the intermediate string.

Thus, for example, a first portion l2a of the intermediate string 12 is associated with a first substitution information entry l3a of the substitution information dataset 13, this first substitution information entry l3a being respectively associated with a first substitution cipher 65. Thus, the first portion l2a of the intermediate string 12 is encoded in step 62 using a first substitution cipher 65, by identifying the encoded/substitute portion that the first substitution cipher 65 associates with the value of the first portion l2a.

Using a plurality of different substitutions cipher results in frequency analysis mechanisms (used for cracking transmissions) being less effective, as a same replacement value may represent multiple different values for the portions of the ciphertext. Thus, a security of the encryption methodology is increased.

The substitution ciphers 65, 66 may be stored in a substitution cipher database 61.

Preferably, each substitution cipher 65, 66 is a column of one of a plurality of polyalphabetic ciphers, and a substitution information entry identifies an identity of the polyalphabetic ciphers and a column of the identified polyalphabetic cipher for use as a substitution cipher.

Figures 7 and 8 illustrates optional further steps to increase a security of the encryption process.

Figure 7 illustrates a method 70 of further encoding the ciphertext string 11. The method comprises performing iteratively performing a number of steps on each portion of the ciphertext string.

The method 70 starts with step 71 of encoding the portion of the ciphertext string 11 using a substitution cipher 79. The substitution cipher provides, for each possible portion of the ciphertext string, a substitution portion to replace the portion of the cipher text string. Step 71 therefore comprises using the substitution cipher 79 to replace a respective portion X’ of the ciphertext string 11 with a replacement portion X”.

The method 70 then moves to optional step 72, in which the substitution cipher is modified. This means that, for a subsequent iteration of method 70 (and therefore a different portion of the ciphertext stirng), the substitution cipher is different. This increases a security of the encryption methodology, by ensuring that a substitution cipher is modified for each iteration. An example of a method of modifying the substitution cipher 79 will be described later.

Moreover, by using a substitution cipher that is modified for each portion of the ciphertext string, frequency analysis mechanisms (used for cracking transmissions) will be less effective, as a same replacement value may represent multiple different values for the portions of the ciphertext.

The method 70 then, in step 73, checks whether all portions of the ciphertext string have been further encoded using the substitution cipher. In response to all portions of the ciphertext string being further encoded, the method 70 ends.

In this way, a modified ciphertext string 1 G is produced and can be output.

Figure 8 is used to illustrate a method 72 of modifying the substitution cipher 79.

As illustrated in Figure 8, the substitution cipher correlates possible portions Pi - P N of the ciphertext string to respective replacement portions Ei - E N. Step 72 comprises rotating or shifting the possible portions Pi - P N by a number M so that each possible portion become associated with a different respective replacement portion, i.e. a new substitution cipher is generated.

The skilled person will understand that the shifting may cause the possible portions to loop or cycle around (i.e. a last possible portion will shift around to become a first possible portion).

The direction of the shift may be determined based, for example, on a direction of a previous shift or the cryptographic key. In one example, the direction of the shift alternates between different iterations, with a first direction being defined by the cryptographic key. In other examples, the cryptographic key defines the direction of the shift.

In some examples, the step of modifying the second substitution cipher is based on the substitution number associated with the portion of the intermediate string that formed the portion of the ciphertext string 11. This increases a randomness of the shifting.

For example, the substitution number may define a number of shifts M. In other examples, the number of shifts M is pseudorandomly generated (e.g. using a known pseudorandom number sequence generator).

The direction of the shift may also depend upon the substitution number. For example, an odd substitution number may cause a shift to occur in a first direction, whereas an even substitution number may cause a shift to occur in a second, opposite direction. Figure 9 illustrates optional further steps that may be applied to any above described embodiment to further improve security. In particular, Figure 9 illustrates a method 90 in which null portions are added to the plaintext string to increase encryption security.

The method 90 comprises step 91 of adding one or more null portions to the plaintext string 10, each null portion representing text or information to be ignored. Thus, step 91 extends the plaintext string 10 with null portions, being portions that do not contain information necessary relevant to the plaintext string (i.e. it can be ignored). In this way, an extended plaintext string 10’ is generated.

These null portions are processed in step 14 (previously described) in a substantially identical manner to the existing portions of the plaintext string 10. In other words, each portion of the extended plaintext string 10’ (including the null portions) is processed so as to be repositioned within the intermediate string, and to identify a substitution number (and preferably substitution information) for encoding each portion.

In this way, an intermediate string 12 is generated, comprising a rearrangement of the original portions of the plaintext string 10 and the additional null portions. A substitution information dataset 13 is also generated, each entry of which corresponds to a different portion of the intermediate string.

When the intermediate string is initialized (i.e. before performing step 14), the number of portions of the intermediate string is equal to the number of portions of the extended plaintext string 10’ (including the null portions).

Methods of encoding a null portion will be readily apparent to the skilled person. By way of example only, a substitution information entry (of a substitution information dataset) may indicate which of a plurality of substitution ciphers is to be used to encode a null portion, where each substitution cipher contains a encoded/substitution portion for the null portion (i.e. indicates a substitute portion 92 for the null portion).

There may be a plurality of different types of null portion, each of which may be (in any given substitution cipher) associated with a different substitute portion. Thus a substitution cipher may indicate substitution portions for a plurality of different null portions.

A null portion may represent a symbol or portion to be ignored, and may contain data indicative or representative of information to be ignored.

Figure 10 illustrates a method 100 of encoding a plaintext 108. The method 100 comprises a step 101 of dividing or splitting the plaintext 108 into two or more plaintext strings 10. The method 100 then comprises performing any previously described encoding method 1, 90 on each plaintext string 10, to thereby generate a respective two or more ciphertext strings.

Thus, for example, method 100 may comprise iteratively performing a process 102 on each separate plaintext string. The process 102 comprises performing the plaintext encoding method 1, 90 of any previously described method on each plaintext string 10, and determining in step 103 whether each plaintext string has been encoded.

In response to each plaintext string being encoded, the method outputs respective two or more ciphertext strings. If each plaintext string has not been encoded, the process 102 is repeated.

In some embodiments, the method 100 further comprises combining or concatenating the ciphertext strings 12 together, to thereby form a ciphertext 109.

In other examples, the previously described method of encoding a plaintext string 10 is performed on a stream of plaintext, by dividing the steam into plaintext strings of a predetermined length. This enables the encoding mechanism to take place in real time.

The skilled person would be readily capable of developing a processing system for carrying out a previously described method. Thus, each step of the flow chart may represent a different action performed by a processing system, and may be performed by different modules of the processing system. The processing system may, for example, be an encrypting/decrypting device.

Figure 11 illustrates an encrypting device 110 for encrypting a plaintext string 10 into a ciphertext string 11, each string being formed of a sequence of portions.

The encrypting device 110 comprises a processing unit 111 adapted to: initialize an intermediate string formed of a sequence of portions; perform, for each portion of the plaintext string, iterative steps of: obtaining a substitution number for substituting a portion of the plaintext string with a portion for the ciphertext string; obtaining a repositioning number, the repositioning number having a predetermined numerical relationship with the substitution number; replacing a portion of the intermediate string with the portion of the plaintext string based on the repositioning number; associating the substitution number with a portion of the intermediate string. The processing unit 111 is further adapted to substitute each portion of the intermediate string with a portion for the ciphertext string, using the substitution number associated with each portion of the intermediate string, to thereby generate the ciphertext string. The skilled person would be readily capable of reversing any of the above-described methods in order to provide a decryption method or system. Thus, there are proposed corresponding decryption methods and decrypting systems.

Aspects of the present invention are described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.

The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

Thus, it will be understood that disclosed methods are preferably computer- implemented methods. As such, there is also proposed the concept of computer program comprising code means for implementing any described when said program is run on a computer. Thus, different portions, lines or blocks of code according to an embodiment may be executed by a processor/computer to perform any herein described method.

Other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage. Any reference signs in the claims should not be construed as limiting the scope.