AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein >Multiplikative Inversion bei IDEA<
Thema durchsuchen
Ansicht
Themen-Optionen

>Multiplikative Inversion bei IDEA<

Ein Thema von MaOfDe · begonnen am 26. Mär 2004 · letzter Beitrag vom 4. Apr 2004
Antwort Antwort
MaOfDe

Registriert seit: 3. Jan 2004
Ort: Berlin
73 Beiträge
 
Delphi 6 Personal
 
#1

>Multiplikative Inversion bei IDEA<

  Alt 26. Mär 2004, 22:26
Hallo zusammen,
muss einen Vortrag zu IDEA(Verschlüsselungsverfahren) gestalten und nicht nur das: Naturlich muss ich noch ein Programm dazu schreiben, was das ganze erst anschaulich macht. Die Codierung war einfach, die hab ich in Sack und Tütten, doch nun die Entschlüsslung! Ich hab mir mühsam alles ausm Netz gekratzt, was ich finden konnte und hier der Stolperstein:
Man muss durch "additives" und "multiplikatives" Inversieren einige Teilschlüssel(à 16 bit) ändern.

Additive Inversion heißt einfach die Gegenzahl des gegebenen Wertes zu bilden, sprich, wenn x der gegebene 16 bit-Wert ist, ist -x, also das Zweier-Komplement, die additive Inversion.

Multiplikative Inversion dagegen wäre dann(wenn wir bei x bleiben): 1/x=a sprich a*x=1.
Und hier ist mein Problem! Da kommt auf jeden Fall was raus, was kleiner gleich 1 und größer Null rauskommt, aber ich beweg mich ja nur in einem 16 bit-Feld und der Typ Real z.B. hat 64-bit....

Wie soll ich det anstellen??? Hat das schon jemand durchgenommen??? HILFE!!!
  Mit Zitat antworten Zitat
MaOfDe

Registriert seit: 3. Jan 2004
Ort: Berlin
73 Beiträge
 
Delphi 6 Personal
 
#2

Re: >Multiplikative Inversion bei IDEA<

  Alt 29. Mär 2004, 14:16
Weiß keiner eine Antwort?

Es muss sowas wie beim 2er-Komplement sein...
also zum Beispiel 4d(=0100b):
Einer-Komplement(1-->0; 0-->1): 1011b(=-5d oda 11d)
Zweier-Komplement(+1): 1100b(=-4d oda 12d)

Wenn man 4 und die Gegenzahl addiert, erhält man bekanntlich 0:
4d+(-4d)=0
0100b + 1100b = (1) 0000
Da wir uns nur in 4 Bits bewegt haben, fällt die 5. Stelle weg und wir bekommen 0 als Resultat unserer mühseligen Rechenarbeit ^^.

Vielleicht gibts sowas auch in meinem Fall... aba wie ich befürchte, ist das auch net der rischtije Weech..
  Mit Zitat antworten Zitat
MaOfDe

Registriert seit: 3. Jan 2004
Ort: Berlin
73 Beiträge
 
Delphi 6 Personal
 
#3

Re: >Multiplikative Inversion bei IDEA<

  Alt 4. Apr 2004, 12:20
OK, hab was gefunden... haut zwar nicht hin mit X * MulInv(X)=1, aber immerhin ein Anfang.

Delphi-Quellcode:
//written by Dave Barton (davebarton@bigfoot.com)
function MulInv(x: word): word;
var
  t0, t1, q, y: word;
begin
  if x<= 1 then
  begin
    Result:= x;
    Exit;
  end;
  t1:= DWord($10001) div x;
  y:= DWord($10001) mod x;
  if y= 1 then
  begin
    Result:= (1 - t1) and $FFFF;
    Exit;
  end;
  t0:= 1;
  repeat
    q:= x div y;
    x:= x mod y;
    t0:= t0 + (q*t1);
    if x= 1 then
    begin
      Result:= t0;
      Exit;
    end;
    q:= y div x;
    y:= y mod x;
    t1:= t1 + (q*t0);
  until y= 1;
  Result:= (1-t1) and $FFFF;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz