⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 数据加密技术之几种算法 sa-faq-1
💻
字号:
*********************************************************************************									       **				R S A - Verfahren			       **									       *********************************************************************************Die Schluessel-Generierung laeuft in 2 Stufen ab.A)	Es muessen 2 Primzahlen mit genprim berechnet werden. Die	Groessenordnung dieser Zahlen sollte 80-130 sein, und sich um	eine unterscheiden. Diese Zahlen muessen in einer Datei, mit	einem beliebigen Trennzeichen (z.B. '#') dazwischen, abgelegt	werden.		Alle Zahlen werden als Hexadezimalzahlen (fuer		Puristen: Sedizimal :-) ein-/ausgegeben.  Bei		Ein-/Ausgabe sind White-Spaces (Blank,Tab,Newline)		nicht signifikant.	Der zweite Parameter von genprim gibt die Wahrscheinlichkeit an,	mit der die gefundene Zahl wirklich eine Primzahl ist.  Fuer	eine Parameter n ist die Wahrscheinlichkeit 1-0.5^n. Fuer n=20	ist ein Programierfehler von mir schon wahrscheinlicher :-).	Das der Test nur probabilistisch ist, verringert bei vernuenftiger	Wahl von n die Aussagekraeftigkeit nur unwesendlich.B)	Genrsa generiert daraus eine Datei mit oeffendlichem/geheimen	Schluessel.  Diese Datei enthaelt 3 Zahlen.  Aus dieser Datei	gewinnt man die geheime, in dem man die letzte Zahl (mit Trenn-	zeichen) entfernt.  Den oeffendlichen erhaelt man duch Entfernung	der zweiten Zahl.Beispiel:	$ genrsa 10 20 >p1		# erste Primzahl	$ cat p1	2023A0B0BE5	$ genrsa 11 20 >p2		# zweite Primzahl	$ cat p2	537A985EC975	$ echo "#" | cat p1 - p2 >pd	# Eingabe fuer genrsa	$ genrsa <pd >rd		# Alle Zahlen fertig	$ cat rd	A7AF134EFB73D789793CA9	#	9245F9009636D26B7CA5ED	#	80F408891D5932D10C2585Dieses File rd muss man auf 2 Files verteilen:	$ cat geheim	A7AF134EFB73D789793CA9	#	9245F9009636D26B7CA5ED	$ cat oeffendlich	A7AF134EFB73D789793CA9	#	80F408891D5932D10C2585Die Dateien p1,p2,pd und rd sollte man schnell wieder loeschen.	$ rsaencode oeffendlich <data >crypt	# Verschluesseln	$ rsadecode geheim <crypt >clear	# EntschluesselnDie Verschluesselung laeuft in Bloecken ab, deren Groesse von der derersten Zahl des Schluessels Abhaengt.  Alle Bloecke werden als binaereDaten behandelt.  Allerdings wird beim Entschluesseln der letzte Blockmit ASCII-NULL aufgefuellt.  Dieses ist kein Fehler des RSA-Verfahrens,sondern liegt an meiner Verwendung.  Das RSA-Verfahren verschluesselteinfach Zahlen. Meiner Umwandlung von Daten in Zahlen ist das Mankoanzulasten.  Deshalb muss auch der verschluesselte Text mit btoa oderaehnlichem mailbar gemacht werden.  Zur Reduktion der Blockanzahl kannman natuerlich vorher den Text compressen, da er sowieso binaer behandeltwird.Bei mir (386-er mit 20 MHz) dauert die Ver-/Entschluesselung einesBlocks (aus 125 & 124 stelliger Primzahl) 20 Minuten !!!!!!Dafuer laeuft die Primzahlberechnung in 1-20 Stunden ab :-) !!!!!Das haengt von dem zufaelligen Startpunkt der Suche ab.Wer Lust hat, die Verschluesselung so zu modifizieren, dass nur einBlock mit RSA verschluesselt wird, und alle anderen, mit einem darinuebergebenen weiteren Schuessel, mit DES zu verschluesseln, der istherzlich eingeladen ein solches Programm analog rsa.c zu erstellen.Die eigendliche Verschluesselung ist mit den Routinen aus arith.ctrivial.  Es kostet allerding Zeit :-).Als Warnung fuer Leute, die mit den Routinen arbeiten wollen:Alle Routinen sind auf Laufzeit optimiert, und enthalten fast keineUeberpruefungen auf Ueberlauf o.ae. .  Wenn ein Fehler entdeckt wird(was selten ist :-), gibts eine core.  Alle Zahlen muessen >= 0 sein.Mein Wissen ueber RSA und die anderen verwendeten Verfahren hab ichaus:	Horster, Patrick:	Kryptologie / von Patrick Horster. - Mannheim;	Wien; Zuerich: Bibliographisches Institut, 1985.	    (Reihe Informatik; 47)	    ISBN 3-411-03106-9	NE: GTMartin Nicolay		( martin@trillian.megalon.de )Fliederstr. 234100 Duisburg 1W-GermanyPS:	Falls rand.h nicht vorhanden ist: darin sind nur die Funktionen	wie drand48 usw. deklariert.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -