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í
×
    včera 21:29 | Nová verze

    Open source download manager Fatrat povstal z popela. Autor k dvacetiletému výročí projektu přidal do vínku podporu nejnovější knihovny libtorrent, rozhraní portoval na QT6, došlo k nahrazení podpory java rozšíření pythonem. Webové rozhraní bylo přepsáno s podporou mobilních zařízení. Aplikaci je taktéž možno zkompilovat bez podpory GUI. Více informací v releases.

    Max | Komentářů: 5
    včera 21:11 | Bezpečnostní upozornění

    Zranitelnost Broccoli2Shell (CVE-2026-111497) v kompresní knihovně Brotli se netýká pouze Node.js. Ohroženy jsou také aplikace využívající HTTP. Knihovnu používají webové prohlížeče, servery i řada dalších aplikací a technologií, například také Python nebo Bun. Identifikace všech zranitelných komponent může být obtížná, protože knihovna bývá součástí dalších softwarových balíčků nebo je přímo začleněna do spustitelných souborů aplikací.

    Ladislav Hagara | Komentářů: 2
    včera 18:33 | Komunita

    Quad9, švýcarský celosvětově působící neziskový poskytovatel DNS, od 24. listopadu 2026 ukončí své služby ve Francii kvůli soudnímu sporu s katarskou televizní stanicí beIN. Ta požadovala blokování domén, které podle ní nelegálně zpřístupňují sportovní přenosy. Francouzský soud Katarům vyhověl a nařídil (🇫🇷, PDF) Quad9 blokaci zavést, pod hrozbou pokuty 1000 eur denně. Provozovatel příkaz odmítá s tím, že blokace

    … více »
    Pendrekama do nich❗ | Komentářů: 1
    včera 15:22 | Zajímavý článek

    Článek na blogu APNIC vysvětluje, jak správně vytvářet a používat ASPA záznamy — podepsané objekty v RPKI, které uvádějí, kteří poskytovatelé směrování jsou pro dané autonomní číslo (ASN) oprávněni. Síťoví operátoři je mohou využít k ověřování tras BGP a k odhalování úniků tras či podvržených tras.

    vencour | Komentářů: 1
    včera 14:33 | Nová verze

    Byla vydána (𝕏) verze 8.0.0 open source programu pro prolamování hesel hashcat (GitHub, Wikipedie). Přehled novinek v příspěvku v diskusním fóru a pdf.

    Ladislav Hagara | Komentářů: 0
    včera 14:22 | Nová verze

    Byla vydána (𝕏, Bluesky) nová verze 2026.3 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem 6 nových nástrojů v oficiálním oznámení na blogu.

    Ladislav Hagara | Komentářů: 1
    včera 08:35 | Komunita
    Pořadatelé dalšího ročníku komunitního setkání správců nejen českých a slovenských sítí CSNOG 2027 upozorňují, Call for Abstracts pro blížící se akci (20. a 21. ledna 2027, Zlín) končí už 31. října, tedy na konci tohoto týdne.. … více »
    VSladek | Komentářů: 1
    24.10. 23:22 | Bezpečnostní upozornění

    Výzkumníci ukazují, jak mohou otevřené tunely a IPv6 Extension Headers synchronizovat pakety do krátkých provozních špiček. V kontrolovaném experimentu naměřili přes 180násobnou koncentraci paketového toku vůči průměrné rychlosti odesílání — nikoli 180násobné zvětšení objemu dat. Článek obsahuje metodiku, limity měření i mitigace pro GRE, IPIP a další tunely.

    vencour | Komentářů: 1
    24.10. 12:44 | Pozvánky

    Po velkém úspěchu prvního MobileLinux Hackdaye se vracíme do Českých Budějovic s druhým ročníkem. V pátek 30. října 2026 od 10:00 se v prostorách Jihočeské univerzity uskuteční Embedded & MobileLinux Hackday #2. Těšit se můžete na témata jako Immutable Linux na telefonech (BengalOS), U-Boot a upstream vývoj, AI optimalizace pro embedded systémy nebo otevřený hardware. Nebude chybět praktické hackování, sdílení zkušeností a možnost … více »

    lkocman | Komentářů: 1
    24.10. 00:44 | Bezpečnostní upozornění

    Dne 21. října 2026 vydal projekt Node.js bezpečnostní aktualizace opravující deset zranitelností, včetně jedné umožňující potenciální vzdálené spuštění kódu (RCE). Nejzajímavější je CVE-2026-111497, chyba dekodéru Brotli, kterou objevili výzkumníci využívající OpenAI Codex Security. Chyba je v nativním dekodéru Brotli, nikoli v samotném JavaScriptu. Speciálně vytvořený komprimovaný vstup způsobí, že dekodér zamění

    … více »
    vencour | Komentářů: 15
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2921 hlasů
     Komentářů: 34, poslední včera 08:24
    Rozcestník

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

    14.2.2018 22:28 | Přečteno: 1924× | 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.