Criptosistemul Massey-Omura a fost propus în 1978 de James Massey și Jim K. Omura, inițial ca o îmbunătățire a protocolului Shamir . Există două opțiuni pentru implementarea acestui protocol: clasic și eliptic. Prima este construită pe complexitatea problemei logaritmului discret , a doua pe proprietăţile unei curbe eliptice . De obicei, mesajul rezultat este folosit ca cheie a unui criptosistem tradițional.
Inițial, protocolul Massey-Omura a fost descris în relație cu grupul multiplicativ , unde este un număr prim, și a fost un analog al transferului secret folosind cutii blocate cu una sau două lacăte. Esența schemei este următoarea: abonatul Alice încuie cutia cu scrisoarea cu cheia sa și trimite cutia abonatului Bob. Abonatul Bob, la rândul său, îl încuie cu cheia și i-o trimite înapoi lui Alice. Alice își eliberează lacătul și îndreaptă cutia către Bob, care își eliberează încuietoarea.
Perechile de numere sunt chei secrete ale abonaților.
, deoarece(Primul factor este 1 după teorema lui Euler ). La fel .
Alice își criptează mesajul cu prima cheie: ( ) și îl trimite abonatului Bob.
Total: abonatul Bob a primit un mesaj secret de la Alice.
Această versiune a sistemului poate fi implementată fără a utiliza procedura de exponențiere în câmpuri finite, dar problema logaritmului discret este suficient de dificilă pentru Bob încât nu poate determina cheia și de acum înainte să citească mesaje care nu i-au fost destinate. O condiție prealabilă pentru fiabilitate este un sistem bun de semnare a mesajelor. Fără utilizarea semnăturilor, orice terță parte Eva poate pretinde a fi abonatul lui Bob și poate returna un mesaj din formular către Alice . Alice va continua procedura și, prin „scoaterea lacătului”, va deschide calea impostoarei Eva să decripteze mesajul. În acest sens, trebuie să fie însoțit de autentificare .
O versiune eliptică a acestui protocol oferă posibilitatea de a trimite un mesaj de la Alice către Bob pe un canal deschis, fără a transmite mai întâi nicio informație cheie. Parametrii sistemului aici sunt: ecuația unei curbe eliptice și câmpul dat de un polinom ireductibil . Fie ordinea curbei eliptice egală cu , fie un întreg coprim cu ( ). Prin algoritmul lui Euclid, se poate găsi
.Prin definiția comparabilității modulo :
Aceasta înseamnă că pentru orice punct al curbei eliptice de ordin :
, acesta este .Acum, folosind și și orice punct al curbei eliptice, putem calcula
Unde . Calcularea unui punct de la este echivalentă cu rezolvarea problemei logaritmului discret pentru o curbă eliptică.