Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web development, networking and server security. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

RSA şi a ECC în JavaScript

Source: http://www-cs-students.stanford.edu/~tjw/jsbn/

Jsbn Biblioteca este o implementare rapida, portabil de mare număr de matematica pură în JavaScript, care să permită publice-cheie cripto şi alte aplicaţii de pe desktop si browsere mobile.

Demos

Cod sursă

API pentru jsbn bibliotecă se aseamana mult că a java.math.BigInteger clasă în Java. De exemplu:
  x = new BigInteger ("abcd1234", 16); 
  y = new BigInteger ("carne de vită", 16); 
  z = x.mod (y); 
  alert (z.toString (16));
va imprima b60c.

Core Bibliotecă

RSA

ECC

Utilităţi

Interoperabilitate

Demo cripteaza folosind siruri de caractere direct PKCS # 1 de criptare-stil padding (tip 2), care este în prezent singurul format acceptat. Pentru a afişa interoperabilitatea cu un potenţial de OpenSSL pe bază de backend care decriptează siruri de caractere, încercaţi următorul text pe orice sistem cu un instrument de linie de comandă OpenSSL instalat:
  1. Generează o nouă keypair public / privat:
    $ Openssl genrsa-out key.pem 
    cheie Generarea privată RSA, 512 bit lung modul 
    ..++++++++++++ 
    ..............++++++++++++ 
    e este 65537 (0x10001) 
    $
    
  2. Extras modulul de la cheia dvs.:
    $ Openssl RSA-in-key.pem noout
    
  3. Du-te la demo criptare RSA şi lipiţi valoarea în modulul "Modul (hex)" câmp în partea de jos.
  4. Asiguraţi-vă că valoarea în "Public exponent" câmp este "10001", sau indiferent de valoarea dvs. utilizează chei publice.
  5. Scrieţi un şir de scurt (de exemplu, testare), în "plaintext (string)" câmp şi faceţi clic pe "cripta". Rezultatul ar trebui să apară în "cifrat" câmpuri.
  6. Copiaţi versiunea base64 a cifrat şi lipiţi-l ca intrare de comanda de mai jos:
    $ Openssl-base64 d | openssl rsautl-inkey key.pem-decripta 
    1JW24UMKntVhmmDilAYC1AjLxgiWHBzTzZsCVAejLjVri92abLHkSyLisVyAdYVr 
    fiS7FchtI9vupe9JF/m3Kg ==
    
    Hit Ctrl-D sau indiferent de sistemul de operare foloseste pentru end-of-file. Plaintext dvs. iniţială ar trebui să apară:
    Testarea $
    

Performanţă

Tabele de viteză conţin informaţii referitoare la calendarul jsbn efectuarea operaţiunilor de tip public-cheie, cum ar fi RSA, ECC, şi IBE.

Proiecte care utilizează jsbn

Istorie

Versiunea 1.2 (3/29/2011):
Adaugata pătrat metodă de a îmbunătăţi performanţa ECC.
Utilizarea bazelor randomizaţi în isProbablePrime
Versiunea 1.1 (9/15/2009):
Adăugat suport pentru codificarea UTF-8 de caractere non-ASCII atunci când PKCS1 codare şi decodare siruri de caractere JavaScript.
Fixed bug la crearea unui nou BigInteger ("0") într-o putere non-a-2 rădăcină.

De licenţiere

jsbn este lansat sub o licenţă BSD. A se vedea LICENTA pentru detalii.
Published (Last edited): 09-11-2011