Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Cayley–Purser algorithm

From Wikipedia, the free encyclopedia
1999 public-key cryptography algorithm
This articlerelies largely or entirely on asingle source. Relevant discussion may be found on thetalk page. Please helpimprove this article byintroducing citations to additional sources.
Find sources: "Cayley–Purser algorithm" – news ·newspapers ·books ·scholar ·JSTOR
(October 2019)

TheCayley–Purser algorithm was apublic-key cryptographyalgorithm published in early 1999 by 16-year-oldIrishwomanSarah Flannery, based on an unpublished work byMichael Purser, founder ofBaltimore Technologies, aDublin data security company. Flannery named it formathematicianArthur Cayley. It has since been found to be flawed as a public-key algorithm, but was the subject of considerable media attention.

History

[edit]

During a work-experience placement with Baltimore Technologies, Flannery was shown an unpublished paper by Michael Purser which outlined a newpublic-key cryptographic scheme usingnon-commutative multiplication. She was asked to write an implementation of this scheme inMathematica.

Before this placement, Flannery had attended the 1998ESAT Young Scientist and Technology Exhibition with a project describing already existing cryptographic techniques from theCaesar cipher toRSA. This had won her the Intel Student Award which included the opportunity to compete in the 1998Intel International Science and Engineering Fair in the United States. Feeling that she needed some original work to add to her exhibition project, Flannery asked Michael Purser for permission to include work based on his cryptographic scheme.

On advice from her mathematician father, Flannery decided to usematrices to implement Purser's scheme asmatrix multiplication has the necessary property of being non-commutative. As the resulting algorithm would depend on multiplication it would be a great deal faster than the RSA algorithm which uses anexponential step. For her Intel Science Fair project Flannery prepared a demonstration where the same plaintext was enciphered using both RSA and her new Cayley–Purser algorithm and it did indeed show a significant time improvement.

Returning to the ESAT Young Scientist and Technology Exhibition in 1999, Flannery formalised Cayley-Purser's runtime and analyzed a variety of known attacks, none of which were determined to be effective.

Flannery did not make any claims that the Cayley–Purser algorithm would replace RSA, knowing that any new cryptographic system would need to stand the test of time before it could be acknowledged as a secure system. The media were not so circumspect however and when she received first prize at the ESAT exhibition, newspapers around the world reported the story that a young girl genius had revolutionised cryptography.

In fact an attack on the algorithm was discovered shortly afterwards but she analyzed it and included it as an appendix in later competitions, including a Europe-wide competition in which she won a major award.

Overview

[edit]

Notation used in this discussion is as in Flannery's original paper.

Key generation

[edit]

Like RSA, Cayley-Purser begins by generating two large primesp andq and their productn, asemiprime. Next, considerGL(2,n), thegeneral linear group of 2×2 matrices with integer elements andmodular arithmetic modn. For example, ifn=5, we could write:

[0123]+[1234]=[1357][1302]{\displaystyle {\begin{bmatrix}0&1\\2&3\end{bmatrix}}+{\begin{bmatrix}1&2\\3&4\end{bmatrix}}={\begin{bmatrix}1&3\\5&7\end{bmatrix}}\equiv {\begin{bmatrix}1&3\\0&2\end{bmatrix}}}
[0123][1234]=[341116][3411]{\displaystyle {\begin{bmatrix}0&1\\2&3\end{bmatrix}}{\begin{bmatrix}1&2\\3&4\end{bmatrix}}={\begin{bmatrix}3&4\\11&16\end{bmatrix}}\equiv {\begin{bmatrix}3&4\\1&1\end{bmatrix}}}

This group is chosen because it has large order (for large semiprimen), equal to (p2−1)(p2p)(q2−1)(q2q).

Letχ{\displaystyle \chi } andα{\displaystyle \alpha } be two such matrices from GL(2,n) chosen such thatχααχ{\displaystyle \chi \alpha \not =\alpha \chi }. Choose some natural numberr and compute:

β=χ1α1χ,{\displaystyle \beta =\chi ^{-1}\alpha ^{-1}\chi ,}
γ=χr.{\displaystyle \gamma =\chi ^{r}.}

The public key isn{\displaystyle n},α{\displaystyle \alpha },β{\displaystyle \beta }, andγ{\displaystyle \gamma }. The private key isχ{\displaystyle \chi }.

Encryption

[edit]

The sender begins by generating a random natural numbers and computing:

δ=γs{\displaystyle \delta =\gamma ^{s}}
ϵ=δ1αδ{\displaystyle \epsilon =\delta ^{-1}\alpha \delta }
κ=δ1βδ{\displaystyle \kappa =\delta ^{-1}\beta \delta }

Then, to encrypt a message, each message block is encoded as a number (as in RSA) and they are placed four at a time as elements of a plaintext matrixμ{\displaystyle \mu }. Eachμ{\displaystyle \mu } is encrypted using:

μ=κμκ.{\displaystyle \mu '=\kappa \mu \kappa .}

Thenμ{\displaystyle \mu '} andϵ{\displaystyle \epsilon } are sent to the receiver.

Decryption

[edit]

The receiver recovers the original plaintext matrixμ{\displaystyle \mu } via:

λ=χ1ϵχ,{\displaystyle \lambda =\chi ^{-1}\epsilon \chi ,}
μ=λμλ.{\displaystyle \mu =\lambda \mu '\lambda .}

Security

[edit]

Recovering the private keyχ{\displaystyle \chi } fromγ{\displaystyle \gamma } is computationally infeasible, at least as hard as finding square roots modn (seequadratic residue). It could be recovered fromα{\displaystyle \alpha } andβ{\displaystyle \beta } if the systemχβ=α1χ{\displaystyle \chi \beta =\alpha ^{-1}\chi } could be solved, but the number of solutions to this system is large as long as elements in the group have a large order, which can be guaranteed for almost every element.

However, the system can be broken by finding a multipleχ{\displaystyle \chi '} ofχ{\displaystyle \chi } by solving ford{\displaystyle d} in the following congruence:

d(βα1)(α1γγβ)(modn){\displaystyle d\left(\beta -\alpha ^{-1}\right)\equiv \left(\alpha ^{-1}\gamma -\gamma \beta \right){\pmod {n}}}

Observe that a solution exists if for somei,j|γ|{\displaystyle i,j\in \left|\gamma \right|} andx,yZn{\displaystyle x,y\in \mathbb {Z} _{n}}

x(βij1αij)y(modn).{\displaystyle x\left(\beta _{ij}^{-1}-\alpha _{ij}\right)\equiv y{\pmod {n}}.}

Ifd{\displaystyle d} is known,dI+γ=χ{\displaystyle d\mathrm {I} +\gamma =\chi '} — a multiple ofχ{\displaystyle \chi }. Any multiple ofχ{\displaystyle \chi } yieldsλ=κ1=v1χ1ϵvχ{\displaystyle \lambda =\kappa ^{-1}=v^{-1}\chi ^{-1}\epsilon v\chi }. This presents a fatal weakness for the system, which has not yet been reconciled.

This flaw does not preclude the algorithm's use as a mixed private-key/public-key algorithm, if the sender transmitsϵ{\displaystyle \epsilon } secretly, but this approach presents no advantage over the common approach of transmitting asymmetric encryption key using a public-key encryption scheme and then switching to symmetric encryption, which is faster than Cayley-Purser.

See also

[edit]

References

[edit]
  • Sarah Flannery and David Flannery.In Code: A Mathematical Journey.ISBN 0-7611-2384-9
Algorithms
Integer factorization
Discrete logarithm
Lattice/SVP/CVP/LWE/SIS
Others
Theory
Standardization
Topics
General
Mathematics
Retrieved from "https://en.wikipedia.org/w/index.php?title=Cayley–Purser_algorithm&oldid=1116976711"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp