Kezdőoldal » Tudományok » Alkalmazott tudományok » Gyakorlatban mi nehezebb...

U. Xorter kérdése:

Gyakorlatban mi nehezebb probléma: nagy prímek szorzatának a faktorizációja vagy kis prímek nagy hatványainak szorzatának a faktorizációja?

Figyelt kérdés

2023. szept. 1. 07:35
 1/9 anonim ***** válasza:

Pontosítsd a kérdésedet.

Ha kis prímeket ismert hatványra emelünk, akkor viszonylag kevés próbálkozással megoldható. Ha a hatványkitevő is véletlenszerű, akkor engem is érdekel a válasz.

2023. szept. 1. 09:31
Hasznos számodra ez a válasz?
 2/9 2*Sü ***** válasza:

Kísérletképpen két nagy prím szorzata:

a = 170,141,183,460,469,231,731,687,303,715,884,105,727

b = 20,988,936,657,440,586,486,151,264,256,610,222,593,863,921

A kettő szorzata egy 82 számjegyű szám.


A [link] oldalra bemásoltam, prímtényezőkre bontás nálam majdnem pontosan 10 percig tartott.


Kiszámoltam a 29^10000-t. Ez egy 14624 számjegyű szám, nyilván sok-sok nagyságrenddel nagyobb az előbbinél. Ugyanezen az oldalon a prímtényezőkre bontás 0,7 másodpercig tartott.


~ ~ ~


Ha tehát a kérdés az, hogy egy közel ugyanolyan nagyságrendű szám esetén akkor nehezebb-e a prímtényezőkre bontás, ha a szám két nagy prím szorzata, vagy ha sok kis prím szorzata, akkor a válasz az, hogy az előbbi sokkal nehezebb. A 29^10000 esetén a dolog könnyebb. Osztod 2-vel, 3-mal, 5-tel, egyikkel sem osztható, de így a prímeken haladva a 10. lépésben kiderül, hogy 29-cel osztható a szám. Innen már az osztás eredményével kell tovább számolni. Ezt a tíz osztás tízezerszer kell ismételni, és megkapod a prímtényezőket. Ez összesen százezer osztás lesz.


Ha viszont az első példát nézzük, akkor osztani kell 2-vel, 3-mal, 5-tel stb. stb… Egyikkel sem lesz osztható. A prímszámtétel alapján a fenti példában jelzett „a” szám előtt van majdnem 2 szextillió darab prím. Még ha ismernénk is addig az összes számról, hogy prím-e vagy sem – így csak a prímekkel kellene az oszthatóságot ellenőrizni –, akkor is 10^36 nagyságrendű osztási kísérlet után kapnánk meg az első prímtényezőt, és az osztás után kapott „b” számról még mindig nem tudhatjuk teljes bizonysággal, hogy prím-e vagy sem, azt fel kell-e bontani prímtényezőkre vagy sem. (A prímtesztek itt nem nyújtanak teljes bizonyosságot.) Lehet trükközni persze, amivel ennél jóval kevesebb számítást igényel egy ekkora szám prímtényezőkre bontása, de így is jóval nagyobb feladat, mint a második eset.


~ ~ ~


De lehet más az összehasonlítási alap. Ha veszünk két prímet, egy kicsit és egy (nem túl) nagyot, mondjuk:

a = 11

b = 69313

Akkor azt kapjuk, hogy az a^b egy elég nagy szám lesz, egy 72 183 számjegyű szám, így a b^a egy jóval kisebb, 54 jegyű szám lesz. Nem érzem azt, hogy igazságos lenne egy súlycsoportban indítani őket.

2023. szept. 1. 10:03
Hasznos számodra ez a válasz?
 3/9 2*Sü ***** válasza:

> de így a prímeken haladva a 10. lépésben kiderül, hogy 29-cel osztható a szám. Innen már az osztás eredményével kell tovább számolni. Ezt a tíz osztás tízezerszer kell ismételni, és megkapod a prímtényezőket. Ez összesen százezer osztás lesz.


