Asymmetrical chaotic encryption

Implementations and techniques for asymmetrical chaotic encryption are generally disclosed. One disclosed method for asymmetrical encryption includes determining a ciphertext control block from data, where the ciphertext control block is based at least in part on one or more Chebyshev polynomials. The method also includes encrypting at least a portion of the data into an encrypted ciphertext block, where the encrypted ciphertext block is based at least in part on Logistic Mapping, and in which a final ciphertext includes the encrypted ciphertext block and the ciphertext control block

BACKGROUND

Chaotic dynamics techniques have been utilized in encryption. Such chaotic dynamics techniques have some features such as sensitive dependence on initial conditions, ergodicity, and/or cycle tending to infinity. Such chaotic dynamics techniques may be utilized to generate pseudo-random numbers under the control of certain parameters. Therefore, chaotic cryptography has aroused extensive attention, and many scholars have proposed their chaotic cryptosystems in recent years. However, some chaotic cryptosystems based on these chaotic dynamics techniques may have relatively lengthy encryption times and/or may produce resultant ciphertext that may be several times longer as compared to an initial plaintext file.

SUMMARY

In one embodiment of an asymmetrical encryption process, a ciphertext control block may be determined from data. Such a ciphertext control block may be determined based at least in part on one or more Chebyshev polynomials. Such Chebyshev polynomials may be based at least in part on a public key as well as a randomly generated integer initial value associated with a variable parameter. Additionally, at least a portion of the data may be encrypted into an encrypted ciphertext block based at least in part on Logistic Mapping. Such an asymmetrical encryption process may be utilized to generate a final ciphertext that may include one or more encrypted ciphertext blocks and one or more ciphertext control blocks.

DETAILED DESCRIPTION

The following description sets forth various examples along with specific details to provide a thorough understanding of the claimed subject matter. It will be understood by those skilled in the art, however, that the claimed subject matter may be practiced without some or more of the specific details disclosed herein. Further, in some circumstances, well-known methods, procedures, systems, components and/or circuits have not been described in detail in order to avoid unnecessarily obscuring the claimed subject matter. In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented here. It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the Figures, can be arranged, substituted, combined, separated, and designed in a wide variety of different configurations, all of which are explicitly contemplated and make part of this disclosure.

This disclosure is drawn, inter alia, to methods, apparatus, and systems related to asymmetrical chaotic encryption.

Asymmetrical chaotic encryption algorithms for secure communication on the basis of Chebyshev polynomials and Logistic Mapping are described below. As used herein, the term “asymmetrical” may refer to processes where a public key and a private key are asymmetric and unequal. For example, an asymmetric key encryption scheme may be designed so that anyone can encrypt messages using a public key, but only the holder of the paired private key can decrypt. As used herein, the term “chaotic” may refer to processes that include dynamical systems that may be highly sensitive to initial conditions.

In one example, such an asymmetrical chaotic encryption algorithm may utilize a public key for encryption operations. Additionally or alternatively, such an asymmetrical chaotic encryption algorithm may include a private key for decryption operations. Additionally or alternatively, such an asymmetrical chaotic encryption algorithm may include a mixture of key encryption and block encryption.

FIG. 1illustrates an example process for asymmetrical encryption that is arranged in accordance with at least some embodiments of the present disclosure. In the illustrated example, process100, and other processes described herein, set forth various functional blocks or actions that may be described as processing steps, functional operations, events and/or acts, etc., which may be performed by hardware, software, and/or firmware. Those skilled in the art in light of the present disclosure will recognize that numerous alternatives to the functional blocks shown inFIG. 1may be practiced in various implementations. For example, although process100, as shown inFIG. 1, includes one particular order of blocks or actions, the order in which these blocks or actions are presented does not necessarily limit claimed subject matter to any particular order. Likewise, intervening actions not shown inFIG. 1and/or additional actions not shown inFIG. 1may be employed and/or some of the actions shown inFIG. 1may be eliminated, without departing from the scope of claimed subject matter. Process100may include one or more of operations as illustrated by blocks102and/or104.

As illustrated, process100may be implemented for asymmetrical encryption. Processing may begin at operation102, “determine a ciphertext control block”, where a ciphertext control block may be determined. For example, a ciphertext control block may be determined from data (e.g., a plaintext file) and may be based at least in part on one or more Chebyshev polynomials. Additional details regarding example implementations of ciphertext control blocks and Chebyshev polynomials may be found below in the discussion ofFIG. 2. As will be discussed in greater detail in conjunction withFIG. 2, the one or more Chebyshev polynomials may be based at least in part on a public key as well as a randomly generated integer initial value associated with a variable parameter.

Processing may continue from operation102to operation104, “encrypt at least a portion of the data into an encrypted ciphertext block”, where at least a portion of the data is encrypted into an encrypted ciphertext block. For example, at least a portion of the data may be encrypted into an encrypted ciphertext block based at least in part on Logistic Mapping. Additional details regarding example implementations of the encrypted ciphertext block and Logistic Mapping may be found below in the discussion ofFIG. 2.

In one example, process100may be utilized to generate a final ciphertext that includes one or more encrypted ciphertext blocks and one or more ciphertext control blocks. For example, the variable parameter may be modified and one or more subsequent Chebyshev polynomials as well as a subsequent finally encrypted ciphertext block may be determined based at least in part on the modified variable parameter. In one example, the modified variable parameter may be modified based at least in part on the Logistic Mapping performed during the formation of the encrypted ciphertext block. One or more iterations of modifying the variable parameter may be performed until all of the data has been encrypted.

FIG. 2illustrates another example process for asymmetrical chaotic encryption that is arranged in accordance with at least some embodiments of the present disclosure. Process200may include one or more of operations as illustrated by blocks202,204,206,208,210,212,214,216,218,220,224,226, and/or228.

Process200may provide one or more examples of implementations of process100ofFIG. 1. As illustrated, process200may be implemented for asymmetrical chaotic encryption. Processing may begin at operation202, “determine a public key”, where a public key may be determined. For example, a public key may be determined based at least in part on a private key.

In one example, a public key (x,PK) may be determined based at least in part on a Chebyshev polynomial based at least in part on a private key SK. In this example, a randomly generated integer SK (SK≠1) and a randomly generated integer x (x ε Fp, x≠I), may be utilized to compute:
PK=TSK(x)(modP)

In the above calculation, Fpmay represent a finite field, TSKmay represent a Chebyshev polynomial of degree SK, and P may represent a prime number. The finite field Fpmay be utilized to expand the Chebyshev polynomial TSKto this finite field Fp. The prime number P may be a relatively large prime number, which may be used to compute the Chebyshev polynomial TSKand a public key (x,PK). Because the public key (x,PK) utilized as the encryption key may not decrypt a resultant ciphertext while plaintexts are encrypted, the asymmetrical chaotic encryption algorithm represented by process200may include the private key SK for decryption operations.

Processing may continue from operation202to operation204, “determine one or more Chebyshev polynomials”, where one or more Chebyshev polynomials may be determined. For example, one or more Chebyshev polynomials of degree R0(TR0) may be determined.

In one example, one or more Chebyshev polynomials of degree R0(TR0) may be determined based at least in part on the determined public key (x,PK). In this example, a randomly generated integer R0(which may be considerer as an initial value for a variable parameter Ri) and the determined public key (x,PK) may be utilized to compute a first Chebyshev polynomial TR0(PK) mod P and a second Chebyshev polynomial TR0(x) mod P. In the above calculation, R0may represent randomly generated integer, where such a randomly generated integer may be sized to be larger than 10,000, for example.

Processing may continue from operation204to operation206, “determine a ciphertext control block”, where a ciphertext control block may be determined. For example, a first ciphertext control block CC0may be determined based at least in part on the determined public key (x,PK) and/or the determined one or more Chebyshev polynomials of degree R0, as will be illustrated in greater detail below.

In one example, a plaintext file may be divided into one or more subsequences. Such subsequences may have a designated length of L bytes. In the illustrated example, a value of eight was used for L, however, other values may be utilized. Accordingly, where the plaintext file may be represented by: p0p1. . . pL-1PL . . . p2L-1p2L. . . , the plaintext file may be divided into one or more subsequences. For example, the plaintext file may be divided into a first subsequence ω0(p0p1. . . pL-1), a second subsequence ω1(pL. . . p2L-1), and the like.

Additionally, the bytes of individual subsequences may be combined to form a binary plaintext message block. For example, pimay represent the value of the jth byte of a given subsequence ω0. In an example where a value of eight was used for L, eight bytes of plaintext (pj+pj+1+ . . . +pj+7) may be combined to form a binary plaintext message block Pj.

Additionally, a block number M may be determined. For example, the block number M may be determined based at least in part on the length of the plaintext file to be encrypted and the length L of the subsequences ω0. In an example where a value of eight was used for L, the block number M=(l/8)+1, where l may represent the length of the plaintext file to be encrypted.

As discussed above, the first ciphertext control block CC0may be determined based at least in part on the determined public key (x,PK) and/or the determined one or more Chebyshev polynomials of degree R0. For example, the determined public key (x,PK) and/or the determined one or more Chebyshev polynomials of degree R0may be utilized to compute the first ciphertext control block CC0as follows:
CC0=(m0·TR0(PK)modP, TR0(x)modP)

Processing may continue from operation206to operation208, “determine a Logistic Map value”, where a Logistic Map value may be determined. As used herein the term “Logistic Map” may refer to a type of polynomial mapping of degree two that may mimic complex, chaotic behavior through non-linear dynamical equations. For example, the Logistic Map initial value k0(e.g., an initial value calculated from Logistic Mapping) may be determined based at least in part on the determined ciphertext control parameter m0. (e.g., the ciphertext control parameter m0itself may be based at least in part on the variable parameter R0, as discussed in greater detail above). In one example, the ciphertext control parameter m0may be utilized to compute the Logistic Map initial value k0as follows:
k0=m0/P(m0<P),P/m0(m0>P), 0.1666666667 (m0=P)

The Logistic Map initial value k0may be utilized in subsequent iterations of the Logistic Map. Such subsequent iterations of the Logistic Map may be utilized to encrypt one or more additional plaintext blocks, as described in greater detail at operation218below. For example, in subsequent iterations, a Logistic Map iteration value ω (e.g. a subsequent value determined from Logistic Mapping associated with the iteration represented by operation218) may be determined based at least in part on the determined Logistic Map initial value k0. In one example, the Logistic Map initial value k0may be utilized to compute the Logistic Map iteration value ω as follows:
ω=τN0(k0)

In the above calculation, the Logistic Map iteration value w may represent a value of the Logistic Map initial value k0after N0iterations. Further, in the above calculation, τ may represent a Logistic Map function τ(x). The Logistic Map function τ(x) may be utilized to generate a pseudo-random sequence as follows:
τ(x)=μx(1−x),xε[0,1], με[3.5699456,4]

Processing may continue from operation208to operation210, “determine a secret key”, where a secret key may be determined. For example, a secret key Ajmay be determined based at least in part on the Logistic Map function τ(x) and/or Logistic Map iteration value ω (e.g., the Logistic Map iteration value ω may represent a value of Logistic Map initial value k0after N0iterations).

In one example, binary sequences may be generated based on the one dimension Logistic Map function τ(x). For example, the Logistic Map function τ(x) may be iterated a number of times (e.g., seventy times) to obtain a binary sequence (e.g., Bi1Bi2Bi3. . . Bi64Bi65. . . Bi69Bi70). Such a binary sequence (e.g., Bi1Bi2Bi3. . . Bi64Bi65. . . Bi69Bi70) may be formed by adding an ith bit selected from each iteration of the Logistic Map function τ(x).

The secret key Ajand the shift integer Djmay be determined based at least in part on the binary sequence (e.g., Bi1Bi2Bi3. . . Bi64Bi65. . . Bi70). In one example, the binary sequence (e.g., Bi1Bi2Bi3. . . Bi64Bi65. . . Bi69Bi70) may be divided into parts. One such part of the binary sequence (e.g., Bi1Bi2Bi3. . . Bi64Bi65. . . Bi69Bi70) may be the first sixty-four bits (or some other suitable number of bits), which may be utilized to determine the secret key Ajas follows:
Aj=Bi1Bi2Bi3. . . Bi64

Another such part of binary sequence (e.g., Bi1Bi2Bi3. . . Bi64Bi65. . . Bi69Bi70) may be last six bits (or some other suitable number of bits), which may be utilized to determine part A′j=Bi65. . . Bi69Bi70. The part A′jmay be converted into the shift integer Dj, which may be less than sixty-four bits and which may represent the decimal form of such a part of binary sequence (e.g., Bi1Bi2Bi3. . . Bi64Bi65. . . Bi69Bi70).

Processing may continue from operation210to operation212, “determine an encrypted ordinary plaintext block” where an encrypted ordinary plaintext block may be determined. For example, an encrypted ordinary plaintext block Cjmay be determined based at least in part on the shift integer Djand/or the secret key Aj.

In one example, the binary plaintext message block Pjmay be shifted (e.g., with left cycle shifting) based on the shift integer Djbits to obtain a new shifted message block P′j. The secret key Ajmay be utilized to compute an encrypted ordinary plaintext block Cjas follows based on the shifted message block P′j:
Cj=P′j⊕ Aj

In the above calculation, ⊕ may represent a XOR-type operation. As a result, the encrypted ordinary plaintext block Cjof the binary plaintext message block Pjmay be obtained.

Processing may continue from operation212to operation214, “determine a finally encrypted ciphertext block”, where a finally encrypted ciphertext block may be determined. For example, a finally encrypted ciphertext block C″jmay be determined based at least in part on the shift integer Djand/or the secret key Aj.

In one example, the encrypted ordinary plaintext block Cjmay be divided into one or more partitions (e.g., into eight-bit partitions). For example, the encrypted ordinary plaintext block Cjmay be divided into a first encrypted partition (c0c1. . . cL-1), a second encrypted partition (cL. . . c2L-1) and the like. Accordingly, the encrypted partition cj+cj+1+ . . . +cj+7of the corresponding plaintext subsequence pj+pj+1+ . . . +pj+7may be obtained. Then all the encrypted partition portions of the encrypted ordinary plaintext block Cjmay be computed with function mapping as follows:
f(Cj)=cj+cj+1+. . . +cj+7,

In the above calculation, the function mapping f(Cj) may be utilized to integrate the encrypted ordinary plaintext block Cj, which may be conductive to information storage. After the function mapping, the following operations may be performed:
D*=Dj+f(Cj)mod 64,
C′j=F(Cj, Dj) ⊕Aj,
D*=Dj+f(C′j)mod 64,
C″j=F(C′j, Dj) ⊕Aj.

In the above calculations, the encrypted ordinary plaintext block Cjmay be shifted (e.g., with left cycle shifting) based on the shift integer Djbits during the calculation of an intermediate encrypted ordinary plaintext block C′j, which may in turn be shifted (e.g., with left cycle shifting) based on the shift integer Djbits during the calculation of the finally encrypted ciphertext block C″j. Similarly, the encrypted ordinary plaintext block Cjmay be encrypted based on the secret key Ajduring the calculation of the intermediate encrypted ordinary plaintext block C′j, which may in turn be encrypted based on the secret key Ajduring the calculation of the finally encrypted ciphertext block C″j. In the above calculations, D* may represent a variable which is associated with a transformation of the shift integer Djvariable.

Additionally, in the above calculations, a modified shift integer D* may be determined. For example, the modified shift integer D* may be determined based at least in part on the shift integer Djand function mapping of the intermediate encrypted ordinary plaintext block C′j. Such a modified shift integer D* may be utilized to control the iteration times of the Logistic Map.

Processing may continue from operation214to operation216, “determine if a given number of plaintext blocks have been encrypted”, where a determination may be made as to whether a given number of plaintext blocks have been encrypted. In cases where a given number of plaintext blocks (e.g., mi-1(i>2)) are not determined to have been encrypted, processing may continue from operation216to operation218, “update Logistic Map iteration value”, where the Logistic Map iteration value may be updated. For example, the Logistic Map iteration value ω may be updated as follows:
ω=τD*+70(ki)

In the above calculation, the updated Logistic Map iteration value ω may be updated based on a Logistic Map value kiassociated with the current iteration and/or based on the modified shift integer D* (e.g., the modified shift integer D* itself may be based at least in part on the shift integer Dj, as discussed in greater detail above). The updated Logistic Map iteration value ω may be utilized in subsequent iterations of the Logistic Map. Processing may continue from operation218back to operations208-216, which have been previously described. Operations208-216may proceed to process one or more additional plaintext blocks with the updated Logistic Map iteration value ω.

In cases where a given number of plaintext blocks (e.g., mi-1(i>2)) are determined to have been encrypted, processing may continue from operation216to operation220, “determine if all of the plaintext file has been encrypted”, where a determination may be made as to whether all of the plaintext file has been encrypted. In cases where it is determined that all of the plaintext file has been encrypted, process200completes.

In cases where it is determined that all of the plaintext file has not been encrypted, process200may proceed from operation220to operation224, “determine one or more subsequent Chebyshev polynomials”, where one or more subsequent Chebyshev polynomials may be determined. For example, one or more subsequent Chebyshev polynomials of degree Ri(TRi) may be determined based at least in part on a modified variable parameter Ri. In one example, the modified variable parameter Rimay be determined based at least in part on a prior variable parameter Ri-1(e.g., the initial variable parameter R0) and/or the modified shift integer D* (e.g., the modified shift integer D* itself may be based at least in part on the shift integer Dj, as discussed in greater detail above). The modified variable parameter Rimay be determined as follows based on the prior variable parameter Ri-1(e.g., the initial variable parameter R0) and the modified shift integer D*:
Ri=Ri-1+D*,

In the above calculation, the modified variable parameter Rimay be subject to random perturbation. In one example, one or more subsequent Chebyshev polynomials of degree Ri(TRi) may be determined based at least in part on the determined public key (x,PK). In this example, the modified variable parameter Riand the determined public key (x,PK) may be utilized to compute a first subsequent Chebyshev polynomial TRi(PK) mod P and a second subsequent Chebyshev polynomial TRi(x) mod P.

Processing may continue from operation224to operation226, “determine a subsequent ciphertext control block”, where a subsequent ciphertext control block may be determined. For example, a subsequent ciphertext control block CCimay be determined based at least in part on the determined public key (x,PK) and/or the determined one or more Chebyshev polynomials of degree Ri, as will be illustrated in greater detail below.

In one example, a subsequent ciphertext control parameter mimay be determined. For example, the subsequent ciphertext control parameter mimay be determined based at least in part on the block number M and/or the modified variable parameter Ri. In one example, the subsequent ciphertext control parameter mi=(mi-1+D*) mod M. Such a subsequent ciphertext control parameter mimay be utilized to control the calculation of a Logistic Map subsequent value ki. The operation of the Logistic Mapping as well as the Logistic Map subsequent value kiwill be discussed in greater detail below with respect to operation228.

As discussed above, the subsequent ciphertext control block CCimay be determined based at least in part on the determined public key (x,PK) and/or the determined one or more Chebyshev polynomials of degree Ri. For example, the determined public key (x,PK) and/or the determined one or more Chebyshev polynomials of degree Rimay be utilized to compute the subsequent ciphertext control block CCias follows:
CCi=(mi·TRi(PK)modP, TRi(x)modP),

Processing may continue from operation226to operation228, “determine a subsequent Logistic Map value”, where a subsequent Logistic Map value may be determined. For example, the Logistic Map subsequent value kimay be determined based at least in part on the determined subsequent ciphertext control parameter mi. In one example, the subsequent ciphertext control parameter mimay be utilized to compute the Logistic Map subsequent value kias follows:
ki=mi/P(mi<P),P mi(mi>P), 0.1666666667 (mi=P)

The Logistic Map subsequent value kimay be utilized in subsequent iterations of the Logistic Map. In subsequent iterations, an updated Logistic Map iteration value ω may be determined based at least in part on the determined Logistic Map subsequent value ki. In one example, the Logistic Map subsequent value k1may be utilized to compute the updated Logistic Map iteration value ω as follows:
ω=τN0(ki)

Processing may continue from operation228back to operations208-216, which have been previously described. Operations208-216may proceed to process one or more additional plaintext blocks with the updated Logistic Map iteration value ω.

In operation, process200may utilize the ciphertext control blocks CCigenerated by usage of Chebyshev polynomials and the finally encrypted ciphertext block C″jgenerated by usage of Logistic Mapping to encrypt the binary plaintext message block Pj. Process200may utilize the ciphertext control blocks CCito conceal the ciphertext control parameters miand the Logistic Map values ki. Likewise, process200may utilize the finally encrypted ciphertext block C″j, encrypted by the Logistic mapping, to conceal the plaintext itself. For a final ciphertext including both the ciphertext control blocks CCiand the finally encrypted ciphertext blocks C″j, the make-up of the both the ciphertext control blocks CCiand the finally encrypted ciphertext blocks C″jmay be similar in nature (e.g., the Eigen values may not be obvious). For example, the distribution of the ciphertext control blocks CCimay be random, thereby process200may cut off the continuity of the finally encrypted ciphertext blocks C″j.

Process200may operate in such a way that the finally encrypted ciphertext block C″jmay be dependent on the original plaintext file. Further, process200may operate in such a way that the key streams of the secret key Ajgenerated by the same initial value are not the same. Process200may operate to combine a generation of the public key (x,PK) that is extended to the finite field Fpwith a generation of the key stream of different secret keys Aj, which may be dependent on the plaintext file to continually change initial values that generate the key stream of the secret keys Aj. Further, the initial key value of the secret keys Ajmay not be displayed to a user on the encryption side or decryption side, but only in the encryption and decryption procedures, which may enhance the concealment performance of information.

In addition, process200may utilize Logistic Mapping so that when the secret key Ajgenerated by the Logistic Mapping is used to encrypt the binary plaintext message block Pj, the statistical properties may be disappeared or reduced, and the chaotic disorder of such Logistic Mapping can make differences of the key streams of the secret key Ajquite obvious. Regarding the chaotic disorder of such Logistic Mapping, a histogram of the key streams of the secret key Ajmay be relatively uniform and may be significantly different from that of other key streams. These two features (i.e., the reduction of the statistical properties and the chaotic disorder) may make it difficult to decipher a final ciphertext (including both the ciphertext control blocks CCiand the finally encrypted ciphertext blocks C″j). For example, process200may utilize the random variable perturbation parameter Rias a feature of this algorithm. As discussed above, the random variable perturbation parameter Rimay be generated randomly. Additionally, each binary plaintext message block Pjmay be encrypted multiple times to reach the finally encrypted ciphertext block C″j. The combination of process200utilizing random generation of the random variable perturbation parameter Riwith the multiple encryptions of each binary plaintext message block Pjmay result in the length of the finally encrypted ciphertext block C″jnot being a consistent length. Accordingly, process200may resist analysis methods of traditional cryptography, as each time that the value of random variable perturbation parameter Riis different, then the individual finally encrypted ciphertext blocks C″jmay likewise be different, so it may be difficult to decipher a final ciphertext (including both the ciphertext control blocks CCiand the finally encrypted ciphertext blocks C″j) through a chosen-ciphertext attack or chosen-plaintext attack.

FIG. 3illustrates an example process for asymmetrical chaotic decryption that is arranged in accordance with at least some embodiments of the present disclosure. Process300may include one or more of operations as illustrated by blocks302,304,306, and/or308.

As illustrated, process300may be implemented for asymmetrical chaotic decryption. As discussed above, process200(FIG. 2) may utilize the ciphertext control blocks CCito conceal the ciphertext control parameters miand the Logistic Map values ki, and may utilize the finally encrypted ciphertext block C″j, encrypted by the Logistic mapping, to conceal the plaintext itself. Similarly, process300may utilize the ciphertext control blocks CCito retrieve the ciphertext control parameters miand the Logistic Map values ki, and may utilize the finally encrypted ciphertext block C″j, encrypted by the Logistic mapping, to retrieve the plaintext itself.

Processing may begin at operation302, “retrieve the ciphertext control parameter and/or Logistic Map value”, where the ciphertext control parameter and/or the Logistic Map value may be retrieved. For example, the ciphertext control parameter m0and/or the Logistic Map initial value k0may be retrieved from the first ciphertext control block CC0. In one example, the first ciphertext control block CC0may be decrypted using the private key SK to compute:
m0=m0·TR0(PK)modP/TSK(TR0(x)modP)modP
k0=m0/P(m0<P),P/m0(m0>P), 0.1666666667 (m0=P)

In the above calculations, the ciphertext control parameter m0and/or the Logistic Map initial value k0may be retrieved from the first ciphertext control block CC0. The retrieved ciphertext control parameter m0and/or the Logistic Map initial value k0may be utilized to decrypt the subsequent ciphertext control block CCi.

Processing may continue from operation302to operation304, “retrieve plaintext block” where a plaintext block may be retrieved. For example, retrieving a plaintext block from the one or more finally encrypted ciphertext block C″j, may be based at least in part on the retrieved Logistic Map initial value k0. As discussed above, a secret key Ajmay be determined based at least in part on the Logistic Map function τ(x) and/or the Logistic Map iteration value ω (e.g., the Logistic Map iteration value ω may represent a value of Logistic Map initial value k0after N0iterations). An encrypted ordinary plaintext block Cjmay be decrypted based at least in part on the shift integer Djand/or the secret key Ajto obtain the binary plaintext message block Pj.

In one example, the secret key Ajmay be utilized to compute the shifted message block P′jbased on the encrypted ordinary plaintext block Cjas follows:
P′j=Cj⊕ Aj

In the above calculation, the encrypted ordinary plaintext block Cjof the binary plaintext message block Pjmay be decrypted to compute the shifted message block P′j. The shifted message block may be un-shifted (e.g., with right cycle shifting) based on the shift integer Djbits to obtain the binary plaintext message block Pj. The Logistic Mapping may then be iterated (e.g., iterated D* times), until reaching the m1block.

Processing may continue from operation304to operation306, “determine if a given number of plaintext blocks have been decrypted”, where a determination may be made as to whether a given number of plaintext blocks have been decrypted. In cases where a given number of plaintext blocks (e.g., m1(i>2)) are not determined to have been decrypted, processing may continue from operation306back to operation304“retrieve plaintext block”, which has been previously described. For example, the Logistic Map value kimay be updated based at least in part on the shift integer Djand utilized to retrieve an additional plaintext block. An iteration of updating the Logistic Map value kimay be performed until a given number of plaintext blocks are decrypted.

In cases where a given number of plaintext blocks (e.g., mi-1(i>2)) are determined to have been decrypted, processing may continue from operation306to operation308, “determine if all of the plaintext file has been decrypted”, where a determination may be made as to whether all of the plaintext file has been decrypted. In cases where it is determined that all of the plaintext file has been decrypted, process300completes.

In cases where it is determined that all of the plaintext file have not been decrypted, process300may proceed from operation308back to operation302“retrieve the ciphertext control parameter and/or Logistic Map value”, which has been previously described. For example, an iteration of retrieving of a subsequent Logistic map value from a subsequent ciphertext control block may be performed until all of the plaintext file has been decrypted.

Referring toFIG. 1,FIG. 2andFIG. 3, certain aspects regarding process300have not been described in detail. For example, it will be appreciated that operations302and/or304may utilize all or portions of process200to perform the decryption process300. The decryption process300may operate in a manner similar to the encryption process200. For example, the decryption process300may utilize a reversal of the same or similar operations as described in operations208,210,212,214and/or218to reverse the encryption performed by encryption process200.

In operation, the processes100,200, and/or300may be utilized in embedded devices, mobile phones, portable devices, and/or the like. The processes100,200, and/or300may be utilized to protect personal privacy and/or applied to secure communications. For example, the processes100,200, and/or300may be utilized to protect personal privacy of image files. Further, the processes100,200, and/or300may be utilized in equipment that may have relatively low computing capabilities, because of the relatively fast speed of encryption and decryption.

FIG. 4illustrates an example computer program product400that is arranged in accordance with at least some embodiments of the present disclosure. Computer program product400may include a signal bearing medium402. Signal bearing medium402may include one or more machine-readable instructions404, which, when executed by one or more processors, may operatively enable a computing device to provide the functionality described above with respect toFIG. 1,FIG. 2and/orFIG. 3. Thus, for example, one or more of the actions shown inFIG. 1,FIG. 2and/orFIG. 3may be undertaken in response to instructions404conveyed by medium402.

In some implementations, signal bearing medium402may encompass a computer-readable medium406, such as, but not limited to, a hard disk drive, a Compact Disc (CD), a Digital Video Disk (DVD), a digital tape, memory, etc. In some implementations, signal bearing medium402may encompass a recordable medium408, such as, but not limited to, memory, read/write (R/W) CDs, R/W DVDs, etc. In some implementations, signal bearing medium402may encompass a communications medium410, such as, but not limited to, a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communication link, a wireless communication link, etc.).

FIG. 5is a block diagram of an illustrative embodiment of a computing device500that is arranged in accordance with the present disclosure. In one example basic configuration501, computing device500may include one or more processors510and a system memory520. A memory bus530can be used for communicating between the processor510and the system memory520.

