i n d e x <--backnotescategories: arctic | art | biology | book | compile | crypto | cryptoart | debian | email | entropy |
ffmpeg | funk | game | ghostradio | hades | informationtheorie | internet | laser | linux | linuxaudio |
logic | machinelearning | math | mikrotik | movie | neuralnetworks | noise | nonhuman | notes | particlephysics |
physics | radio | radioactive | raspi | raspi5 | renameseq | rng | softwaredefinedradio | sound | stockexchange |
tools | underinfluence | videolooper | vlc | vlf | xterm |
search:
$ gpg --output revocation-certificate.asc --gen-revoke 86C30530
§ gpg --import revocation-certificate.asc
$ gpg --list-keys 86C30530 optional:gpg --send-keys 86C30530 ##crypto ##linux ##tools
maex@:~/ghostradio/code$ more ghostradio.py import numpy as np import cv2 import os, sys, struct, shutil, time print "configuring video dev" # 1 = composite 0 = tuner usw os.system("v4l2-ctl -i 1") cap = cv2.VideoCapture(0) #resolution ret = cap.set(3,720) ret = cap.set(4,576) timestr = time.strftime("%Y%m%d-%H%M%S") grname = "gr-random-bin"+timestr fd = os.open(grname,os.O_RDWR|os.O_CREAT) while(True): # Capture frame-by-frame ret, frame = cap.read() # Our operations on the frame come here gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) for x in xrange(1, 12): # zeilen anzahl und position 1 = start 2 =laenge (bei 640x480 ist das theoretisch 1, 479) for y in xrange(1, 18): # scanrange 1 start 2 ende (zb fuer 640x480 ist das dann 1, 640) output = gray[x, y] # output = bin(gray[x ,y])[2:].zfill(8) # print bin(gray[x ,y])[2:].zfill(8) output = chr(output) os.write(fd, output) # change to this to write down numbers: # output = str(output) # os.write(fd, output+';') # Display the resulting frame cv2.imshow('frame',gray) if cv2.waitKey(1) & 0xFF == ord('q'): break #checking filesize > 2gb close file open new filename+timestamp statinfo = os.stat(grname) b = statinfo.st_size b = ((b /1024)/1024) if b > 2000: os.close(fd) shutil.move('gr-random-bin'+timestr,'random') timestr = time.strftime("%Y%m%d-%H%M%S") grname = "gr-random-bin"+timestr fd = os.open("gr-random-bin"+timestr,os.O_RDWR|os.O_CREAT) # When everything done, release the capture os.close(fd) cap.release() cv2.destroyAllWindows() maex@:~/ghostradio/code$##ghostradio ##linux ##entropy ##cryptoart
code: ZECGIRMWRHGWFWFPLDSY SHUUZIEFUFFWTCIFJITC NSFWKMYFYIEYHWARAZXW FXRBQAWHVMOWTIHJYYWR FWOFVAFCCFTEUZHYWLVI YKKIEBYZWRFYYSVVSTCQ SKOFXBWFMEQIJTIIZCLM RXVOXVIEXLQHXFRIJCWY JJYAFKNYAFAVDNWJIJPY TMRXNITBIBOPWVWVMKLE LAYAFIDAYDKIEZCFHERM GWLIIZHLXIIINNGQBMCK LECGEDSVVIGWWVCBJWVE- http://hairywhale.awardspace.co.uk/hairyworld/work/tech4multimedia/polyalphabeticSol.html">http://hairywhale.awardspace.co.uk/hairyworld/work/tech4multimedia/polyalphabeticSol.html - erstes muster: YAFKNYAF in zeile 9 die entfernung betraegt 5 zeichen, dh das keywort kann 5 zeichen lang sein. - zweites muster YAFAVDNWJIJPYTMRXNITBIBOPWVWVMKLELAYAF mehrere zeilen die entfernung betraegt 35 zeichen, das bestaerkt die erste vermutung von einem 5zeichen keywort 35:7=5 - drittes muster MRXVOXVIEXLQHXFRIJCWYJJYAFKNYAFAVDNWJIJPYTMRX die entfernung betraegt 42 zeichen, da passt 5 nicht rein, 6 schon 6 x 7 - viertes muster IIZCLMRXVOXVIEXLQHXFRIJCWYJJYAFKNYAFAVDNWJIJPYTMRXNITBIBOPWVWVMKLELAYAFIDAYDKIEZCFHERMGWLIIZ = 89, eine primzahl :) , kein muster - fuenftes muster SVVSTCQSKOFXBWFMEQIJTIIZCLMRXVOXVIEXLQHXFRIJCWYJJYAFKNYAFAVDNWJIJPYTMRXNITBIBOPWVWVMKLELAYAFIDAYDKIEZCFHERMGWLIIZHLXIIINNGQBMCKLECGEDSVV = 133 , muster 7 x 19 - sechstes muster MRXVOXVIEXLQHXFRIJCWYJJYAFKNYAFAVDNWJIJPYTMR = 42 , muster 6 x 7 (nur 2er kombination) - - wesentlich einfacher und genauer als die hier angewendete Kasiski examination, ist die http://www.kryptographiespielplatz.de/index.php?aG=6389429be8b73abd3b9d6c19f46699ee4e4a735c">autokorrelation die kommt auf ein eindeutiges ergebnis von 6. - - - autokorrelation beschreibung: http://www.hsg-kl.de/faecher/inf/krypto/poly/index.php">http://www.hsg-kl.de/faecher/inf/krypto/poly/index.php - das hier abgebildete vigenere chiffre ist zu muehsam haendisch zu knacken, wir steigen um auf informationstechnologie. der naechster schritt, ist die autokorrelation zu scripten. - - nicht so einfach, das resultat der keylaenge mittels dem hsg.kl.de python scripts das ergebnis: maex@sis:~/crypto/karte2$ python keylength.py [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 8, 8, 10, 10] -> wir wissen es ist ein 6 zeichen langes keyword, vom cryptotool, dh 6 und 3 sind relevant. mehr lesen, besser verstehen - crypto - ##crypto
ein workshop zur geschichte der kryptographie, anhand des buches von friedrich l. bauer * und simon singh**.
die einfuehrung beginnt bei den begrifflichkeiten ueber text und code, schluessel und verschluesselung, sprache als interpretation von zeichen(-ketten) und geht weiter in die ersten verschluesselungs techniken, bis hin zu einem erklaerungsversuch von asymetrischer verschluesselung und quantenmechanischen ansaetzen.
der erste praktische teil beschaeftigt sich mit einfachen verschluesselungsverfahren die man zb zum schreiben und "verschluesseln" von urlaubspostkarten einsetzen kann. und soll das grundlegende werkzeug erklaeren. der zweite teil behandelt die gegenwaertigen digitalen verfahren zur abhoersicheren kommunikation mittels pgp.
*friedrich l. bauer: Entzifferte Geheimnisse: Methoden und Maximen der Kryptologie
**simon singh: Geheime Botschaften. Die Kunst der Verschluesselung von der Antike bis in die Zeiten des Internet
[image] | [image] |
entschluesselungs code fuer eine monosubstitutions chiffre von oliver frommel:
maex@sis:~/crypto$ more dechiffer.py alphabet = "".join([chr(x+65) for x in range(26)]) key = "KEYALPHABETUEUEICANDFO" cryptotext = "FBAWBKGBFVHPMVIAURIJMAIUMJMAPVGLMGAMOVMOKEYBMHKALYLKLZ" plaintext = "" for c in cryptotext: plaintext += alphabet[key.find(c)] print plaintext maex@sis:~/crypto$
memo1:
teil 2 von peter wagenhuber
links:
http://www.math.tamu.edu/~dallen/hollywood/breaking/v.htm">http://www.math.tamu.edu/~dallen/hollywood/breaking/v.htm
die erste kryptoanalyse:
[image] |
die erste erhaltene postkarte mit caesar chiffre, die als schoenes fallbeispiel fuer die haeufigkeitsanalyse verwendet wird. / von http://users.mur.at/thesix/">the six |
[image] |
die buchstaben haeufigkeitsverteilung in einem laengeren deutschen text (source: http://upload.wikimedia.org/wikipedia/de/0/0e/Alphabet_haufigkeit.svg) |
die buchstaben haeufigkeitsverteilung der postkarte von theSix |
der code: maex@sis:~/crypto$ more charakter_count.sh #!/bin/bash alphabet=alphabet.list > result.file for char in `cat $alphabet` do # echo $char counter=0 counter=`awk -F [$char] 'NF>1{t+=NF-1}END{print t}' jogikarte.text` if [ "$counter" = "" ] ; then counter=0 fi echo $counter $char >> result.file done exit 0; maex@sis:~/crypto$ maex@sis:~/crypto$ more result.file 9 A 6 B 4 C 2 D 1 E 0 F 3 G 27 H 6 I 1 J 4 K 6 L 30 M 1 N 4 O 5 P 13 Q 1 R 2 S 5 T 2 U 12 V 2 W 1 X 0 Y 8 Z maex@sis:~/crypto$ maex@sis:~/crypto$ more plot_graph.sh #!/usr/bin/gnuplot -persist set terminal png nocrop font small size 640,480 set output 'verteilung.png' set style data histograms set title "alphabetische verteilung" #set xlabel "a-z" set ylabel "anzahl" plot "result.file" using 1:xticlabels(2) maex@sis:~/crypto$
das chiffre der postkarte war ein thesix modifiziertes caesar model mit leerzeichen und daher auch halbwegs zeitaufwendig zu knacken.
das chiffre: TQMJMHOZBM MHIB HOZIGHDWHM HQVHLQM MUHRIPZHMQVNIKPHCQMTHGBHCQMTHZMOVMAHBVLHLIPMZHLQVOMHDQMHXW ASIZAMVHUQAHCMZ KPTBM MTAMVHAMEAMVHGBHCMZ +KPQKSMVHMQVMHVMAAMHQLMMH QVL der schluessel: ABCDEFGHIJKLMNOPQRSTUVWXYZ IJKLMNOPQRSTUVWXYZ ABCDEFGH
der buchstabe H war im alphabet als leerzeichen definiert und das alphabet ist 27 zeichen lang, daher auch der ausschlag von H in der haeufigkeitsanalyse, wo man anfaenglich nicht weiss wie das zu interepretieren ist, und sich das alphabet staendig verschiebt aufgrund der buchstabendifferenz von 1. entschluesselt wurde es anschl rein auf interpretation der nachricht und auslassen einiger zeichen zb H, nachdem sich ziemlich schnell herausgestellt hat das M eindeutig E repraesentiert usw.
die verteilung der gleichen nachricht mit einer klassischen caesar chiffre schaut dann so aus und ist auch viel eindeutiger:
das chiffre: TQMJMOZCMAAMICAOZIHEWMAQVLQMAMURIPZMQVNIKPDQMTHCDQMTZMOVMBCVLLIPMZLQVOMEQMXWABSIZBMVUQBDMZAKPTCMAAMTBMVBMFBMVHCDMZAKPQKSMVMQVMVMBBMQLMMAQVL der schluessel: ABCDEFGHIJKLMNOPQRSTUVWXYZ IJKLMNOPQRSTUVWXYZABCDEFGH
[image] |
[image] |
der analyse schreibtisch :) |
crypto
##crypto
last edited:December 29, 2022