matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Schulmathe
  Status Primarstufe
  Status Mathe Klassen 5-7
  Status Mathe Klassen 8-10
  Status Oberstufenmathe
    Status Schul-Analysis
    Status Lin. Algebra/Vektor
    Status Stochastik
    Status Abivorbereitung
  Status Mathe-Wettbewerbe
    Status Bundeswettb. Mathe
    Status Deutsche MO
    Status Internationale MO
    Status MO andere Länder
    Status Känguru
  Status Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenZahlentheorieAlle Zahlen faktorisieren
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Deutsch • Englisch • Französisch • Latein • Spanisch • Russisch • Griechisch
Forum "Zahlentheorie" - Alle Zahlen faktorisieren
Alle Zahlen faktorisieren < Zahlentheorie < Algebra+Zahlentheo. < Hochschule < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Zahlentheorie"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Alle Zahlen faktorisieren: RSA hacken
Status: (Frage) beantwortet Status 
Datum: 05:35 So 06.11.2011
Autor: krzyzape


DEFDBL A-Z:
DEF SEG = 0: SCREEN 12
CLEAR , , 2000
a = 101
FOR d = 0 TO 400 STEP 2
vv = 30
b = a + vv
p = a * b
zz = 1
ga = INT((((vv / 2 - 1) ^ 2) * 2) / 4)
FOR y = ((a - b) / 2 + b) - 10 TO ((a - b) / 2 + b) + 10
zz = zz + 1
IF zz MOD 25 = 0 THEN
zz = 1
END IF

dt = (p - ((y - (d / 2 - 1)) * (d - 2) + ((y - (d / 2 - 1))) ^ 2)) * 2
dt = (dt - 2) / 2

LOCATE zz + 1, 1: PRINT "y="; y
LOCATE zz + 1, 10: PRINT "ga="; ga; " d-test="; dt
PRINT " "
PRINT " a="; a; " b="; b; "P="; a * b; "b-a= "; b - a; " Bingo (a+b)/2 ="; (a + b) / 2;

"d="; d
NEXT
LOCATE 30, 1: INPUT ; a7
IF a7 = 1 THEN END
CLS

NEXT
---------------------------------------------------------------
ok hier mal ein Beispiel !!!
P=a*b
P=101 *131
vv=b-a=131-101=30
y=(a+b)/2=116 Das ist der Wert für y
Alle dt- Werte bis einschließlich y=1 bis y=115 sind Positiv !!!!
Alle dt-Werte über y=115 sind negativ.Das ist wichtig ,
denn das ist unser Nullpunkt.


Die Werte bei y=116
d=0 dt=-225
d=2 dt-226
d=4 dt=-225
d=6 dt=-222
d=8 dt=-217
d=10 dt=-210
d=12 dt=-201
d=14 dt=-190
d=16 dt =-177
d=18 dt=-162
d=20 dt=-145
d=22 dt=-126
d=24 dt=-105
d=26 dt=-82
d=28 dt=-57
d=30 dt=-30 Bingo!! ist gleich b-a

Und so verhalten sich "alle" Zahlen wenn a>ga für alle d und nicht nur 30

Das Programm ist im kostenlosen QBASIC geschrieben.
Einfach Quelltext kopieren und in den MS-Editor einfügen und speichern.
Dann die Dateiendung .txt in .bas ändern. Dann selbige mit Qbasic 4.5 öffnen

und starten.

Kommentar oder Hilfe

Die Faktorisierung kann man bei y=(a+b)/ 2 ablesen (+-)-Grenze, weil dann zb

bei
a=101 und d = 30 dt =- 30 ergibt.
das gilt für alle a über den Wert a =97.
der dt-Wert bei y=(a+b)/2 ist bei bei allen a Konstant.
bei a >ga zeigt das - (minus) genau auf diese Stelle .
Darüber ist +.
Somit sind alle Zahlen mit a>ga direkt faktorisierbar !!!

für die a unter den Grenzwert GA beginnt der Nullpunkt zu wandern.
Man muß P einfach mit einer Zahl multiplizieren und bekommt eine