Depending on the desired configuration, processor510may be of any type including but not limited to a microprocessor (μP), a microcontroller (μC), a digital signal processor (DSP), or any combination thereof. Processor510can include one or more levels of caching, such as a level one cache511and a level two cache512, a processor core513, and registers514. Processor core513can include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP Core), or any combination thereof. A memory controller515can also be used with processor510, or in some implementations memory controller515can be an internal part of processor510.

Depending on the desired configuration, the system memory520may be of any type including but not limited to volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.) or any combination thereof. System memory520may include an operating system521, one or more applications522, and program data524. Application522may include asymmetrical chaotic encryption algorithm523that can be arranged to perform the functions, actions, and/or operations as described herein including the functional blocks, actions, and/or operations described with respect to process100ofFIG. 1, process200ofFIG. 2and/or process300ofFIG. 3. Program Data524may include plaintext file data525for use with the asymmetrical chaotic encryption algorithm523. In some example embodiments, application522may be arranged to operate with program data524on an operating system521such that implementations of asymmetrical chaotic encryption of plaintext file data may be provided as described herein. This described basic configuration is illustrated inFIG. 5by those components within dashed line501.

Computing device500may have additional features or functionality, and additional interfaces to facilitate communications between basic configuration501and any required devices and interfaces. For example, a bus/interface controller540may be used to facilitate communications between basic configuration501and one or more data storage devices550via a storage interface bus541. Data storage devices550may be removable storage devices551, non-removable storage devices552, or a combination thereof. Examples of removable storage and non-removable storage devices include magnetic disk devices such as flexible disk drives and hard-disk drives (HDD), optical disk drives such as compact disk (CD) drives or digital versatile disk (DVD) drives, solid state drives (SSD), and tape drives to name a few. Example computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data.

System memory520, removable storage551and non-removable storage552are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which may be used to store the desired information and which may be accessed by computing device500. Any such computer storage media may be part of device500.

Computing device500may also include an interface bus542for facilitating communication from various interface devices (e.g., output interfaces, peripheral interfaces, and communication interfaces) to basic configuration501via bus/interface controller540. Example output interfaces560may include a graphics processing unit561and an audio processing unit562, which may be configured to communicate to various external devices such as a display or speakers via one or more A/V ports563. Example peripheral interfaces570may include a serial interface controller571or a parallel interface controller572, which may be configured to communicate with external devices such as input devices (e.g., keyboard, mouse, pen, voice input device, touch input device, etc.) or other peripheral devices (e.g., printer, scanner, etc.) via one or more I/O ports573. An example communication interface580includes a network controller581, which may be arranged to facilitate communications with one or more other computing devices590over a network communication via one or more communication ports582. A communication connection is one example of a communication media. Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and may include any information delivery media. A “modulated data signal” may be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared (IR) and other wireless media. The term computer readable media as used herein may include both storage media and communication media.

Computing device500may be implemented as a portion of a small-form factor portable (or mobile) electronic device such as a cell phone, a personal data assistant (PDA), a personal media player device, a wireless web-watch device, a personal headset device, an application specific device, or a hybrid device that includes any of the above functions. Computing device500may also be implemented as a personal computer including both laptop computer and non-laptop computer configurations. In addition, computing device500may be implemented as part of a wireless base station or other wireless system or device.

Claimed subject matter is not limited in scope to the particular implementations described herein. For example, some implementations may be in hardware, such as employed to operate on a device or combination of devices, for example, whereas other implementations may be in software and/or firmware. Likewise, although claimed subject matter is not limited in scope in this respect, some implementations may include one or more articles, such as a signal bearing medium, a storage medium and/or storage media. This storage media, such as CD-ROMs, computer disks, flash memory, or the like, for example, may have instructions stored thereon, that, when executed by a computing device, such as a computing system, computing platform, or other system, for example, may result in execution of a processor in accordance with claimed subject matter, such as one of the implementations previously described, for example. As one possibility, a computing device may include one or more processing units or processors, one or more input/output devices, such as a display, a keyboard and/or a mouse, and one or more memories, such as static random access memory, dynamic random access memory, flash memory, and/or a hard drive.

Reference in the specification to “an implementation,” “one implementation,” “some implementations,” or “other implementations” may mean that a particular feature, structure, or characteristic described in connection with one or more implementations may be included in at least some implementations, but not necessarily in all implementations. The various appearances of “an implementation,” “one implementation,” or “some implementations” in the preceding description are not necessarily all referring to the same implementations.