abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:00 | Komunita

    Stát Kalifornie zažaloval výrobce 3D tiskových filamentů Polymaker. Vrchní soud San Diego County tvrdí, že firma propagací svých výrobků mezi příznivci 3D tištěných zbraní podporovala výrobu takzvaných 'ghost guns' (DIY zbraní) a že její PLA filament pro 3D tiskárny lze za těchto okolností považovat za součást určenou k výrobě střelné zbraně. Žaloba požaduje mimo jiné finanční sankce a soudní zákaz činnosti, Polymaker se hájí tím, že filament je běžný a sám o sobě legální produkt. Celý text žaloby (PDF na Google Drive).

    ❗Červivý Hřib krade❗ | Komentářů: 0
    dnes 03:33 | Nová verze

    V červnu byla představena aplikace Myna pro převod řeči na text v prostředí desktopu Ubuntu. Včera byla Myna zpřístupněna širší komunitě Ubuntu formou technologické ukázky dostupné v Ubuntu 24.04 LTS, Ubuntu 26.04 LTS a Ubuntu 26.10 s GNOME na Waylandu.

    Ladislav Hagara | Komentářů: 0
    včera 21:11 | Komunita

    Ubuntu 27.04 bude Tenacious T-Rex.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | Nová verze

    Byla vydána nová verze 2026.4.0 "Never-slop" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu. ScummVM oslavil 25 let. Verze 0.0.1 vyšla 8. října 2001.

    Ladislav Hagara | Komentářů: 0
    včera 17:22 | Humor

    Kanadský vývojář Anthony Sistilli vytvořil ironický DIY projekt parodující kamerové systémy Flock, s cílem názorně demonstrovat rizika masového sledování jaké provozují tyto komerční ALPR systémy. Z levné IP kamery a vlastního ML softwaru (napsaného s pomocí SI circa za 20 minut, kód se mi bohužel nepodařilo dohledat) běžícího v laptopu sestavil jednoduchý systém, který detekuje výhradně policejní vozidla, zaznamenává jejich SPZ a

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 6
    včera 12:44 | Upozornění

    Část údajů uživatelů internetového supermarketu Rohlík byla odcizena. Kyberútočníci napadli nástroj zákaznické podpory Rohlíku, odcizili tak jména, e-mailové adresy, v některých případech také telefonní čísla nebo přepisy komunikace mezi klienty a zákaznickou podporou. Rohlík incident nahlásil příslušným orgánům a přijal příslušné opatření, aby zamezil podobným případům v budoucnosti, uvedla firma.

    Ladislav Hagara | Komentářů: 15
    včera 11:11 | IT novinky

    Aplikace eDoklady fungovala v obou volebních dnech stabilně a prakticky bez front. Digitální a informační agentura (DIA) odhaduje, že se digitálním dokladem prokázalo více než 100.000 voličů. Aplikaci si před volbami či během nich aktualizovalo 247.517 uživatelů. Nových registrací bylo 19.431 a do aplikace se přihlásilo 357.879 lidí. Největší nápor přišel bezprostředně po otevření volebních místností mezi 14. a 16. hodinou, kdy si

    … více »
    Ladislav Hagara | Komentářů: 8
    včera 00:55 | Pozvánky

    Začal semestr, začal i podzim a kromě hub rostou jako po dešti i veřejné dílny v Praze. Nedávno strahováci referovali o hackerspacu Bordel, nyní se otevřela dílna Dejvice Lab jen kousek od ČVUT. Na blížící Virtuální Bastlírně tak uslyšíte nejen report z návštěvy dílny HWLab, ale i řadu novinek, událostí a úsměvných momentů, které se za poslední měsíc ve světě techniky, ale i vědy udály. Připojte se tedy již v úterý 13.10. od 20:00 a zapojte se do

    … více »
    bkralik | Komentářů: 0
    11.10. 11:33 | Nová verze

    Byl vydán LineageOS 24 (Mastodon). LineageOS (Wikipedie) je svobodný operační systém pro chytré telefony, tablety a set-top boxy založený na Androidu. Jedná se o nástupce CyanogenModu. LineageOS 24 je založený na Androidu 17.

    Ladislav Hagara | Komentářů: 0
    11.10. 03:55 | IT novinky

    Společnost Valve publikovala na svém GitLabu nákresy a schémata zapojení headsetu Steam Frame. Pro nekomerční účely.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2838 hlasů
     Komentářů: 32, poslední 11.10. 17:02
    Rozcestník

    Eliptické křivky - vztah Weierstrass, Montgomery, Edwards

    14.2.2018 22:28 | Přečteno: 1911× | programování | Výběrový blog | poslední úprava: 14.2.2018 23:31

    Po delší době jsem měl trocha času prozkoumat, jaký vztah mezi sebou mají Weierstrassovy, Montgomery, a (twisted) Edwards křivky. Jakou mají strukturu, jak je lze mezi sebou převádět, jaký mají řád grupy a řády prvků v grupě. Jaké nebezpečí hrozí a jaké úskalí přináší každá z nich.

    Eliptické křivky prakticky nad konečným polem používané v kryptografii lze vyjmenovat těmito skupinami:

    Weierstrassova forma

    Weierstrassova forma je obecná forma zápisu křivek a všechny eliptické křivky na ní lze převést. Jednoduchá otázka je, proč nepoužívat obecnou formu? Protože je velmi těžké napsat algoritmus pro Weierstrassovu formu, který by běžel v konstantím čase. Adam Langley kdysi napsal návod, jak udělat operace nad Weierstrassovými křivkami v konstantním čase. Dnes to například implementuje knihovna libsecp256k1 - tato křivka se používá v Bitcoinu.

    Ale obecně je napsání constant-time operací nad Weierstrassovou formou náročné. Snad všechny NIST křivky spadají právě pod tuto obecnou kategorii.

    Montgomeryho křivky

    Montgomeryho křivky již mají speciální formu. Asi nejznámější je Curve25519 od D. Bernsteina, která vznikla v 2005. Doporučuji se alespoň běžné mrknout na původní paper, Bernstein mi přijde, že proti ostatním vědcům píše relativně srozumitelně - i když nerozumíte algebře, něco si z toho paperu odnesete - třeba pochopení, proč je implementace rychlá nebo high-level overview security modelu.

    Hlavní praktickou vymožeností Montgomeryho křivek je algoritmus zvaný Montgomery ladder, který umožňuje jednodušší implementaci skalárního násobení, jenom s jednou souřadnicí, ale hlavně v konstantím čase.

    Obecně je možné převést Montgomeryho křivku do obecný Weierstrassovy formy, jako ukazuje tento příklad v případě zmíněné Curve25519).

    (Twisted) Edwards křivka

    Twisted Edwards křivka má opět určitou specifickou formu. "Obyčejná" Edwards curve se od Twisted Edwards curve liší jenom tím, že má koeficient a=1 v rovnici křivky. Tudíž Edwards curves je podmožinou Twisted Edwards curves.

    Nejznámější Edwards curve (a taky Twisted Edwards curve) je Curve41417. Teď přichází čas na vhledy do struktury, protože i když je Curve25519 typicky nazývána jako Montgomery curve, lze twisted Edwards curves a Montgomery curves převádět "tam a zpátky". Použitá forma je spíš výsledkem toho, jak se s ní nejlépe počítá v tomto případě.

    Úskalí jednotlivých kategorií křivek

    Zde začneme vysvětlovat vlastnosti těch křivek a jaké kompromisy dělají, většina těchto vlastností bude vysvětlena v další sekci o převoditelnosti křivek. První otázka, který mě zajímala, je že je ideální mít grupu, nebo-li počet prvků na křivce, prvočíselný. Proč bychom si neudělali grupu prvočíselného řádu? S grupou prvočíselného řádu (tj. počet prvků je prvočíslo) se mnohem lépe pracuje z hlediska, aby člověk neudělal chybu, protože grupy neprvočíselného řádu mají dost neintuitivní a zrádné vlastnosti (lidi v tom dělají chyby). Ale zrovna Montgomery a Twisted Edwards curves typicky nemají prvočíselný řád.

    Místo toho se na Montgomeryho nebo Twisted Edwards křivce vybere podgrupa, které generátor má prvočíselný řád. Nebo jinak: tyhle grupy (křivky) mají neprvočíselný řád (počet prvků). To je jejich nevýhoda. Jejich výhody jsou třeba ten Montgomery ladder nebo u twisted Edwards curves vlastnost, že můžete mít velmi jednoduchý algoritmus, jak počítat aritmetiku na křivce - je to jednoduchá modulární aritmetika, která je úplná. Tj. funguje pro všechny vstupy nebo všechny body. Není nutné mít speciální "if" pro bod v nekonečnu (identitu). Ta identita je u twisted Edwards curves definována jako bod (0, 1) a můžete s ním počítat s ním jako s jakýmkoli jiným bodem (viz sekci 2 v Twisted Edwards Curves).

    Tak co uděláme s tím neprvočíselným řádem? Platí, že řád grupy je c*l, kde c je tzv. cofactor a l je nějaké velké prvočíslo. Takže abychom se nemuseli babrat s neprvočíselným řádem, vybereme si generátor podgrupy, který bude mít prvočíselný řád l, pak platí, že řád křivky = cofactor * řád generátoru. Pro mnoho aplikací křivky tohle funguje fajn. Třeba tohle je důvod, proč když generujete privátní klíč pro Curve25519, tak vynulujete nejnižší 3 bity, aby vám vaše body spadly do podgrupy prvočíselného řádu l místo celé grupy křivky, které má řád 8*l. Jinak má Curve25519 podgrupy velikosti 1, 2, 4, 8, l, 2l, 4l, 8l.

    Problém s neprvočíselnou grupou - small order attack, ByteCoin/Monero hack

    Ten zmíněný problém s neintuitivností grupy s neprvočíselným řádem se prakticky krásně ukázal v chybě v CryptoNote kryptoměnách - Monero, ByteCoin. Slajdy z mé přednášky o této chybě najdete zde (sorry za ten site, ale na abclinuxu nelze nahrávat přímo PDF do přílohy).

    Chyba ve zkratce

    CrytoNote protokol používá tzv. ring signature, která má za účel skrýt skutečného příjemce zkombinováním několika veřejných Curve25519 klíčů. A zde nastává ten problém. Protože do rovnice vstupuje veřejný klíč od útočníka (bod na křivce Curve25519) nazvaný key image, tak může mít malý řád (1, 2, 4, 8), protože nepřísluší k nějakému privátnímu klíči, kterému se při generování vynulují nejnižší tři bity (aby spadnul do té podgrupy s prvočíselným orderem l).

    Chyba v implementaci byla, že nekontrolovala, zda vstupní má řád l a leží "na té správné podgrupě". Výsledkem byl doublespend v ByteCoinu, který udělali sami developeři, protože se stal v čase, kdy na vulnerability report bylo embargo a jedině admini o tom věděli. V těch slajdech mám im vymenovány ty transakce a ty body nízkého řádu, "prošel" jsem blockchain, abych je našel - je tam i Python skript na hledání těchto transakcí.

    Co dodnes nechápu, jak je možné, že po provedení tohodle útoku stoupla cena ByteCoinu místo aby klesla, a celkem znatelně :D Go figure...

    Převoditelnost (twisted) Edwards, Montgomery a Weierstrassových křivek

    Zde si ukážeme, proč mají ty Edwards a Montgomery curves typicky neprvočíselný řád. Jak sme si již ukázali, Montgomeryho křivka je převoditelná na Weierstrass s trochou počítání. Zde si připomenem, že řád grupy je počet prvků grupy a řád prvku je "počet opakování" sčítání prvku sebe se samým, dokud se nedostaneme k identitě (neutrálnímu prvku/bodu v nekonečnu/"nule"). Dále platí (z paperu o Twisted Edwards Curves):

    Věta 3.2: Každá Montgomeryho křivka nad polem charakteristiky != 2 lze převést na Twisted Edwards křivku. Jinak řečeno, s malou manipulací s koeficienty můžeme převádět Montgomery křivky na Twisted Edwards křivky tam a zpátky. Je to dobré třeba kvůli tomu, co se nám nad kterou formou lépe počítá. Podmínka, že pole nesmí být charakteristiky 2 značí, že to nesmí být nad GF(2^n), což jsou polynomy s koeficienty z množiny {0, 1}. Velmi zjednodušeně řečeno, GF(2^n) vypadá jako vektory bitů. V dnešní době se stejně moc nepoužívají, protože pro křivky nad polemi charakteristiky 2 se našlo mnoho efektivních útoků.

    Věta 3.3: Ať opět máme pole k charakteristiky != 2. Libovolná křivka E nad tímhle polem k je "biracionálně ekvivalentní" Edwardsově křivce nad polem k právě když obsahuje bod řádu 4. Jinak řečeno, obecná křivka ve Weierstrassově forme je převeditelná na Edwardsovu křivku (tu jednodušší, která je podmnožinou twisted Edwards) tam a zpátky právě když má bod řádu 4 (opět s trochou "šachování s koeficientmi").

    Věta 3.4: Ať máme pole k s počtem prvků, kdy po dělení #k/4 zůstatek 3 (#k = 3 mod 4). Pak každá obecná Weiestrassova křivka E nad tímhle polem k je "biracionálně ekvivalentní" Edwardsově křivce nad polem k. Jinak řečeno, obecná křivka ve Weierstrassově forme je převeditelná na Edwardsovu křivku (tu jednodušší, která je podmnožinou twisted Edwards) tam a zpátky právě když počet prvků pole po dělení 4-ma má zbytek 3.

    Jak ale uvidíme dále, nemůžeme to zobecnit pro pole, kde po dělení jeho velikosti 4-ma nám zůstane zbytek 1.

    Věta 3.5: Ať máme pole k s počtem prvků, kdy po dělení #k/4 zůstatek 1 (#k = 1 mod 4). Nad tímto polem máme obecnou Weierstrassovou křivku E. Zbytek předpokladů si přečtěte v původním zdroji, protože bych sem musel copypastovat hodně kontextu. Hlavní pointa je, že pak právě jeden z dvojice křivka E a její netriviální kvadratický twist je "biracionálně ekvivalentní" s nějakou Edwardsovou křivkou a obsahuje bod řádu 4. Jako příklad je to vidět u Curve41417, kde cofactor křivky je 4 a její twist má cofactor 8. To je rozdíl proti větě 3.4, kde vidíme, že jí nelze generalizovat.

    Navíc tato věta je skvělým příkladem neintuitivnosti grup s neprvočíselným řádem. Křivka E i její kvadratický twist obsahují podgrupu izomorfní s Z/2Z ⨯ Z/2Z, neboli F4. Tahle podgrupa má za následek, že cofactor i řád křivky je násobkem 4, ale křivka nebo její twist nemusí obsahovat prvek řádu 4. Totiž Z/2Z ⨯ Z/2Z má 4 prvky (řád grupy 4), ale neobsahuje prvek řádu 4, jenom 1 prvek řádu 1 (identita) a 3 prvky řádu 2.

    Shrnutí

    Zde vidíme, proč Montgomeryho křivky a twisted Edwards křivky nemají prvočíselný řád, ale obsahují typicky bod řádu 4. Není to úplně ideální, ale vyvažuje to jiné implementační nepříjemnosti, a při správném pochopení je jednodušší se bodu s nízkým řádem vyvarovat, než-li vytvářet constant-time algoritmy pro aritmetiku na Weierstrassových křivkách.

           

    Hodnocení: 100 %

            špatné • dobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    14.2.2018 22:45 Banán
    Rozbalit Rozbalit vše Re: Eliptické křivky - vztah Weierstrass, Montgomery, Edwards
    WTF
    JiK avatar 15.2.2018 00:13 JiK | skóre: 13 | blog: Jirkoviny | Virginia
    Rozbalit Rozbalit vše Re: Eliptické křivky - vztah Weierstrass, Montgomery, Edwards
    Hluboký respekt. Myslel jsem, ze takoví lidé sem uz nechodí.
    16.2.2018 10:36 trekker.dk | skóre: 72
    Rozbalit Rozbalit vše Re: Eliptické křivky - vztah Weierstrass, Montgomery, Edwards
    Co dodnes nechápu, jak je možné, že po provedení tohodle útoku stoupla cena ByteCoinu místo aby klesla, a celkem znatelně :D Go figure...

    "Vykradli mi bitcoiny" - tomu každý rozumí - Bitcoin je špatný, nechi ho

    "[spousta povídání a technikálií s dost vysokou matematikou]" - eeeeehm?
    Quando omni flunkus moritati
    16.2.2018 15:28 *
    Rozbalit Rozbalit vše Re: Eliptické křivky - vztah Weierstrass, Montgomery, Edwards
    >Go figure...
    No success, please help.
    17.2.2018 10:47 Petr
    Rozbalit Rozbalit vše Re: Eliptické křivky - vztah Weierstrass, Montgomery, Edwards
    Bavi te krypto? Rad ti udelam pracovni nabidku pokud jsi dobry.
    22.9.2020 20:20 lizbee
    Rozbalit Rozbalit vše Re: Eliptické křivky - vztah Weierstrass, Montgomery, Edwards
    wow! great post! reno laser hair removal

    Založit nové vlákno • Nahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.