Anfrage: Auftragsprogrammierung

Du brauchst Grafiken, gute Programme oder Leute die dir helfen? Frag hier.
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Anfrage: Auftragsprogrammierung

Beitrag von Kukulkan »

Hallo,

Ich suche einen PB-Programmierer der mir ein Include liefert das folgende Funktionen erfüllt:

Berechnen eines 2048 Bit Diffie-Hellman Schlüsselaustausches
- Berechnen von Primzahlen bis 2048 Bit (Bereich)
- Berechnen von Zufallszahlen bis 2048 Bit
- Berechnen von Modulo über diese Zahlen
- Berechnen von PowerModulo dieser Zahlen
- Ein- und Ausgabe immer per HEX
- Kein Einsatz von fremd-DLL's oder Userlibrarys!
- Bitte zuverlässigen und gut kommentierten Code!

Es soll ein einzelnes Include sein. Ich benötige Varianten für PB 3.94 und PB4 (für später mal). Vorerst muss es auf Windows laufen (ab W2000).

Ich kann funktionierenden Code für beinahe alle diese Aufgaben als C- und VB-Code liefern. Ich hab nur nicht die Zeit und den Nerv das alles nach PB zu wandeln. Auch fehlt mir das KnowHow, das auf Speed zu optimieren (evtl. mit Inline-Assembler?).

Angebote mit Preis in EUR (netto) und Zeitschätzung bitte per PN! Anfragen zu Details beantworte ich gerne hier im Thread.

Volker
Zuletzt geändert von Kukulkan am 07.03.2006 09:11, insgesamt 1-mal geändert.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Anfrage: Auftragsprogrammierung

Beitrag von NicTheQuick »

Volker Schmid hat geschrieben:Berechnen eines 2048 Bit Diffie-Hellman
Ist das auch eine Procedure oder gehören die Unterpunkte dazu?
- Berechnen von Modus über diese Zahlen
Was ist ein Modus über eine Zahl?
- Berechnen von PowerMod dieser Zahlen
Was ist das besondere an PowerMod?

Bis wann brauchst du das ganze?
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Hi Nic,
Ist das auch eine Procedure oder gehören die Unterpunkte dazu?
Das ist die gewünschte Funktionalität. Alle Unterpunkte sind Bestandteil dieser Funktionalität (sozusagen die Details).
Was ist ein Modus über eine Zahl?
Sorry, meite natürlich Modulo.
Was ist das besondere an PowerMod?
http://documents.wolfram.com/mathematic ... s/PowerMod
Bis wann brauchst du das ganze?
Nach Auftragserteilung max. 1 Woche.

Grüsse,

Volker
armada
Beiträge: 100
Registriert: 10.10.2005 18:00
Kontaktdaten:

Beitrag von armada »

Ich kann funktionierenden Code für beinahe alle diese Aufgaben als C- und VB-Code liefern. Ich hab nur nicht die Zeit und den Nerv das alles nach PB zu wandeln. Auch fehlt mir das KnowHow, das auf Speed zu optimieren (evtl. mit Inline-Assembler?)
könntest diese codes mal hier posten...hab kein plan was dieser schlüsselaustausch is
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Hallo Armada,

Hier die Info's zu Diffie-Hellman:
http://de.wikipedia.org/wiki/Diffie-Hellman

Unten bei Wikipedia findest Du auch Links mit Beispielen etc.. Nur will ich das mit Zahlen in der Grösse von 2048 Bit machen (PB-Quads sind 64 Bit).

Volker
armada
Beiträge: 100
Registriert: 10.10.2005 18:00
Kontaktdaten:

Beitrag von armada »

ich weiß wie groß quads sind ;)

werd mir das da mal in ruhe anschauen...scheint ja nich allzu kompliziert zu sein ;)
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Für alle, die das ganze nocmal etwas einfacher erklärt haben wollen, hier ein Link:
http://www.xml-dev.com/blog/index.php?a ... pic&id=196

(Hab den Link aus dem Wikipedia-Artikel...)
armada
Beiträge: 100
Registriert: 10.10.2005 18:00
Kontaktdaten:

Beitrag von armada »

habs noch nich getestet:

Code: Alles auswählen

Structure BigVar
  w.w[128]
EndStructure

Procedure BigVar_Length(*Var.BigVar)
  Protected Zaehler
  For Zaehler = 127 To 0 Step -1
    If *Var\w[Zaehler] <> 0
      Break
    EndIf
  Next
  ProcedureReturn Zaehler
EndProcedure

Procedure BigVar_Addition(*Var1.BigVar, *Var2.BigVar, *Ergebnis.BigVar)
  Protected Zwischenergebnis, Zaehler, Uebertrag
  For Zaehler = 0 To 127
    Zwischenergebnis = *Var1\w[Zaehler] + *Var2\w[Zaehler]
    Uebertrag = Zwischenergebnis >> 16
    *Ergebnis\w[Zaehler] = Zwischenergebnis & $FFFF
  Next
EndProcedure

Procedure BigVar_Subtraktion(*Var1.BigVar, *Var2.BigVar, *Ergebnis.BigVar)
  Protected Zwischenergebnis, Zaehler, Uebertrag
  For Zaehler = 0 To 127
    Zwischenergebnis = *Var1\w[Zaehler] - *Var2\w[Zaehler] - Uebertrag
    If Zwischenergebnis < 0
      Uebertrag = 1
      Zwischenergebnis + $10000
    Else
      Uebertrag = 0
    EndIf
    *Ergebnis\w[Zaehler] = Zwischenergebnis & $FFFF
  Next
EndProcedure

Procedure BigVar_RandomNumber(Startwert, *Ergebnis.BigVar)
  Protected Zaehler, ende
  RandomSeed(Startwert)
  For Zaehler = 0 To Random(127)
    *Ergebnis\w[Zaehler] = Random($FFFF)
  Next
EndProcedure

Procedure BigVar_Multiplikation(*Var1.BigVar, *Var2.BigVar, *Ergebnis.BigVar)
  Protected Laenge1, Laenge2, Zaehler, Zaehler1, Zaehler2, Zwischenergebnis, Uebertrag, Tempvar.BigVar
  Laenge1 = BigVar_Length(*Var1)
  Laenge2 = BigVar_Length(*Var2)
  For Zaehler1 = 0 To Laenge1
    For Zaehler2 = 0 To Laenge2
      Zwischenergebnis = *Var1\w[Zaehler1] * *Var2\w[Zaehler2]
      Zwischenergebnis + Uebertrag
      Uebertrag = Zwischenergebnis >> 16
      Tempvar\w[Zaehler1 + Zaehler2] = Zwischenergebnis & $FFFF
    Next
    If Uebertrag
      Tempvar\w[Zaehler1 + Zaehler2 + 1] = Uebertrag
    EndIf
    BigVar_Addition(@Tempvar, *Ergebnis, *Ergebnis)
    For Zaehler = 0 To 127
      Tempvar\w[Zaehler] = 0
    Next
    Uebertrag = 0
  Next
EndProcedure
wenn du lust hast kannste das ja schonmal testen obs funzt...
wenn ich zeit hab mach ich weiter...

achja und weil ich das jetzt erst sehe...geld will ich keins...dafür is aber auch nich kommentiert :D
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Hallo armada,

Danke für deine Mühe. Kannst Du ein Beispiel machen, wie die Zahlen in die BigVar-Struktur übergeben werden? Ich hab die Zahlen ja als HEX (zB "849dbd59069bff80cf30d052b74beeefc285b46fc773218c737ec8ee993b4f2ded30f48edace915f" für eine 320 Bit Zahl). Hex in Dec ist kein Thema, aber wie (Reihenfolge? Immer in 16Bit Blöcken?) muss das in deiner Struktur liegen?

Eigentlich fehlt dann nur noch die Division durch 2 und der Modulo. Dann könnte ich es testen.

Volker
armada
Beiträge: 100
Registriert: 10.10.2005 18:00
Kontaktdaten:

Beitrag von armada »

Volker Schmid hat geschrieben:Hallo armada,

Danke für deine Mühe. Kannst Du ein Beispiel machen, wie die Zahlen in die BigVar-Struktur übergeben werden? Ich hab die Zahlen ja als HEX (zB "849dbd59069bff80cf30d052b74beeefc285b46fc773218c737ec8ee993b4f2ded30f48edace915f" für eine 320 Bit Zahl). Hex in Dec ist kein Thema, aber wie (Reihenfolge? Immer in 16Bit Blöcken?) muss das in deiner Struktur liegen?

Eigentlich fehlt dann nur noch die Division durch 2 und der Modulo. Dann könnte ich es testen.

Volker
also gut is ja nich viel arbeit...und du brauchst nur division durch 2? was ist dann falls das ergebnis ungerade ist...die funktionen sind jetzt nur für grade zahlen...die 1 abschneiden oder wie soll ichs machen?
Antworten