# Analýza skrytých nonců v Schnorr a MuSig2: matematické základy a metriky
Současné kryptografické podpisy, jako Schnorr (BIP340) a MuSig2 (BIP327), vyžadují nejen ověření platnosti, ale i hlubokou analýzu strukturálních vlastností. V tomto článku se prozkoumává metoda transformace podpisů do sady afinních omezení pro odhalení skrytých vzorů v noncích. Tento přístup umožňuje přechod od binární kontroly k kvantitativnímu hodnocení geometrie rodiny nonců, což je klíčové pro forenzní analýzu v podmínkách částečného úniku dat.
Základní principy afinního zobrazení
Klíčový nápad spočívá v interpretaci rovnice podpisu jako afinního omezení. Pro BIP340 se rovnice s = k + e·d mod n stává základem pro konstrukci funkce skrytého noncu k_i(d') = s_i - e_i·d' mod n, kde d' je kandidát na tajný klíč. Při správné hodnotě d' = d tato funkce obnoví skutečné kanonické noncy. Pro chybné kandidáty vzniká pseudonáhodná rodina, jejíž statistické vlastnosti se výrazně liší od reálných dat.
BIP340 Membership Bridge
Normalizační přechod prostřednictvím obnovení bodu R* = sG - eP umožňuje striktní klasifikaci podpisů podle pěti kritérií:
rv mezích polesv přípustném rozsahu- Nenulový bod
R* - Soudržnost Y-souřadnice
- Shoda X-souřadnice
Tento most vylučuje falešné pozitiva při analýze tím, že filtruje nepotřebné řádky před aplikací metrik. Bez této fáze se jakákoli následná analýza stává zranitelnou vůči artefaktům parsování.
Geometrie rodiny nonců
Kompresní metriky
Analýza souboru podpisů jednoho klíče vychází z měření komprese rodiny K(d'):
- Unikátní noncy:
U_k(d') = |{k_i(d')}| - Kolize:
C_k(d') = m - U_k(d') - Delta-analýza:
- Unikátní delty: U_Δ(d') = |{Δ_i(d')}|
- Opakující se delty: C_Δ(d') = (m-1) - U_Δ(d')
- Prefixové metriky pro bitové úrovně 128/64/32/16:
- U_pref_b(d') = |{Pref_b(k_i(d'))}|
Tyto metriky odhalují charakteristické vzory:
- Opakované použití nonců → růst kolizí
- Žebříková generace → opakování delt
- Krátký nonce → anomálně nízká entropie vysokých prefixů
Model konektivity
Pro odhalení lokálních struktur se používá dvoulisťový systém:
K_plus = sorted([k_i(d') for i in range(m)])
K_minus = sorted([-k_i(d') % n for i in range(m)])
Analýza probíhá ve čtyřech režimech sousedství (++/--/+-/-+), kde se počítá:
- Lokální podpora delt:
Support_local(d') = max_mode max_δ count_mode(δ) - Opakující se hmota:
Mass_repeat(d') = Σ max(count(δ)-1, 0) - Prefixová podpora pro úrovně 128/96/64/32/16
Tento přístup odhaluje skryté klastry a lokální symetrie, které nejsou dostupné při globální analýze.
Specifika MuSig2
Protokolová validní lineární transformace
Pro MuSig2 se analýza provádí ne na finálním podpisu, ale na částečných podpisích s plným kontextem relace. Klíčové komponenty:
- Agregovaný klíč
Q - Společný nonce
R - Koeficienty
b,e,a - Parity faktorů
gagacc
Parita klíče je určena jako par_key = g·gacc mod n, což umožňuje správné zpracování sudých/licheých Y-souřadnic. Částečný podpis se převádí do afinní formy prostřednictvím obnovení surového noncu z kontextu relace.
Kritické rozdíly oproti BIP340
- Absence přímé rovnice
s = k + ed - Nutnost zohlednění agregace klíčů
- Závislost na parametrech specifických pro relaci
- Dvojité zpracování parity (klíč + nonce)
To vyžaduje úpravu všech metrik pro práci s protokolově validními strukturami místo surových dat.
Co je důležité
- Membership bridge — povinná fáze filtrování před analýzou
- Kompresní metriky jsou efektivní pro odhalení opakování a žebříkových vzorů
- Analýza konektivity odhaluje lokální struktury prostřednictvím dvoulisťového modelu
- MuSig2 vyžaduje samostatné zpracování prostřednictvím kontextu relace
- Všechny závěry vycházejí z měřitelných matematických vlastností, nikoli z heuristik
Praktická implementace
Systém je implementován jako interaktivní demo na GitHubu. Klíčové komponenty:
- Validátor příslušnosti k BIP340
- Generátor afinních rodin pro zadané
d' - Sada metrik komprese/konektivity
- Vizualizátor geometrie nonců
Příklad výpočtu prefixové podpory:
def top_prefix_support(k_list, bits):
prefix_mask = (1 << (256 - bits)) - 1
prefixes = [k & prefix_mask for k in k_list]
return max(Counter(prefixes).values())
Artefakty projektu potvrzují funkčnost metrik na reálných datech s známými zranitelnostmi. Důležité poznamenat: systém přímo neobnovuje soukromé klíče, ale poskytuje měřitelné signály pro následnou analýzu.
Tento přístup rozšiřuje nástroje kryptografické analýzy tím, že převádí úlohu z oblasti hádání do oblasti měřitelných matematických vlastností. Pro vývojáře to znamená možnost ověření kvality generování nonců a odhalení skrytých zranitelností v implementacích.
— Editorial Team
Zatím žádné komentáře.