$ dd bs=4M if=raspbian.img of=/dev/sdc
$ dd if=/dev/sdc of=raspberry.img bs=1M conv=notrunc,noerror
(define kombinationen | |
(lambda (max) | |
(let this ((queue '((0 0))) (states '())) | |
; queue: -> (0 1) wäre 0 Missionare, ein Kannibale | |
(if (null? queue) ; noch Elemente in der Queue? | |
(delete-duplicates ; doppelte Elemente sind ja toof | |
(delete (list 0 0) states)) ; States zurückgeben, mit (0, 0) gelöscht, da ja | |
; immer jemand im Boot sitzen muss. | |
(let ((top (car queue))) ; Vermerk auf das erste Element |
; Prüft, ob eine Zahl eine Primzahl ist laut Miller-Rabin-Test. | |
; http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html | |
; > Given an odd integer n [1], let n=2^rs+1 with s odd [2,3]. | |
; > Then choose a random integer a with 1<=a<=n-1 [4]. | |
; > If a^s=1 (mod n) [5] or a^(2^js)=-1 (mod n) [6] for some 0<=j<=r-1, then n passes the test. | |
(define (prim? n) | |
(cond | |
((< n 2) #f) | |
((>= n 2152302898747) (error "prim?" "Zu große Zahl" n)) ; '(2, 3) sind ausreichend für alle Zahlen < dieser | |
((memq n '(2 3 5 7 11)) #t) |
p = 880570337 | |
q = 283750367 | |
n = 249862156293063679, blocklänge(n) = 7 | |
öffentlicher Schlüssel e = 187702079 | |
privater Schlüssel d = 41999625893898879 | |
(188624497520608377 244956734302025128 200114068456308501 143567655139183288 133116905453364816 221841814359912533 187331302954347689 22618773148576146 96899192761479561 239687608500383492 67589050610855157 220191756918260171 13852308575901184 29018396952281124 65403460179436235 240304256606237987 80135917199800944 237964379390333512 62513313122576678 18267978644791853 92007074133075895 185817369957483024 39145942306690780 58255622521311131 61760987993815113 10580631897542339) | |
Dieser Text soll nur soetwas wie ein Beispiel sein, braucht den jemand? Und nebenbei, es ist ja nicht so, als ob andere RSA-Implementierungen mit Blöcken was anfangen könnten. |
(define (a8 a . r) | |
(let | |
( | |
(m (apply max r)) | |
) | |
(if (>= a m) | |
(+ (quadrat a) (quadrat m)) | |
(apply a8 (append r (list a))) | |
) | |
) |
(define (erweiterter_euklid a b) | |
(if (= b 0) | |
(list a 1 0) | |
(begin | |
(let* | |
( | |
(tmp (erweiterter_euklid b (modulo a b))) | |
(d (car tmp)) | |
(s (cadr tmp)) | |
(t (caddr tmp)) |
(define (euklid a b) | |
(if (= b 0) a (euklid b (modulo a b))) | |
) | |
(print (euklid 1071 1029)) | |
(print (euklid 1029 1071)) |
(define (a8 a . r) | |
(let | |
( | |
(m (apply max r)) | |
) | |
(if (>= a m) | |
(+ (quadrat a) (quadrat m)) | |
(apply a8 (append r (list a))) | |
) | |
) |
(define (primHelp num count) | |
(cond | |
((zero? (modulo num count)) #f) | |
((< count (sqrt num)) (primHelp num (+ count 1))) | |
(else #t) | |
) | |
) |
/** | |
* Read complete file into a String | |
*/ | |
try(InputStream is = ...) { | |
try(Scanner s = new Scanner(is).useDelimiter("\\A")) { | |
return s.hasNext() ? s.next() : ""; | |
} | |
} |