<--parent directory i n d e x categories: ######################################################### | arctic | art | audio | biology | book | compile | crypto | cryptoart | debian |
email | entropy | ffmpeg | funk | game | ghostradio | hades | hardware | informationtheorie | internet |
keyauth | laser | linux | linuxaudio | logic | machinelearning | math | mikrotik | movie | neuralnetworks |
noise | nonhuman | notes | openssh | particlephysics | physics | radio | radioactive | raspi | raspi5 |
renameseq | rng | sdr | smartmon | softwaredefinedradio | sound | stockexchange | timesup | tools | underinfluence |
usb | videolooper | videosync | 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