berechenbare raus ( a>ga).
Wenn man d =0 setzt, sieht man was ich meine.

y=(a+b)/2 dann [mm] dt=-((((b-a)/2)^2) [/mm]

somit ist jedes Produkt direkt teilbar was zu finden war

zb wenn bei 3* 13 a (die 3) unter ga wäre dann P mal zB 3 nehmen

dann wäre das neue P (3*3) *13 (13-9)

Delta (b-a) also kleiner und somit ga also kleiner und 13 direkt berechenbar.
was zu finden war (3*13)

PS2
Übrigens
bei (a+b)/2 [mm] =-((((b-a)/2)^1) [/mm] und d=0 nähert sich der wert (a+b)/2

------------------------------------------------
PS. Der Wert ist an der Grenze (+-) bei d=0 abzulesen. Das ist der Bezugspunkt

ohne den keine Ablesung möglich wäre.
Wenn d =-vv beträgt ist das b-a gefunden !!!!


Daß alle Zahlen a >ga direkt faktorisierbar sind weiß ich !!!
Es geht nur um den Kram a<ga und das soll P*x lösen.
Ich freue mich auf eure Kommentare !!!

PS

Den Nullpunkt zu finden dürfte im binär-Sortiersystem eigentlich kein großes

Problem darstellen.

Wenn p > gp = int(((vv / 2) ^ 2 - 1) ^ 2) dann ist auch a>ga.

Somit wäre die Erweiterung x*p prinzipiell auch kein Problem.

--------------------------------------------------------------------------
Hier das Programm zur Formel.


DEFDBL A-Z:
DEF SEG = 0: SCREEN 12
CLEAR , , 2000
CLS
INPUT ; "Bitte P eingeben"; P
IF P = 0 OR P = 1 THEN END
REM ga = INT((((d / 2 - 1) ^ 2) * 2) / 4)
REM gp = INT(((d / 2) ^ 2 - 1) ^ 2)
y = (P - 1) / 2
s = y
start:

dt = (((P - ((y - (d / 2 - 1)) * (d - 2) + ((y - (d / 2 - 1))) ^ 2)) * 2) - 2) / 2
t = y
IF dt < 0 OR dt = 0 THEN y = y - INT(s / 2): GOTO sp
IF dt > 0 THEN y = y + INT(s / 2)
sp:

s = INT(s / 2)
IF y = t THEN GOTO weiter
GOTO start
weiter:
tt = tt + 1
y = y + 1
dt = (((P - ((y - (d / 2 - 1)) * (d - 2) + ((y - (d / 2 - 1))) ^ 2)) * 2) - 2) / 2
IF dt < 0 or dt =0 THEN GOTO runter
IF dt > 0 THEN GOTO weiter
schluss:
CLS
d = SQR(ABS(dt)) * 2
LOCATE zz + 1, 1: PRINT "(a+b)/2 = y = "; y; " dt="; dt; " b-a ="; d
END
runter:
IF tt > 5 THEN GOTO schluss
tt = tt + 1
y = y - 1
dt = (((P - ((y - (d / 2 - 1)) * (d - 2) + ((y - (d / 2 - 1))) ^ 2)) * 2) - 2) / 2

IF dt < 0 or dt =0 THEN GOTO runter
IF dt > 0 THEN GOTO weiter


-----------------------------------------------------

Wenn a > ga sind die Faktoren sofort da !!!

MfG

Meine Formel funktioniert zu 100 Prozent und ich bin mir über dessen Bedutung im klaren.
Keine Computerverschlüsselung mehr !!!
MfG
KRZYZAPE


        
Bezug
Alle Zahlen faktorisieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 06:15 So 06.11.2011
Autor: krzyzape

Anmerkung meinerseits.

P=11*31
a<ga also nicht lösbar

Nun kommt mein nächster Geniestreich

P*3 =31*33 a>ga und somit lösbar

Ich weiß ich habe einen jahrtausende alten Menschheitstraum erfüllt.

Helft mir ,daß die oben ihn nicht mehr zerstören können.

MfG

KRZYZAPE






Bezug
                
Bezug
Alle Zahlen faktorisieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 08:39 So 06.11.2011
Autor: Al-Chwarizmi


> Anmerkung meinerseits.
>  
> P=11*31
>  a<ga also nicht lösbar
>
> Nun kommt mein nächster Geniestreich
>  
> P*3 =31*33 a>ga und somit lösbar
>  
> Ich weiß ich habe einen jahrtausende alten
> Menschheitstraum erfüllt.


Das ist ja gewaltig !

Alles Gute ...

Bezug
                        
Bezug
Alle Zahlen faktorisieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 12:18 So 06.11.2011
Autor: krzyzape

Darum gehts nicht.

Es geht darum, daß dieses Programm in polynominaler Zeit jedes Produkt
faktorisiert, du Genie.




Bezug
                                
Bezug
Alle Zahlen faktorisieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 12:57 So 06.11.2011
Autor: tobit09


> Es geht darum, daß dieses Programm in polynominaler Zeit
> jedes Produkt
>  faktorisiert, du Genie.

Wenn der Algorithmus das nicht schaffen würde, wäre er auch ein sehr schlechter. Z.B. durch Ausprobieren aller denkbaren Teiler erhält man auch einen Algorithmus von polynomialer Laufzeit.

Bezug
                                        
Bezug
Alle Zahlen faktorisieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:02 So 06.11.2011
Autor: krzyzape

Nein das stimmt nicht.

Deshalb hat RSA ja auch bis jetzt funktioniert.


Bezug
                                                
Bezug
Alle Zahlen faktorisieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:31 So 06.11.2011
Autor: reverend

Hallo krzyzape,

Tobias hat Recht. Die einfache sequentielle Teilersuche ist natürlich polynomial.

Wenn Dein Algorithmus so gut ist, dann zerleg doch einfach eine der noch nicht faktorisierten []RSA-Zahlen, z.B. RSA 704.

Grüße
reverend


Bezug
                                                        
Bezug
Alle Zahlen faktorisieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 20:45 Di 08.11.2011
Autor: felixf

Moin,

> Tobias hat Recht. Die einfache sequentielle Teilersuche ist
> natürlich polynomial.

so einfach ist das nicht. Die grosse Frage ist: polynomiell in was?

In der Komplexitaetstheorie, wo man von polynomieller oder exponentieller Laufzeit spricht, bezieht man sich immer auf die Groesse $n$ der Eingabe. Die Eingabe ist hier die Zahl $N$, die zu faktorisieren ist. Die Groesse der Eingabe ist also die Anzahl Bit, die man benoetigt, um diese Zahl darzustellen. Die Groesse $n$ ist also [mm] $\approx \log_2 [/mm] N$.

Da die Teilersuche polynomiell in $N$ ist, ist sie somit exponentiell in $n$, also exponentiell in der Eingabegroesse.

LG Felix


Bezug
                                                                
Bezug
Alle Zahlen faktorisieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 21:08 Di 08.11.2011
Autor: reverend

Hallo Felix,

> > Tobias hat Recht. Die einfache sequentielle Teilersuche ist
> > natürlich polynomial.
>  
> so einfach ist das nicht. Die grosse Frage ist: polynomiell
> in was?
>  
> In der Komplexitaetstheorie, wo man von polynomieller oder
> exponentieller Laufzeit spricht, bezieht man sich immer auf
> die Groesse [mm]n[/mm] der Eingabe. Die Eingabe ist hier die Zahl [mm]N[/mm],
> die zu faktorisieren ist. Die Groesse der Eingabe ist also
> die Anzahl Bit, die man benoetigt, um diese Zahl
> darzustellen. Die Groesse [mm]n[/mm] ist also [mm]\approx \log_2 N[/mm].
>  
> Da die Teilersuche polynomiell in [mm]N[/mm] ist, ist sie somit
> exponentiell in [mm]n[/mm], also exponentiell in der
> Eingabegroesse.

Ja, klar. Ich hatte nur den Eindruck, der Behauptung hier läge die Annahme zugrunde, die Faktorisierung sei bisher exponentiell in N gewesen, und das ist sie ja nicht.

Grüße
reverend


Bezug
                                                
Bezug
Alle Zahlen faktorisieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:45 So 06.11.2011
Autor: tobit09


> Nein das stimmt nicht.

Doch. Hier in Pseudo-Code ein simpler Algorithmus zum Auffinden der Zerlegung von [mm] $N=p\cdot [/mm] q$ mit Primzahlen $p,q$:

for(p=2; p<N; p++)
   for(q=2; q<N; q++)
      [mm] if($p\cdot [/mm] q==N$) return (p,q);

> Deshalb hat RSA ja auch bis jetzt funktioniert.

Der Punkt ist: Primfaktorzerlegung von N geht in polynomialer Laufzeit zu N. Aber (bisher) nicht in polynomialer Laufzeit zur Stellenzahl von N.

Falls du dich für solche Verfahren interessierst: Guck mal []hier und []hier.

Bezug
                                                        
Bezug
Alle Zahlen faktorisieren: etwas kleiner...
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 14:51 So 06.11.2011
Autor: reverend

Hallo krzyzape,

hier ein einfacheres Beispiel mit "nur" 113 Dezimalstellen:
87.714.969.705.038.411.076.272.137.418.539.099.801.877.190.558.970.371.113.
762.453.702.525.982.911.939.243.939.521.562.715.111.692.818.014.473.106.391

Das ist das Produkt aller Primzahlen bis einschließlich 277, zuzüglich 1.

Eine Zerlegung ist m.W. bisher nicht publiziert, sie liegt mir aber vor. Es gibt drei Faktoren, davon zwei sehr große.
Die Zerlegung hat mit spezialisierten Programmen auf normalen PCs (4 an der Zahl) etwa sieben Tage gedauert. Mit den schnellsten heute handelsüblichen sollte ein PC das sogar in etwa 3 Tagen schaffen (Methode: quadratisches Sieb). Mit elliptischen Kurven dauerts wesentlich länger, geschätzt 8 Tage.

Natürlich musst Du Dein Programm dann erst auf "Langzahlen" umstellen, aber der Algorithmus kann ja der gleiche bleiben.

Viel Erfolg!
reverend

PS: einfacher einzulesen ist die Zahl natürlich ohne Punkte. Wegen der Fensterbreite habe ich eine einzige Leerstelle eingebaut, die musst Du dann wieder löschen.
8771496970503841107627213741853909980187719055897037111376245370252598
2911939243939521562715111692818014473106391



Bezug
        
Bezug
Alle Zahlen faktorisieren: Antwort
Status: (Antwort) fertig Status 
Datum: 09:22 So 06.11.2011
Autor: tobit09

Hallo krzyzape,

ich muss dich enttäuschen:

Die Schwierigkeit zum Hacken von RSA liegt nicht darin, irgendeinen Algorithmus zu finden, der natürliche Zahlen faktorisiert. Du bist nicht der erste, der einen solchen Algorithmus findet.

Die Schwierigkeit liegt vielmehr darin, einen entsprechenden Algorithmus zu finden, der so schnell ist, dass er die extrem großen Zahlen (mehrere hundert Dezimalstellen), die zur Verschlüsselung verwendet werden, in akzeptabler Zeit faktorisieren kann.

Viele Grüße
Tobias

Bezug
                
Bezug
Alle Zahlen faktorisieren: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 13:06 So 06.11.2011
Autor: krzyzape


Und genau das leistet meine formel.
Gib das (Programm zur Formel) in Qbasic ein, dann siehst du es.

MfG


Bezug
                        
Bezug
Alle Zahlen faktorisieren: Antwort
Status: (Antwort) fertig Status 
Datum: 13:52 So 06.11.2011
Autor: tobit09

Siehe https://matheraum.de/read?i=834060, unterer Abschnitt.

Bezug
        
Bezug
Alle Zahlen faktorisieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 13:59 So 06.11.2011
Autor: krzyzape

1: DEFDBL A-Z:
2: DEF SEG = 0: SCREEN 12
3: CLEAR , , 2000
4: CLS
5:
6: INPUT ; "Bitte P eingeben"; P
7: IF P = 0 OR P = 1 THEN END
8: y = (P - 1) / 2
9: s = y
10:
11: start:
12: dt = P - y^2
13: t = y
14: IF dt < 0 OR dt = 0 THEN y = y - INT(s / 2): GOTO sp
15: IF dt > 0 THEN y = y + INT(s / 2)
16:
17: sp:
18: s = INT(s / 2)
19: IF y = t THEN GOTO weiter
20: GOTO start
21:
22: weiter:
23: tt = tt + 1
24: y = y + 1
25: dt = P - y^2
26: IF dt < 0 or dt=0 THEN GOTO runter
27: IF dt > 0 THEN GOTO weiter
28:
29: schluss:
30: CLS
31: d = SQR(ABS(dt)) * 2
32: ga = INT(((d / 2 - 1) ^ 2) / 2)
33: LOCATE zz + 1, 1: PRINT P; " = "; (y-d/2); " * "; (y+d/2); ", ga = "; ga;
34: END
35:
36: runter:
37: IF tt > 5 THEN GOTO schluss
38: tt = tt + 1
39: y = y - 1
40: dt = P - y^2
41:
42: IF dt < 0 or dt=0 THEN GOTO runter
43: IF dt > 0 THEN GOTO weiter
44:
45:
46: Hier eine Vereinfachung des Algorithmuses



Bezug
                
Bezug
Alle Zahlen faktorisieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 21:06 Di 08.11.2011
Autor: felixf

Moin!

>
1: DEFDBL A-Z:
2: >  DEF SEG = 0: SCREEN 12
3: >  CLEAR , , 2000
4: >  CLS
5: >  
6: > INPUT ; "Bitte P eingeben"; P
7: >  IF P = 0 OR P = 1 THEN END
8: >  y = (P - 1) / 2
9: >  s = y
10: >  
11: > start:
12: >  dt = P - [mm]y^2[/mm]
13: >  t = y
14: >  IF dt < 0 OR dt = 0 THEN y = y - INT(s / 2): GOTO sp
15:
16: Was soll eigentlich dieses voellig ueberfluessige "GOTO sp"?
17:
18: >  IF dt > 0 THEN y = y + INT(s / 2)
19: >  
20: > sp:
21: >  s = INT(s / 2)
22: >  IF y = t THEN GOTO weiter
23: >  GOTO start
24: >  
25: > weiter:
26: >  tt = tt + 1
27: >  y = y + 1
28: >  dt = P - [mm]y^2[/mm]
29: >  IF dt < 0 or dt=0 THEN GOTO runter
30: >  IF dt > 0 THEN GOTO weiter
31: >  
32: > schluss:
33: >  CLS
34: >  d = SQR(ABS(dt)) * 2
35: >  ga = INT(((d / 2 - 1) ^ 2) / 2)
36: >  LOCATE zz + 1, 1: PRINT P; " = "; (y-d/2); " * "; (y+d/2); 
37: > ", ga = "; ga;
38: >  END
39: >  
40: > runter:
41: >  IF tt > 5 THEN GOTO schluss
42: >  tt = tt + 1
43: >  y = y - 1
44: >  dt = P - [mm]y^2[/mm]
45: >  
46: > IF dt < 0 or dt=0 THEN GOTO runter
47: >  IF dt > 0 THEN GOTO weiter
48: >  


>  
> Hier eine Vereinfachung des Algorithmuses

Warum postest du den Algorithmus nicht a) ohne alle Eingabe/Ausgabe-Teile, und b) in einer vernuenftigen, gut lesbaren Programmiersprache? GOTOs sind seit Jahrzehnten out. (Ausserdem: wer hat schon QBasic oder aehnliches auf dem Rechner?)

Mal davon abgesehen: wo ist dein Beweis, dass dieses Programm in [mm] $O(poly(\log_2 [/mm] P))$ Schritten fertig wird und eine echte Faktorisierung ausspuckt? Oder ist das eine (unbewiesene) Vermutung von dir?

Ich habe mal versucht, das Programm in C++ zu uebersetzen. Bei der Eingabe 116 gibt es mir "116 = 7.46887 * 15.5311, ga = 4" aus.

LG Felix


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Zahlentheorie"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.schulmatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]