-
2013-11-05
13/623,215
2012-09-20
US 8,577,027 B1
2013-11-05
-
-
Samson Lemma
2032-09-20
Smart Summary: This method improves how data is encrypted and decrypted using a process called multilayer diffusion. It works by taking a piece of information (plaintext) and mixing it up using a password in multiple steps to create a scrambled version (ciphertext). The process can be done in different ways, such as point, block, or frame diffusion, which enhances security. After scrambling the data, the same steps are used in reverse to recover the original information. This approach allows for more complex calculations while making the encryption stronger than traditional methods. 🚀 TL;DR
The invention is related to working with variable diffusion functions on a multidimensional diffusion-area (plaintext/ciphertext); every diffusion function run in a cycle times, wherein repeating one certain times on the plaintext to get a ciphertext, and afterward, repeating the other times on the ciphertext to recover the plaintext, is performed in sequence to complete the encryption and the decryption. According to FIG. 1, the system comprises of: inputting a plaintext in encryption or a ciphertext in decryption 100; reading every password segment in order, forward in encryption or backward in decryption 200; and further, converting the plaintext dimensions by the password segment 300; implementing the diffusion function of Point 410, Block 420 or Frame 430, repeated TE times in encryption, TD times in decryption 400; going back to 200 until completing all password segments 500, and outputting the ciphertext in encryption or the plaintext in decryption 600.
Get notified when new applications in this technology area are published.
H04K1/00 IPC
Secret communication
The application is a continuation in part of the prior USPTO patent application titled “A Cryptographic Method of Multilayer Diffusion in Multidimension” filed on Mar. 18, 2010, application Ser. No. 12/726,833, which is incorporated herein by reference in its entirety.
The invention is related to working with variable diffusion functions on a multidimensional diffusion-area (plaintext/ciphertext); every diffusion function run in a cycle times, wherein repeating one certain times on the plaintext to get a ciphertext, afterward, repeating the other times on the ciphertext to recover the plaintext, is performed in sequence to complete the encryption and the decryption. Through at least one combination of point-diffusion, block-diffusion or frame-diffusion, the invention provides not only with a simpler multi-dimension calculation, but also with a higher security level.
The Applicant's following patent application is related to the invention and is incorporated herein by reference: “A Cryptographic Method of Multilayer Diffusion in Multidimension”, application Ser. No. 12/726,833, filed Mar. 18, 2010.
In the prior art, such as DES (Data Encryption Standard) and AES (Advanced Encryption Standard), the password only works for repeatedly mixing the plaintext. On the contrary, being able to set off any diffusion function, the password in the present invention may be taken as a crypto machine to randomly agitate the plaintext.
According to FIG. 1, the system comprises of: inputting a plaintext in encryption or a ciphertext in decryption 100; reading every password segment in order, forward in encryption or backward in decryption 200; and further, converting the plaintext dimensions by the password segment 300; implementing the diffusion function of Point 410, Block 420 or Frame 430, repeated TE times in encryption, TD times in decryption 400; going back to 200 until completing all password segments 500, and outputting the ciphertext in encryption or the plaintext in decryption 600.
Notation of Point-Diffusion:
A F ⋒ ( P . ) = A F ⋒ ( p 1 , p 2 , … , p n ) = ∑ k = 1 2 n AF ( C . k ) ⊕ ∑ i = 1 n { A d i ( p i ) } ,
A ^ F ⋒ ( P ^ ) = A ^ F ⋒ ( p ^ 1 , p ^ 2 , … , p ^ n ) = ∑ k = 1 2 n A ^ F ( C ^ k ) ⊕ ∑ i = 1 n { A ^ d ^ i ( p ^ i ) } ,
According to FIG. 2, from FIG. 1, 430 combined with 410, the flow chart comprises of: reading a diffusion-area A (plaintext/ciphertext) with a diffusion-center {dot over (P)}, a medium S with an anchor-point {dot over (S)}, and a frame F with an anchor-point {circumflex over (F)} and 2n corner-points Ĉk 201; anchoring the frame to the diffusion-center with its anchor-point 4311; implementing the frame function of point-diffusion A(p1, p2, . . . pn) 4312; thus, further implementing the point-diffusions AF(ck1, ck2, . . . , ckn), 1≦k≦2n, and Adi(pi), 1≦i≦n 4313.
For an example as FIG. 4, A is a size of 8×8 with {dot over (P)} at (4, 4), S is a size of 5×5 with {dot over (S)} at (1, 1), and F is a size of 7×7 with {dot over (F)} at (4, 4) and Ċ1 (1, 7), Ċ2 at (7, 7), Ċ3 at (7, 1), Ċ4 at (1, 1) 201; anchoring F to {dot over (P)} (4, 4) with {dot over (F)} (4, 4) 4311; correspondingly, pasting every Ċk to A and implementing A(4, 4) 4312; thus, further implementing AF(1, 7) , AF(7, 7) , AF(7, 1) and AF(1, 1) (may refer application Ser. No. 12/726,833, page 3-4.), {Ax(4)} and {Ay(4)} 4313, where calculations in detail are shown on FIG. 6.
Frame Function with Block-Diffusion:
According to FIG. 3, from FIG. 1, 430 combined with 420, the flow chart comprises of: reading a diffusion-area A (plaintext/ciphertext) with a diffusion-center {dot over (P)}, a medium S with an anchor-point {dot over (S)}, a unit-block B with an anchor-point {dot over (B)}, and a frame F with an anchor-point {dot over (F)} and 2n corner-points Ċk 202; anchoring the frame and the unit-block to the diffusion-center with their own anchor-point 4321; arranging the diffusion-area and its diffusion-center by the unit-block 4322; implementing the frame function of block-diffusion Â({circumflex over (p)}1, {circumflex over (p)}2, . . . {circumflex over (p)}n) 4323; thus, further implementing the block-diffusions ÂF(ĉk1, ĉk2, . . . , ĉkn), 1≦k≦2n, and Â{circumflex over (d)}i({circumflex over (p)}i), 1≦i≦n 4324.
For an example as FIG. 5, A is a size of 8×8 with {dot over (P)} at (4, 4), S is a size of 5×5 with {dot over (S)} at (1, 1), B is a size of 2×2 with {circumflex over (B)} at (1, 1), and F is a size of 7×7 with {dot over (F)} at (4, 4) and Ċ1 at (1, 7), Ċ2 at (7, 7), Ċ3 at (7, 1), Ċ4 at (1, 1) 202; anchoring F to {dot over (P)} (4, 4) with {dot over (F)} (4, 4), B to {dot over (P)} (4, 4) with {dot over (B)} (1, 1) 4321; correspondingly, arranging the 8×8 A to the 5×5 Â, the {dot over (P)} (4, 4) to the {circumflex over (P)} (3, 3) 4322; pasting every Ĉk to  and implementing Â(3, 3) 4323; thus, further implementing ÂF(1, 4), ÂF(4, 4), ÂF(4, 1) and ÂF(1, 1) (may refer application Ser. No. 12/726,833, page 7-8.), {Â{circumflex over (x)}(3)} and {Âŷ(3)} 4324, where all calculations in detail are shown on FIG. 7.
FIG. 1 is an exemplary flowchart in accordance with the present invention;
FIG. 2 is an exemplary detailed flowchart, frame diffusion of FIG. 1, adapted to run the frame function with point-diffusion;
FIG. 3 is an exemplary detailed flowchart, frame diffusion of FIG. 1, adapted to run the frame function with block-diffusion;
FIG. 4 is an exemplary block diagram in accordance with FIG. 2 adapted for two-dimensions;
FIG. 5 is an exemplary block diagram in accordance with FIG. 3 adapted for two-dimensions;
FIG. 6 is an exemplary detailed block diagram in accordance with FIG. 4;
FIG. 7 is an exemplary detailed block diagram in accordance with FIG. 5;
FIG. 8 is an exemplary block diagram in accordance with FIG. 2 adapted for three-dimensions.
Suppose that a plaintext A equals “smoother”, in which the ASCII code is 73 6d 6f 6f 74 68 65 72, stored in a 8×8 binary matrix as Table 1.
| TABLE 1 | |||||||||
| ASCII | 73 | 6d | 6f | 6f | 74 | 68 | 65 | 72 | |
| 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | ||
| 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | ||
| 0 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | ||
| 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | ||
| 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | ||
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||
Suppose that a password equals “Yourlips”, in which the ASCII code is 59 6f 75 72 6c 69 70 73. To clearly show the frame effect performed in the plaintext, the password firstly excludes the last digit 3, and secondly forms into octal format to get 26 26 75.65 34 46 61 51 34 07, and thirdly adds 1 to each digit; the positions are shown in as Table 2.
| TABLE 2 | ||||||||||
| ASCII | 26 | 26 | 75 | 65 | 34 | 46 | 61 | 51 | 34 | 07 |
| Row | 3 | 3 | 8 | 7 | 4 | 5 | 7 | 6 | 4 | 1 |
| Column | 7 | 7 | 6 | 6 | 5 | 7 | 2 | 2 | 5 | 8 |
Supposes that a medium
S
=
[
10011
01101
10111
10010
11101
]
,
{dot over (S)}=(1,1); a frame F is a size of 7×7 with {dot over (F)} at (4, 4), and Ċ1 at (1, 7), Ċ2 at (7, 7), Ċ3 at (7, 1), Ċ4 at (1, 1).
In addition, reads every diffusion-center in order, if from 1 to 10 on encryption, then from 10 back to 1 on decryption; counts the diffusion-cycle T=23+1=16 times; and further, sets up if 1 time on encryption, then 15 times on decryption.
By math expressions, in encryption, inputs the plaintext A as A0, runs the encryption as A01, A11, . . . A91 and obtains the output as A1, A2, . . . A10, thus, to get a ciphertext A10; reversely, in decryption, inputs the ciphertext A10, runs the decryption as A1015, A915, . . . A115 and obtains the output A9, . . . , A1, A0, thus, to recover the plaintext A.
When {dot over (F)} anchors to every {dot over (P)}, by running a frame function with point-diffusion every time, every Ċk is changed correspondingly; hereinafter,
Ċk=Ċk+{dot over (P)}−{dot over (F)},
and further,
Akt+1=Akt(p1,p2)=AktF(Ċ1)⊕AktF(Ċ2)⊕AktF(Ċ3)⊕AktF(Ċ4)⊕{Akxt(p1)}⊕{Akyt(p2)}.
The details taken from password positions 1, 5 and 10 are shown as below:
Encryption at the 1st diffusion-center (3,7):
A
0
1
=
A
F
⋒
(
3
,
7
)
=
AF
(
0
,
10
)
⊕
AF
(
6
,
10
)
⊕
AF
(
6
,
4
)
⊕
AF
(
0
,
4
)
⊕
{
A
x
(
3
)
}
⊕
{
A
y
(
7
)
}
=
[
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
]
=
A
1
.
Encryption at the 5th diffusion-center (4,5):
A 4 1 = A 4 F ⋒ ( 4 , 5 ) = A 4 F ( 1 , 8 ) ⊕ A 4 F ( 7 , 8 ) ⊕ A 4 F ( 7 , 2 ) ⊕ A 4 F ( 1 , 2 ) ⊕ { A 4 x ( 4 ) } ⊕ { A 4 y ( 5 ) } = [ 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 0 ] = A 5 .
Encryption at the 10 th diffusion - center ( 1 , 8 ) : A 9 1 = A 9 F ︵ ( 1 , 8 ) = A 9 F ( - 2 , 11 ) ⊕ A 9 F ( 4 , 11 ) ⊕ A 9 F ( 4 , 5 ) ⊕ A 9 F ( - 2 , 5 ) ⊕ { A 9 x ( 1 ) } ⊕ { A 9 y ( 8 ) } = [ 0 1 1 1 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 1 1 0 1 1 1 0 1 1 0 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 0 ] = A 10 .
Decryption
at
the
10
th
diffusion
-
center
(
1
,
8
)
:
A
10
15
=
A
10
14
F
︵
(
1
,
8
)
=
A
10
14
F
(
-
2
,
11
)
⊕
A
10
14
F
(
4
,
11
)
⊕
A
10
14
F
(
4
,
5
)
⊕
A
10
14
F
(
-
2
,
5
)
⊕
{
A
10
x
14
(
1
)
}
⊕
{
A
10
y
14
(
8
)
}
=
[
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
]
=
A
9
.
Decryption at the 5th diffusion-center (4,5):
A
5
15
=
A
5
14
F
⋒
(
4
,
5
)
=
A
5
14
F
(
1
,
8
)
⊕
A
5
14
F
(
7
,
8
)
⊕
A
5
14
F
(
7
,
2
)
⊕
A
5
14
F
(
1
,
2
)
⊕
{
A
5
x
14
(
4
)
}
⊕
{
A
5
y
14
(
5
)
}
=
[
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
]
=
A
4
.
Decryption at the 1st diffusion-center (3,7):
A 1 15 = A 1 14 F ⋒ ( 3 , 7 ) = A 1 14 F ( 0 , 10 ) ⊕ A 1 14 F ( 6 , 10 ) ⊕ A 1 14 F ( 6 , 4 ) ⊕ A 1 14 F ( 0 , 4 ) ⊕ { A 1 x 14 ( 3 ) } ⊕ { A 1 y 14 ( 7 ) } = [ 1 1 1 1 0 0 1 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 ] = A .
The Example 1 further joins with a unit-block B, wherein B is a size of 2×2 with {dot over (B)} at (1, 1); thus, the frame F, arranged by B, with the anchor-point {circumflex over (F)} at (3, 3) and the corner-points Ĉ1 (1, 4), Ĉ2 at (4, 4), Ĉ3 at (4, 1), Ĉ4 at (1, 1); reads every diffusion-center in order, if from 1 to 10 on encryption, then from 10 back to 1 on decryption; counts the diffusion-cycle T=22+1=8 times (due to di/bi=4=22); and further, sets up if 1 time on encryption, then 7 times on decryption.
By math expressions, in encryption, inputs the plaintext A as A0, runs the encryption as Â01, Â11, . . . Â91 and obtains the output as A1, A2, . . . A10, thus, to get a ciphertext A10; reversely, in decryption, inputs the ciphertext A10, runs the decryption as Â107, Â97, . . . Â17 and obtains the output A9, . . . , A1, A0, thus, to recover the plaintext A.
When {dot over (F)} and {dot over (B)} anchor to every {dot over (P)}, by running a frame function with block-diffusion every time, every Ĉk is changed correspondingly; hereinafter,
Ĉk=Ĉk+{circumflex over (P)}−{circumflex over (F)},
and further,
Âkt+1=Âkt({circumflex over (p)}1,{circumflex over (p)}2)=ÂktF(Ĉ1)⊕ÂktF(Ĉ2)⊕ÂktF(Ĉ3)⊕ÂktF(Ĉ4)⊕{Âk{circumflex over (x)}t({circumflex over (p)}1)}⊕{Âkŷt({circumflex over (p)}2)}.
The details taken from password positions 1, 5 and 10 are shown as below:
Encryption at the 1st diffusion-center (3,7):
A
^
0
1
=
A
^
F
⋒
(
2
,
4
)
=
A
^
F
(
0
,
5
)
⊕
A
^
F
(
3
,
5
)
⊕
A
^
F
(
3
,
2
)
⊕
A
^
F
(
0
,
2
)
⊕
{
A
^
x
^
(
2
)
}
⊕
{
A
^
y
^
(
4
)
}
=
[
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
]
=
A
1
.
Encryption at the 5th diffusion-center (4,5):
A
^
4
1
=
A
^
4
F
⋒
(
3
,
3
)
=
A
^
4
F
(
1
,
4
)
⊕
A
^
4
F
(
4
,
4
)
⊕
A
^
4
F
(
4
,
1
)
⊕
A
^
4
F
(
1
,
1
)
⊕
{
A
^
4
x
^
(
3
)
}
⊕
{
A
^
4
y
^
(
3
)
}
=
[
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
]
=
A
5
.
Encryption at the 10th diffusion-center (1,8):
A
^
9
1
=
A
^
9
F
︵
(
1
,
5
)
=
A
^
9
F
(
-
1
,
6
)
⊕
A
^
9
F
(
2
,
6
)
⊕
A
^
9
F
(
2
,
3
)
⊕
A
^
9
F
(
-
1
,
3
)
⊕
{
A
^
9
x
^
(
1
)
}
⊕
{
A
^
9
y
^
(
5
)
}
=
[
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
]
=
A
10
.
Decryption at the 10th diffusion-center (1,8):
A
^
10
7
=
A
^
10
6
F
︵
(
1
,
5
)
=
A
^
10
6
F
(
-
1
,
6
)
⊕
A
^
10
6
F
(
2
,
6
)
⊕
A
^
10
6
F
(
2
,
3
)
⊕
A
^
10
6
F
(
-
1
,
3
)
⊕
{
A
^
10
x
^
6
(
1
)
}
⊕
{
A
^
10
y
^
6
(
5
)
}
=
[
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
]
=
A
9
.
Decryption at the 5th diffusion-center (4,5):
A
^
5
7
=
A
^
5
6
F
︵
(
3
,
3
)
=
A
^
5
6
F
(
1
,
4
)
⊕
A
^
5
6
F
(
4
,
4
)
⊕
A
^
5
6
F
(
4
,
1
)
⊕
A
^
5
6
F
(
1
,
1
)
⊕
{
A
^
5
x
^
6
(
3
)
}
⊕
{
A
^
5
y
^
6
(
3
)
}
=
[
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
]
=
A
4
.
Decryption at the 1st diffusion-center (3,7):
A ^ 1 7 = A ^ 1 6 F ︵ ( 2 , 4 ) = A ^ 1 6 F ( 0 , 5 ) ⊕ A ^ 1 6 F ( 3 , 5 ) ⊕ A ^ 1 6 F ( 3 , 2 ) ⊕ A ^ 1 6 F ( 0 , 2 ) ⊕ { A ^ 1 x ^ 6 ( 2 ) } ⊕ { A ^ 1 y ^ 6 ( 4 ) } = [ 1 1 1 1 0 0 1 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 ] = A .
The Example 2 further joins with a switch set Y=[1011011101]; reads every diffusion-center and Y element in order, if from 1 to 10 on encryption, then from 10 back to 1 on decryption; counts the diffusion-cycle, if Y element is 1, then T=23+1=16 times for running with point-diffusions, otherwise, T=22+1=8 times for running with block-diffusions, and further, sets up if 1 time on encryption, then 15 or 7 times on decryption.
By math expressions, in encryption, inputs the plaintext A as A0, runs the encryption as A01,Â11,A21,A31,Â41,A51,A61,A71,Â81,A91 and obtains the output as A1,A2, . . . , A9,A10 thus, to get a ciphertext A10; reversely, in decryption, inputs the ciphertext A10, runs the decryption as A1015,Â97,A815,A715,A615,Â57,A415,A315,Â27,A115 and obtains the output A9,A8, . . . , A1,A0, thus, to recover the plaintext A.
The details taken from password positions 1, 5 and 10 are shown as below:
Encryption at the 1st diffusion-center (3,7): (Y(1)=1, point-diffusion)
A
0
1
=
A
F
︵
(
3
,
7
)
=
AF
(
0
,
10
)
⊕
AF
(
6
,
10
)
⊕
AF
(
6
,
4
)
⊕
AF
(
0
,
4
)
⊕
{
A
x
(
3
)
}
⊕
{
A
y
(
7
)
}
=
[
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
]
=
A
1
.
Encryption at the 5th diffusion-center (4,5): (Y(5)=0, block-diffusion)
A
^
4
1
=
A
^
4
F
︵
(
3
,
3
)
=
A
^
4
F
(
1
,
4
)
⊕
A
^
4
F
(
4
,
4
)
⊕
A
^
4
F
(
4
,
1
)
⊕
A
^
4
F
(
1
,
1
)
⊕
{
A
^
4
x
^
(
3
)
}
⊕
{
A
^
4
y
^
(
3
)
}
=
[
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
]
=
A
5
Encryption at the 10th diffusion-center (1,8): (Y(10)=1, point-diffusion)
A
9
1
=
A
9
F
︵
(
1
,
8
)
=
A
9
F
(
-
2
,
11
)
⊕
A
9
F
(
4
,
11
)
⊕
A
9
F
(
4
,
5
)
⊕
A
9
F
(
-
2
,
5
)
⊕
{
A
9
x
(
1
)
}
⊕
{
A
9
y
(
8
)
}
=
[
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
]
=
A
10
Decryption at the 10th diffusion-center (1,8): (Y(10)=1, point-diffusion)
A
10
15
=
A
10
14
F
︵
(
1
,
8
)
=
A
10
14
F
(
-
2
,
11
)
⊕
A
10
14
F
(
4
,
11
)
⊕
A
10
14
F
(
4
,
5
)
⊕
A
10
14
F
(
-
2
,
5
)
⊕
{
A
10
x
14
(
1
)
}
⊕
{
A
10
y
14
(
8
)
}
=
[
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
]
=
A
9
.
Decryption at the 5th diffusion-center (4,5): (Y(5)=0, block-diffusion)
A
^
5
7
=
A
^
5
6
F
︵
(
3
,
3
)
=
A
^
5
6
F
(
1
,
4
)
⊕
A
^
5
6
F
(
4
,
4
)
⊕
A
^
5
6
F
(
4
,
1
)
⊕
A
^
5
6
F
(
1
,
1
)
⊕
{
A
^
5
x
^
6
(
3
)
}
⊕
{
A
^
5
y
^
6
(
3
)
}
=
[
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
]
=
A
4
Decryption at the 1st diffusion-center (3,7): (Y(1)=1, point-diffusion)
A 1 15 = A 1 14 F ︵ ( 3 , 7 ) = A 1 14 F ( 0 , 10 ) ⊕ A 1 14 F ( 6 , 10 ) ⊕ A 1 14 F ( 6 , 4 ) ⊕ A 1 14 F ( 0 , 4 ) ⊕ { A 1 x 14 ( 3 ) } ⊕ { A 1 y 14 ( 7 ) } = [ 1 1 1 1 0 0 1 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 ] = A .
From the examples, a two-dimension area is turned into 4 subareas by running a frame function; thus, according to FIG. 8, it is easy to understand that a three-dimension area is then turned into 8 subareas and every subarea, under three-dimensions, is performed a point-diffusion or a block-diffusion (see more detail in application Ser. No. 12/726,833, page 4-6, 9-11); by the same way, the invention is well applied on a variable area of multi-dimensions.
In summation of the above description, the present invention herein complies with the constitutional, statutory, regulatory and treaty, patent application requirements and is herewith submitted for patent application. However, the description and its accompanied drawings are used for describing preferred embodiments of the present invention, and it is to be understood that the invention is not limited thereto. To the contrary, it is intended to cover various modifications and similar arrangements and procedures, and the scope of the appended claims therefore should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements and procedures.
1. A computer-implemented cryptographic method comprising a plaintext M run by at least one variable module stored in a memory to perform the following steps by a processor:
selecting a n-dimension diffusion-area A, wherein A is a d1×d2× . . . ×dn binary matrix and includes a diffusion-center {dot over (P)} at the coordinates (p1, p2, . . . pn);
selecting a frame function of point-diffusion A({dot over (P)}), wherein
A F ︵ ( P . ) = A F ︵ ( p 1 , p 2 , … , p n ) = ∑ k = 1 2 n AF ( C . k ) ⊕ ∑ i = 1 n { A d i ( p i ) } ;
setting a diffusion-cycle T, wherein T=2V−1, V=┌log2 ν┐, and ν=max(d1, d2, . . . , dn);
letting T=TE+TD, and the method further comprising steps of:
(a) encrypting M, wherein lets A=M and a ciphertext C=A{circumflex over (F)}(p1,p2TE, . . . , pn); and
(b) decrypting C, wherein lets A=C and the plaintext M=A{circumflex over (F)}(p1, p2TD, . . . , pn);
wherein the said encrypting and decrypting steps are run by the said computer-processor.
2. A computer-implemented cryptographic method comprising a plaintext M run by at least one variable module stored in a memory to perform the following steps by a processor:
selecting a n-dimension diffusion-area A, wherein A is a d1×d2× . . . ×dn binary matrix and includes a diffusion-center {dot over (P)} at the coordinates (p1, p2, . . . pn);
selecting a n-dimension unit-block B, wherein B is a u1×u2× . . . ×un binary matrix and includes an anchor-point {dot over (B)} at the coordinates (b1, b2, . . . , bn); letting {dot over (B)} anchors to {dot over (P)}, wherein A is divided by B into  with {circumflex over (d)}1×{circumflex over (d)}2× . . . ×{circumflex over (d)}n and {dot over (P)} is arranged by B unit to {circumflex over (P)} at the coordinates ({circumflex over (p)}1, {circumflex over (p)}2, . . . {circumflex over (p)}n), wherein {circumflex over (p)}i=┌(pi−bi)/ui┐+1 and {circumflex over (d)}i=┌(pi−bi)/ui┐+┌(di−pi+bi)/ui┐;
selecting a frame function of block-diffusion Â({circumflex over (P)}), wherein
A ^ F ︵ ( P ^ ) = A ^ F ︵ ( p ^ 1 , p ^ 2 , … , p ^ n ) = ∑ k = 1 2 n A ^ F ( C ^ k ) ⊕ ∑ i = 1 n { A ^ d ^ i ( p ^ i ) } ;
setting a diffusion-cycle T, wherein T=2V+1, V=┌log2 ν┐, and ν=max(┌di/bi┐, 1≦i≦n);
letting T=TE+TD, and the method further comprising steps of:
(a) encrypting M, wherein lets Â=M and a ciphertext C=Â{circumflex over (F)}({circumflex over (p)}1, {circumflex over (p)}2TE, . . . , {circumflex over (p)}n); and
(b) decrypting C, wherein lets Â=C and the plaintext M=Â{circumflex over (F)}({circumflex over (p)}×1, {circumflex over (p)}2TD, . . . , {circumflex over (p)}n);
wherein the said encrypting and decrypting steps are run by the said computer-processor.
3. A computer-implemented cryptographic method comprising a plaintext M run by at least one variable module stored in a memory to perform the following steps by a processor:
selecting a n-dimension diffusion-area A, wherein A is a d1×d2× . . . ×dn binary matrix and includes a diffusion-center {dot over (P)} at the coordinates (p1, p2, . . . pn);
selecting a frame function of point-diffusion A({dot over (P)}), wherein
A F ︵ ( P . ) = A F ︵ ( p 1 , p 2 , … , p n ) = ∑ k = 1 2 n AF ( C . k ) ⊕ ∑ i = 1 n { A d i ( p i ) } ;
selecting a n-dimension unit-block B, wherein B is a u1×u2× . . . ×un binary matrix and includes an anchor-point {dot over (B)} at the coordinates (b1, b2, . . . , bn); letting {dot over (B)} anchors to {dot over (P)}, wherein A is divided by B into  with {circumflex over (d)}1×{circumflex over (d)}2× . . . {circumflex over (d)}n and {dot over (P)} is arranged by B unit to {circumflex over (P)} at the coordinates ({circumflex over (p)}1, {circumflex over (p)}2, . . . {circumflex over (p)}n), wherein {circumflex over (p)}i=┌(pi−bi)/ui┐+1 and {circumflex over (d)}i=┌(pi−bi)/ui┐+┌(di−pi+bi)/ui┐;
selecting a frame function of block-diffusion Â({circumflex over (P)}), wherein
A ^ F ︵ ( P ^ ) = A ^ F ︵ ( p ^ 1 , p ^ 2 , … , p ^ n ) = ∑ k = 1 2 n A ^ F ( C ^ k ) ⊕ ∑ i = 1 n { A ^ d ^ i ( p ^ i ) } ;
selecting a switch Y, wherein Y represents for running A({dot over (P)}) with a first value, Â({circumflex over (P)}) with a second value;
setting a diffusion-cycle T1, wherein T1=2V+1, V=┌log2 ν┐, and ν=max(d1, d2, . . . , dn);
setting a diffusion-cycle T2, wherein T2=2V+1, V=┌log2 ν┐, and ν=max(┌di/bi┐, 1≦i≦n);
and the method further comprising steps of :
(a) encrypting M, wherein if Y equals said first value, letting T1=TE1+TD1 and A=M ,then a ciphertext C=A{circumflex over (F)}(p1, p2TE1, . . . , pn):if Y equals said second value, letting T2=TE2+TD2 and Â=M, then C=Â{circumflex over (F)}({circumflex over (p)}1,{circumflex over (p)}2TE1, . . . , {circumflex over (p)}n); and
(b) decrypting C, wherein if Y equals said first value, letting A=C, then the plaintext M=A{circumflex over (F)}(p1,p2TD1, . . . , pn): if Y equals said second value, letting Â=C, then M=Â{circumflex over (F)}({circumflex over (p)}1,{circumflex over (p)}2TD1, . . . , {circumflex over (p)}n);
wherein the said encrypting and decrypting steps are run by the said computer-processor.