Módosítás: Mivel tudod, hogy az eredeti szám 29-nél kisebb prímekkel nem osztható, így az első 29-cel való osztás után már csak 29-től kell indítani az osztási kísérleteket, így nem százezer, hanem csak alig több, mint tízezer osztás után megkapod a prímtényezőket.

2023. szept. 1. 10:06
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:

#2: "Kísérletképpen két nagy prím szorzata:"

Legyen pl. a szorzat:

1545098039215686274509803921568627451480650567647058823529411764705882352981668800396553

Próbáld ki a linkeden, vagy itt, ahol ugyanez a faktorizáció csak 1 mp!!!

[link]


A lényeg, hogy ha 2, vagy több nagy prím (pl. 100+ számjegyű) van a szorzatban, akkor a faktorizáció nagyon nehéz, különben könnyű.

2023. szept. 1. 13:27
Hasznos számodra ez a válasz?
 5/9 2*Sü ***** válasza:

#4: Érdekes…


A te szorzatod 88 számjegyű, az én két nagy prímem szorzata viszont csak 82 számjegyű. Az én számom esetén a WolframAlpha nem írja ki a prímtényezőit, mondván „Standard computation time exceeded...”. Lásd: [link]

A te számod esetén viszont az általam linkelt oldal kb. 35 percre saccolja a kiszámításhoz szükséges időt.


Sejtésem szerint a WolframAlpha valamilyen mélységben cache-el, így nem azért írja ki a te szorzatodra 1 másodperc alatt a prímtényezőket, mert ennyi idő volt neki kiszámolni, hanem mert csak elő kell kapnia azt az eredményt, amit fene tudja milyen hosszadalmasan számolt ki korábban, majd eltárolta, hogy ha valaki ugyanerre kérdez rá, akkor megspórolja az újraszámítás idejét. Amit linkeltem a #2-es válaszomban, az viszont kliens oldalon ténylegesen számol, nincs benne ilyen jellegű cache-elés.

2023. szept. 1. 15:02
Hasznos számodra ez a válasz?
 6/9 anonim ***** válasza:

#5: "Sejtésem szerint a WolframAlpha valamilyen mélységben cache-el ..."

Nem erről van szó, természetesen, hiszen az ilyen számok ugyan ritkák, de mégis sok kvadrillió lehet, tehát mindet kiszámolni, tárolni lehetetlen - és felesleges.

Valóban ilyen gyorsan számolható! Nem az ECM, vagy QS, egyszerűbb, Rabin-Miller alapokon.

Részleteket csak akkor írok, (milyen tulajdonságú számoknál és hogyan működik a "csodamódszer" :D ), ha valakit érdekel.

2023. szept. 1. 16:43
Hasznos számodra ez a válasz?
 7/9 anonim ***** válasza:
Ehhez annyit, hogy a Wolfram egy publikus szoftver, viszont a bankok éppen két nagy prím szorzatát használják alapvető biztonsági rendszerként. És annak profik nehézgépein való számolása is nagyon soká kell, hogy tartson. Más szóval, a számjegyek növelése drasztikusan emeli a számítási időt.
2023. szept. 1. 18:25
Hasznos számodra ez a válasz?
 8/9 anonim ***** válasza:

1. vagyok

x n. Hátránya az x*x*x*x*...


Ez könnyen feloldharó

2023. szept. 1. 19:57
Hasznos számodra ez a válasz?
 9/9 anonim ***** válasza:

"bankok éppen két nagy prím szorzatát használják alapvető biztonsági rendszerként"

Ha a TLS protokollra gondolsz (a bankok is használják) az nem kimondottan bank specifikus. A TLS protokollnak része az RSA aminek erőssége 2 prímszám szorzatának faktorizációjának nehézsége. A TLS protkollban RSA helyett használható elliptikus görbe is, így nem feltétlen prímszámokat használ a bank sem, ez a digitális tanúsítványtól függ, hogy RSA vagy elliptikus görbe.

A TLS-nél az RSA-ban kulcsgenerálásnál, hogy hogyan kell prímszámokat választani úgynevezett erős prímeket, azt is leírja a megfelelő RFC, vagyis a kiválasztás szigorúbb mint simán randomizálva választani prímszámokat.

2023. szept. 1. 20:59
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!