Loading...
 
[Show/Hide Left Column]

Cryptonite Image

Áron bácsi felvetésére belevágtunk egy új rendezvénysorozatba, melynek célja, hogy a snowden-i szivárogtatások fényében
  • újra felmérjük, megismerjük a rendelkezésre álló kriptográfiai módszereket,
  • számba vegyük a rendelkezésre álló eszközöket,
  • szükség esetén meghatározzuk és megvalósítsuk a hiányzó komponenseket,
  • olyan ökölszabályokat fogalmazzunk meg, melyek egy átlagember számára is hasznosak lehetnek.

Események

Upcoming:
(ahol nincs feltüntetve előadó zárójelben, ott még keressük)

  • szimetrikus kriptók
  • hash alapú kriptó
  • lattice-based kriptó
  • code-based kriptó
  • keccak sponge konstrukciója (esetleg arx alapú is - ez xsalsa20/chacha20 alapja)
  • multiparty kripto

Régiek:

Jegyzetek


ECC



A sage worksheet a csatolmányok között megtalálható. Kipróbálható itt sagecloud(external link).

sage example code
  1 . F2 = GF((2^255)-19)
  2 . # y^2 == x^3 + 486662*x^2 + x)
  3 . Curve25519 = EllipticCurve(F2, [0, 486662, 0, 1, 0])
  4 . P25519 = Curve25519.point([9,F2(9^3 + 486662*9^2 + 9).sqrt()])
  5 . print(Curve25519)
  6 . print "basepoint", P25519
  7 . 
  8 . Elliptic Curve defined by y^2 = x^3 + 486662*x^2 + x over Finite Field of size \
  9 . 57896044618658097711785492504343953926634992332820282019728792003956564819949
 10 . basepoint (9 : 14781619447589544791020593568409986887264606134616475288964881837755586237401 : 1)
 11 . 
 12 . F1 = GF((2^251)-9)
 13 . #x^2 + y^2 = 1 − 1174*x^2*y^2
 14 . Curve1174 = EllipticCurve(F1,[0,4/1175-2,0,1,0])
 15 . print(Curve1174)
 16 . 
 17 . Elliptic Curve defined by y^2 = x^3 + 3276669759268734891773391703437338669039342119261743620691033760223924732354*x^2 + x over Finite \
 18 . Field of size 3618502788666131106986593281521497120414687020801267626233049500247285301239
 19 . 
 20 . secret = randrange(P25519.order())
 21 . print 'secret', secret
 22 . public = P25519 * secret
 23 . print 'public', public
 24 . secret 1467490697454842568936475396114863822922126114013609471608883888030173455623
 25 . public (14181934965252511487015101029388688573760508176091550377448791623325663079263 : \
 26 . 27550729654639090468645035001871244348239408328781753808485607098532078341262 : 1)
 27 . 
 28 . E = EllipticCurve(GF(1009),[5,1]); E
 29 . g = E.gens()[0]; (g, g.order())
 30 . rA = randrange(g.order()); RA = rA*g; (rA, RA)
 31 . rB = randrange(g.order()); RB = rB*g; (rB, RB)
 32 . kA = rA*RB; kA
 33 . kB = rB*RA; kB
 34 . Elliptic Curve defined by y^2 = x^3 + 5*x + 1 over Finite Field of size 1009
 35 . ((930 : 789 : 1), 1039)
 36 . (505, (414 : 616 : 1))
 37 . (534, (414 : 393 : 1))
 38 . (99 : 106 : 1)
 39 . (99 : 106 : 1)
 40 . 
 41 . # encryption
 42 . n = randrange(g.order()); NA = n*g; Sa = n*RB;
 43 . # use Sa to derive symmetric key K, and send(NA, enc(Sa, plain))
 44 . sb = NA * rB; (Sa, sb)
 45 . # use sb to derive symmetric key K and dec(sb, cipher)
 46 . 
 47 . ((738 : 535 : 1), (738 : 535 : 1))
 48 . 
 49 . ## SHA256(message)
 50 . h = 0x7aac4de65f04b1b03d97537e03005247e10a41321811f948a85c2fe3bab5ce5d
 51 . # sign(rA, h)
 52 . ## ephemeral key Alice uses to sign her message
 53 . k = randrange(g.order())
 54 . K = k*g
 55 . # get the x coordinate of the ephemeral key
 56 . t = ZZ(K[0]) # t = the x coordinate of K
 57 . s = (h + rA*t)/k % g.order()
 58 . ###### verify(h, t, s, RA)
 59 . w = (1/s) % g.order()
 60 . u = (w*h) % g.order()
 61 . v = (w*t) % g.order()
 62 . F = u*g
 63 . H = v*RA                                # uses Alice's public key, A
 64 . Q = F + H
 65 . 
 66 . ## Q should be the same as K
 67 . (Q, K)
 68 . ((631 : 359 : 1), (631 : 359 : 1))
 69 . 
 70 . pts = [ g * x for x in range(g.order()) ]
 71 . plot(sum([ plot(p, hue = 0.1) for p in pts ]), aspect_ratio = 1)

Image

Contributors to this page: Aron15 points  , stef17358 points  , dnet922 points  and Buherator109 points  .
Page last modified on Monday 09 of June, 2014 20:49:08 CEST by Aron15 points .

Upcoming events

1)  Thu 04 of Sep., 2014 16:00 CEST
Buhera szakkör
2)  Thu 04 of Sep., 2014 19:00 CEST
Build night with Sugru
3)  Thu 11 of Sep., 2014 16:00 CEST
Buhera szakkör