Self-corrector randomisation-encryption and method
First Claim
1. Data sequence self-corrector randomisation-encryption system (501) for generating an encrypted and random sequence from a plaintext sequence (X) by the use of a freely selectable encryption key (K) comprising:
- first input means (511) for receiving said plaintext sequence (X),second input means (512) for receiving said encryption key (K),corrective randomising-encrypting means for correctively randomising-encrypting said plaintext sequence (X) with said encryption key (K) generating a candidate randomised-encrypted text sequence (AP), and for generating on the basis of a randomness verification result (T) a new candidate randomised-encrypted text sequence (AP),randomness verifying means (603) for verifying randomness of said candidate randomised-encrypted text sequence (AP) based on a predetermined randomness test and supplying said randomness verification result (T) in order to generate said new candidate randomised-encrypted text sequence (AP), and supplying said candidate randomised-encrypted text sequence (AP) as randomised-encrypted text sequence (A) if said randomness test indicates that said candidate randomised-encrypted text sequence (AP) is random,transmission means (513) for transmitting said randomised-encrypted text sequence (A), whereby said randomised-encrypted text sequence (A) corresponds to said plaintext sequence (X) received by said first input means (511),whereby said randomized-encrypted text sequence (A) is encrypted, andwhereby the confusion and diffusion of values of said randomised-encrypted text sequence (A) is ensured.
0 Assignments
0 Petitions
Accused Products
Abstract
Method and system wherein that once the input data sequence (X) and the control block (K) have been supplied, the method and system generates always a sequence of randomized-encrypted data (A) which is an encrypted sequence of random numbers. The method and system randomize-encrypt the data sequence (X) in a corrective way generating the proposed randomized-encrypted text sequence (AP). The randomness verifier (603) validates the randomization of the proposed randomized-encrypted text sequence (AP). If the proposed randomized-encrypted text sequence (AP) is random, it is supplied as randomized-encrypted text sequence (A); if it is not random, the method and system randomize-encrypt the data sequence (X) in a different corrective way again. The iteration is repeated until it is encrypted and at random the proposed randomized-encrypted text sequence (AP).
-
Citations
46 Claims
-
1. Data sequence self-corrector randomisation-encryption system (501) for generating an encrypted and random sequence from a plaintext sequence (X) by the use of a freely selectable encryption key (K) comprising:
-
first input means (511) for receiving said plaintext sequence (X), second input means (512) for receiving said encryption key (K), corrective randomising-encrypting means for correctively randomising-encrypting said plaintext sequence (X) with said encryption key (K) generating a candidate randomised-encrypted text sequence (AP), and for generating on the basis of a randomness verification result (T) a new candidate randomised-encrypted text sequence (AP), randomness verifying means (603) for verifying randomness of said candidate randomised-encrypted text sequence (AP) based on a predetermined randomness test and supplying said randomness verification result (T) in order to generate said new candidate randomised-encrypted text sequence (AP), and supplying said candidate randomised-encrypted text sequence (AP) as randomised-encrypted text sequence (A) if said randomness test indicates that said candidate randomised-encrypted text sequence (AP) is random, transmission means (513) for transmitting said randomised-encrypted text sequence (A), whereby said randomised-encrypted text sequence (A) corresponds to said plaintext sequence (X) received by said first input means (511), whereby said randomized-encrypted text sequence (A) is encrypted, and whereby the confusion and diffusion of values of said randomised-encrypted text sequence (A) is ensured. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. Data sequence self-corrector randomisation-encryption method (501) for generating an encrypted and random sequence from a plaintext sequence (X) by the use of a freely selectable encryption key (K) comprising the steps of:
-
(a) correctively randomising-encrypting said plaintext sequence (X) with said encryption key (K) and generating candidate randomised-encrypted text sequence (AP), (b) verifying randomness of said candidate randomised-encrypted text sequence (AP) based on a predetermined randomness test and repeating said step (a) as many times as necessary until said candidate randomised-encrypted text sequence (AP) is at random, being supplied said candidate randomised-encrypted text sequence (AP) as randomised-encrypted text sequence (A) when said randomness test indicates that said candidate randomised-encrypted text sequence (AP) is random, (c) transmitting said randomised-encrypted text sequence (A) via a transmission channel (513), whereby said randomised-encrypted text sequence (A) corresponds to said plaintext sequence (X), whereby said randomized-encrypted text sequence (A) is encrypted, whereby the confusion and diffusion of values of said randomised-encrypted text sequence (A) is ensured. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
said plaintext sequence (X) and making up signed plaintext sequence (XF), (e) correcting said signed plaintext sequence (XF) resulting in modified signed plaintext sequence (XM), (f) providing randomising-encrypting means (102) that with said encryption key (K) randomise-encrypt said modified signed plaintext sequence (XM) and generate said candidate randomised-encrypted text sequence (AP), whereby the method is arranged to adapt said plaintext sequence (X) in order to maximise confusion and diffusion of values in said randomised-encrypted text sequence (A).
-
-
26. The method of claim 25, further including self-correcting decrypting steps that by
making use of said encryption key (K) with said randomised-encrypted text sequence (A) generate said plaintext sequence (X) comprising: -
(g) providing decrypting means (104) that with said encryption key (K) decrypt said randomised-encrypted text sequence (A) and generate decrypted text sequence (XD), (h) correcting said decrypted text sequence (XD) and resulting in suggested plaintext sequence (XP), (I) generating generated signature of included plaintext sequence segment in said suggested plaintext sequence (XP) and repeating said step (h) as many times as necessary until said generated signature corresponds to included signature in said suggested plaintext sequence (XP), and supplying said included plaintext sequence segment in said suggested plaintext sequence (XP) as said plaintext sequence (X) when said generated signature corresponds to said included signature, whereby said plaintext sequence (X) corresponds to said randomised-encrypted text sequence (A).
-
-
27. The method of claim 26 wherein said step (e) in order to correct said signed plaintext sequence (XF) makes use of function F1 (said signed plaintext sequence (XF)), said step (h) in order to correct said decrypted text sequence (XD) makes use of function F2 (said decrypted text sequence (XD)), and
said step (e) implements said function F1 (said signed plaintext sequence (XF)) as F1′ - (XL,CR)=union of ((XLj oper+/−
CR) mod 2%), wherein said XL subblock of length L of sequence selected from the group consisting of said signed plaintext sequence (XF) and previous said modified signed plaintext sequence (XM), said L value preferably smaller than length selected from the group consisting of length of said modified signed plaintext sequence (XM) and length of said signed plaintext sequence (XF), said CR number of repetitions of said steps (e) and (f), said oper+/−
arithmetic operation, and said XLj subblock of order said j of said XL and of length said Qj,said step (h) implements said function F2 (said decrypted text sequence (XD)) as F2′
(XG,CD)=union of ((XGk oper−
/+ CD) mod 2Qi), wherein said XG subblock of length said L of sequence selected from the group consisting of said decrypted text sequence (XD) and previous said suggested plaintext sequence (XP), said CD number of repetitions of said step (h), said oper−
/+ reverse arithmetic operation to said oper+/−
, said XGk subblock of order said k of said XG and of length said Qj,said Qj value preferably smaller than said L.
- (XL,CR)=union of ((XLj oper+/−
-
28. The method of claim 24 wherein said step (a) of correctively randomising-encrypting said plaintext sequence (X) with said encryption key (K) includes the steps of:
-
(d) generating signature from said plaintext sequence (X) and assembling said signature to said plaintext sequence (X) and resulting in signed plaintext sequence (XF), (e) generating with said encryption key (K) candidate control block (KC), (f) providing randomising-encrypting means (102) that with said candidate control block (KC) randomise-encrypt said signed plaintext sequence (XF) and generate said candidate randomised-encrypted text sequence (AP), whereby the method is arranged to adapt said candidate control block (KC) in order to maximise confusion and diffusion of values in said randomised-encrypted text sequence (A).
-
-
29. The method of claim 28, further including self-correcting decrypting steps that by making use of said encryption key (K) with said randomised-encrypted text sequence (A) generate said plaintext sequence (X) comprising:
-
(g) said step (e) of generating with said encryption key (K) said candidate control block (KC), (h) providing decrypting means (104) that with said candidate control block (KC) decrypt said randomised-encrypted text sequence (A) and generate suggested plaintext sequence (XP), (I) generating generated signature of included plaintext sequence segment in said suggested plaintext sequence (XP) and repeating said steps (g) and (h) as many times as necessary until said generated signature corresponds to included signature in said suggested plaintext sequence (XP), and supplying said included plaintext sequence segment in said suggested plaintext sequence (XP) as said plaintext sequence (X) when said generated signature corresponds to said included signature, whereby said plaintext sequence (X) corresponds to said randomised-encrypted text sequence (A).
-
-
30. The method of claim 29 wherein said step (e) in order to generate said candidate control block (KC) makes use of function F3 (said encryption key (K)), and
said step (e) implements said function F3 (said encryption key (K)) as function F4(CR, said control block encryption key (K)), wherein said CR selected from the group consisting of number of repetitions of said steps (e) and (f) and number of repetitions of said steps (g) and (h), and said function F4(CR, said encryption key (K))=union of F7 (said CR, Ki)=union of ((Ki oper+/− - said CR) mod 2Qi), wherein said Qi value preferably smaller than length of said encryption key (K), said Ki subblock of order said I of said encryption key (K) and of length said Qi, and said oper+/−
arithmetic operation.
- said CR) mod 2Qi), wherein said Qi value preferably smaller than length of said encryption key (K), said Ki subblock of order said I of said encryption key (K) and of length said Qi, and said oper+/−
-
31. The method of claim 24 wherein said step (a) of correctively randomising-encrypting said plaintext sequence (X) with said encryption key (K) includes the steps of:
-
(d) generating signature from said plaintext sequence (X) and assembling said signature to said plaintext sequence (X) making up signed plaintext sequence (XF), (e) generating with said encryption key (K) plurality of encryption control subblocks (Z1-Z52) and, optionally, initiatory control subblock of length G (W), (f) assembling said signed plaintext sequence (XF) into multitude of plaintext blocks of length N (X), (g) correctingly generating multitude of transformer blocks (WT) optionally with said initiatory control subblock of length G (W), (h) grouping each said plaintext block of length N (X) with corresponding said transformer block (WT) and generating grouped interblock of length N (V), (I) providing encrypting-decrypting means (204) that with said plurality of encryption control subblocks (Z1-Z52) encrypt said grouped interblock of length N (V) and result in randomised-encrypted text block of length N (A), multitude of said randomised-encrypted text block of length N (A) make up said candidate randomised-encrypted text sequence (AP), whereby the method is arranged to self-adapt in order to maximise confusion and diffusion of values in said randomised-encrypted text sequence (A).
-
-
32. The method of claim 31, further including self-correcting decrypting steps that by making use of said encryption key (K) with said randomised-encrypted text sequence (A) generate said plaintext sequence (X) comprising:
-
(j) generating with said encryption key (K) plurality of decryption control subblocks (U1-U52) and, optionally, said initiatory control subblock of length G (W), (k) assembling said randomised-encrypted text sequence (A) into multitude of said randomised-encrypted text block of length N (A), (l) said step (g) of correctingly generating said multitude of transformer blocks (WT) optionally with said initiatory control subblock of length G (W), (m) providing said encrypting-decrypting means (204) that with said plurality of decryption control subblocks (U1-U52) decrypt said randomised-encrypted text block of length N (A) and result in decrypted interblock of length N (S), (n) grouping said decrypted interblock of length N (S) with corresponding said transformer block (WT) and generating said plaintext block of length N (X), multitude of said plaintext block of length N (X) make up suggested plaintext sequence (XP), (o) generating generated signature of included plaintext sequence segment in said suggested plaintext sequence (XP) and repeating said steps (l), (m) and (n) as many times as necessary until said generated signature corresponds to included signature in said suggested plaintext sequence (XP), and supplying said included plaintext sequence segment in said suggested plaintext sequence (XP) as said plaintext sequence (X) when said generated signature corresponds to said included signature, whereby said plaintext sequence (X) corresponds to said randomised-encrypted text sequence (A).
-
-
33. The method of claim 32 wherein said steps (g) and (l) of correctingly generating multitude of transformer blocks (WT) in order to generate nth said transformer block (WT) of said multitude of transformer blocks (WT) make use of function F8 (said initiatory control subblock of length G (W), nth minus one said randomised-encrypted text block of length N (A)), and
said steps (h) and (n) of grouping make use of exclusive-OR operation, and said steps (g) and (l) implement said function F8 (said initiatory control subblock of length G (W), nth minus one said randomised-encrypted text block of length N (A)) as F10n(CR, said initiatory control subblock of length G (W)) XOR said nth minus one said randomised-encrypted text block of length N (A), wherein said n takes the value of nth, and said CR selected from the group consisting of number of repetitions of said steps (g), (h) and (I), and number of repetitions of said steps (l), (m) and (n), and said steps (g) and (l) implement said function F10n (CR, said initiatory control subblock of length G (W)) including at random number generator. -
34. The method of claim 32 wherein said steps (g) and (l) of correctingly generating multitude of transformer blocks (WT) in order to generate said multitude of transformer blocks (WT) make use of function F14 (said initiatory control subblock of length G (W)), and
said steps (h) and (n) of grouping make use of exclusive-OR operation, and said steps (g) and (l) implement said function F14 (said initiatory control subblock of length G (W)) for nth said transformer block (WT) as F15n (CR, said initiatory control subblock of length G (W)), wherein said CR selected from the group consisting of number of repetitions of said steps (g), (h) and (I), and number of repetitions of said steps (l), (m) and (n), and said steps (g) and (l) implement said function F155 (CR, said initiatory control subblock of length G (W)) including hash function. -
35. The method of claim 24 wherein said step (a) of correctively randomising-encrypting said plaintext sequence (X) with said encryption key (K) includes the steps of:
-
(d) generating selected index (IS), (e) correcting said plaintext sequence (X) according to said selected index (IS) and resulting in by-index modified plaintext sequence (XI), (f) providing randomising-encrypting means (102) that with said encryption key (K) randomise-encrypt said selected index (IS) and said by-index modified plaintext sequence (XI) and generate said candidate randomised-encrypted text sequence (AP), whereby the method is arranged to adapt said plaintext sequence (X) in order to maximise confusion and diffusion of values in said randomised-encrypted text sequence (A).
-
-
36. The method of claim 35, further including self-correcting decrypting steps that by making use of said encryption key (K) with said randomised-encrypted text sequence (A) generate said plaintext sequence (X) comprising:
-
(g) providing decrypting means (104) that with said encryption key (K) decrypt said randomised-encrypted text sequence (A) and generate extracted selected index (IS) and decrypted plaintext sequence (XD), (h) correcting according to said extracted selected index (IS) said decrypted plaintext sequence (XD) and resulting in said plaintext sequence (X), whereby said plaintext sequence (X) corresponds to said randomised-encrypted text sequence (A).
-
-
37. The method of claim 36 wherein said step (e) for correcting said plaintext sequence (X) makes use of function F17 (said selected index (IS), said plaintext sequence (X)), and said step (h) for correcting said decrypted plaintext sequence (XD) makes use of function F19 (said extracted selected index (IS), said decrypted plaintext sequence (XD)), and
said step (e) implements said function F17 (said selected index (IS), said plaintext sequence (X)) as F17′ - (said selected index (IS), XL)=union of F18 (said selected index (IS), XLj)=union of ((XLj oper+/−
said selected index (IS)) mod 2Qi), wherein said XL subblock of length L of sequence selected from the group consisting of said plaintext sequence (X) and previous said by-index modified plaintext sequence (XI), said L value preferably smaller than length selected from the group consisting of length of said plaintext sequence (X) and length of said by-index modified plaintext sequence (XI), said oper+/−
arithmetic operation, and said XLj subblock of order said j of said XL and of length said Qj, andsaid step (h) implements said function F19 (said extracted selected index (IS), said decrypted plaintext sequence (XD)) as F19′
(said extracted selected index (IS), XG)=union of F20 (said extracted selected index (IS), XGk)=union of ((XGk oper−
/+ said extracted selected index (IS)) mod 2%), wherein said XG subblock of length said L of said decrypted plaintext sequence (XD), said oper−
/+reverse arithmetic operation to said oper+/−
, said XGk subblock of order said k of said XG and of length said Qj, andsaid Qj value smaller than said L.
- (said selected index (IS), XL)=union of F18 (said selected index (IS), XLj)=union of ((XLj oper+/−
-
38. The method of claim 24 wherein said step (a) of correctively randomising-encrypting said plaintext sequence (X) with said encryption key (K) includes the steps of:
-
(d) generating initial selected index (IS) and alternative selected index (IS), (e) generating with said control block encryption key (K) and said initial selected index (IS), initial by-index control block (KI), and according to said alternative selected index (IS), alternative by-index control block (KI), (f) providing randomising-encrypting means (102) that randomise-encrypt said alternative selected index (IS) with said initial by-index control block (KI), and said plaintext sequence (X) with said alternative by-index control block (KI), and generate said candidate randomised-encrypted text sequence (AP), whereby the method is arranged to adapt said alternative by-index control block (KI) in order to maximise confusion and diffusion of values in said randomised-encrypted text sequence (A).
-
-
39. The method of claim 38, further including self-correcting decrypting steps that by making use of said encryption key (K) with said randomised-encrypted text sequence (A) generate said plaintext sequence (X) comprising:
-
(g) said step (e) of generating with said encryption key (K) and said initial selected index (IS), said initial by-index control block (KI), and according to extracted alternative selected index (IS), said alternative by-index control block (KI), (h) providing decrypting means (104) that decrypt said randomised-encrypted text sequence (A) and with said initial by-index control block (KI) result in said extracted alternative selected index (IS), and with said alternative by-index control block (KI) extracted result in said plaintext sequence (X), whereby said plaintext sequence (X) corresponds to said randomised-encrypted text sequence (A).
-
-
40. The method of claim 39 wherein said steps (e) and (g) for generating said initial by-index control block (KI) and said alternative by-index control block (KI) make use of function F21 (IS, said encryption key (K)), wherein said IS index selected from the group consisting of said initial selected index (IS) and said alternative selected index (IS) and said extracted alternative selected index (IS), and
said steps (e) and (g) implement said function F21 (IS, block encryption key (K)) as union of F24 (said IS, Kj)=union of ((Kj oper+/− - said IS) mod 2Qj), wherein said Qj value preferably smaller than length of said encryption key (K), said Kj subblock of order said j of said encryption key (K) and of length said Qj, and said oper+/−
arithmetic operation.
- said IS) mod 2Qj), wherein said Qj value preferably smaller than length of said encryption key (K), said Kj subblock of order said j of said encryption key (K) and of length said Qj, and said oper+/−
-
41. The method of claim 24 wherein said step (a) of correctively randomising-encrypting said plaintext sequence (X) with said encryption key (K) includes the steps of:
-
(d) generating with said encryption key (K) plurality of encryption control subblocks (Z1-Z52) and, optionally, initiatory control subblock of length G (W), (e) assembling said plaintext sequence (X) in multitude of plaintext blocks of length N (X), (f) generating selected index (IS), (g) by-index correctingly generating, optionally with said initiatory control subblock of length G (W), first multitude of transformer blocks (WT) and, with said selected index (IS), second multitude of transformer blocks (WT), (h) grouping said selected index (IS) with said first multitude of transformer blocks (WT) and said multitude of plaintext blocks of length N (X) with said second multitude of transformer blocks (WT), generating multitude of grouped interblocks of length N (V), (I) providing encrypting-decrypting means (204) that with said plurality of encryption control subblocks (Z1-Z52) encrypt said grouped interblock of length N (V) and result in randomised-encrypted text block of length N (A), multitude of said randomised-encrypted text block of length N (A) make up said candidate randomised-encrypted text sequence (AP), whereby the method is arranged to self-adapt in order to maximise confusion and diffusion of values in said randomised-encrypted text sequence (A).
-
-
42. The method of claim 41, further including self-correcting decrypting steps that by making use of said encryption key (K) with said randomised-encrypted text sequence (A) generate said plaintext sequence (X) comprising:
-
(j) generating with said encryption key (K) plurality of decryption control subblocks (U1-U52) and, optionally, said initiatory control subblock of length G (W), (k) assembling said randomised-encrypted text sequence (A) in multitude of said randomised-encrypted text block of length N (A), (l) said step (g) of by-index correctingly generating, optionally with said initiatory control subblock of length G (W), said first multitude of transformer blocks (WT) and, with extracted selected index (IS), said second multitude of transformer blocks (WT), (m) providing said encrypting-decrypting means (204) that with said plurality of decryption control subblocks (U1-U52) decrypt said randomised-encrypted text block of length N (A) and result in decrypted interblock of length N (S), (n) grouping first multitude of said decrypted interblock of length N (S) with said first multitude of transformer blocks (WT) and resulting in said extracted selected index (IS), and grouping second multitude of transformer blocks (WT) with second multitude of said decrypted interblock of length N (S) and generating multitude of said plaintext block of length N (X), said multitude of plaintext block of length N (X) make up said plaintext sequence (X), whereby said plaintext sequence (X) corresponds to said randomised-encrypted text sequence (A).
-
-
43. The method of claim 42 wherein said steps (g) and (l) for generating nth said transformer block (WT) make use of function F25 (IS, said initiatory control subblock of length G (W), nth minus one said randomised-encrypted text block of length N (A)), wherein said IS index selected from the group consisting of said selected index (IS) and said extracted selected index (IS), and
said steps (h) and (n) of grouping make use of exclusive-OR operation, and said steps (g) and (l) implement said function F25 (IS, said initiatory control subblock of length G (W), nth minus one said randomised-encrypted text block of length N (A)) as said initiatory control subblock of length G (W) XOR F29n (said IS, said nth minus one said randomised-encrypted text block of length N (A)), wherein said n takes the value of nth, and said steps (g) and (l) implement said function F29n (said IS, said nth minus one said randomised-encrypted text block of length N (A)) as union of F30N (said IS, Ain-1)=union of ((Ain-1 oper+/− - said IS) mod 2Qi), wherein said Qi value preferably smaller than length of said nth minus one said randomised-encrypted text block of length N (A), said Ain-1 subblock of order said I of said nth minus one said randomised-encrypted text block of length N (A) and of length said Qi, and said oper+/−
arithmetic operation.
- said IS) mod 2Qi), wherein said Qi value preferably smaller than length of said nth minus one said randomised-encrypted text block of length N (A), said Ain-1 subblock of order said I of said nth minus one said randomised-encrypted text block of length N (A) and of length said Qi, and said oper+/−
-
44. The method of claim 42 wherein said steps (g) and (l) for generating transformer block (WT) make use of function F31 (IS, said initiatory control subblock of length G (W)), wherein said IS index selected from the group consisting of said selected index (IS) and said extracted selected index (IS), and
said steps (h) and (n) of grouping make use of exclusive-OR operation, and said steps (g) and (l) implement said function F31 (IS, said initiatory control subblock of length G (W)) including hash function. -
45. The method of claim 26, further including the steps
(p) dividing said plaintext sequence (X) into multitude of plaintext subsequences of predetermined first length and supplying each said plaintext subsequence as said plaintext sequence (X) to said self-correcting randomising-encrypting steps, and (q) dividing said randomised-encrypted text sequence (A) into multitude of randomised-encrypted text subsequences of predetermined second length and supplying each said randomised-encrypted text subsequence as said randomised-encrypted text sequence (A) to said self-correcting decrypting steps. -
46. The method of claim 45 wherein said step of verifying randomness verifies randomness of said candidate randomised-encrypted text sequence (AP) by making use of randomness test wherein said randomness test includes dividing said candidate randomised-encrypted text sequence (AP) into 20000 bit subblocks and checking monobit test, poker test, runs test and long run test with each said 20000 bit subblock,
wherein said monobit test includes verifying that 9.654< - number of value 1 bits<
10.346,wherein said poker test includes dividing said 20000 bit subblock into 5000 4 bit segments, and calculating X=(16/5000)*(Σ
[f(i)2])−
5000, wherein said i value from 0 to 15 and said f(i) number of value i segments, and verifying that 1.03<
X<
57.4,wherein said runs test includes counting the number of runs of bits 0s and 1s of said 20000 bit subblock, wherein said runs number of consecutive bits of the same value, and verifying that 2.267<
=runs of 1<
=2.733, 1079 runs of 2<
=1421, 502<
=runs of 3<
=748, 223<
=runs of 4<
=402, 90<
=runs of 5<
=223, 90<
=runs of 6<
=223,wherein said long run test includes verifying that there is no said runs of length 34 or more.
- number of value 1 bits<
Specification