https://www.allmystery.de/themen/rss/136070Allmystery: Kryptographie & KryptologieFeed zur Diskussion auf Allmystery. Es werden maximal die neusten 100 Beiträge angezeigt.2023-10-14T22:29:08+01:00Kryptographie & Kryptologie (Tanne)https://www.allmystery.de/themen/it136070-3#id342039112023-10-14T22:29:08+01:00Tanne"Beitrag von Tanne Sorry, ich war zu langsam - ruf noch mal an.
Hier der Entschlüsselungscode:
public class Decryptor { private static final int tagLengthBit = 128; private static final int ivLengthByte = 12; private static final int saltLengthByte = 16; private static final String encryptAlgo = "AES/GCM/NoPadding"; private static final Charset UTF_8 = StandardCharsets.UTF_8;
// Decryption System public static String Decrypt(String cText, String password) throws Exception { byte[] decode = Base64.getDecoder().decode(cText.getBytes(UTF_8));
// get back the iv and salt from the cipher text ByteBuffer bb = ByteBuffer.wrap(decode);
byte[] iv = new byte[ivLengthByte]; bb.get(iv);
byte[] salt = new byte[saltLengthByte]; bb.get(salt);
byte[] cipherText = new byte[bb.remaining()]; bb.get(cipherText);
// get back the AES key from the same password and salt SecretKey secretKey = CryptoUtils.GetAESKeyFromPassword(password.toCharArray(), salt); Cipher cipher = Cipher.getInstance(encryptAlgo); cipher.init(Cipher.DECRYPT_MODE, secretKey, new GCMParameterSpec(tagLengthBit, iv)); byte[] plainText = cipher.doFinal(cipherText);
return new String(plainText, UTF_8); } ]]>
Kryptographie & Kryptologie (Tanne)https://www.allmystery.de/themen/it136070-3#id341917892023-10-12T02:00:05+01:00Tanne"Beitrag von Tanne
Deswegen gibt es hier und jetzt den Code zum letzten Rätsel:
public class Encryptor { private static final int tagLengthBit = 128; private static final int ivLengthByte = 12; private static final int saltLengthByte = 16; private static final String encryptAlgo = "AES/GCM/NoPadding";
// Encryption System - Return A Base64 Encoded 256bit AES Encrypted Text public static String Encrypt(byte[] plainText, String password) throws Exception { // 16 byte salt byte[] salt = CryptoUtils.GetRandomNonce(saltLengthByte);
// GCM recommended 12 bytes iv ? byte[] iv = CryptoUtils.GetRandomNonce(ivLengthByte);
// prefix iv and salt to cypher text byte[] cipherTextWithIvSalt = ByteBuffer.allocate(iv.length + salt.length + cipherText.length) .put(iv) .put(salt) .put(cipherText) .array();
// string representation, base64, send this string to other for decryption return Base64.getEncoder().encodeToString(cipherTextWithIvSalt); } }
Da denkt ihr jetzt wahrscheinlich, was is'n daran besonders? Das:
public class METGUI extends javax.swing.JFrame {
private static final long serialVersionUID = 1L;
private static final String P01 = "~pCq;FNo5L?k?em;y/^Jb"; private static final String P02 = "5v8z57öz1+n52z=vfcj80"; private static final String P03 = "0n~cYsgkpTtKOMGr%-')4"; private static final String P04 = "*[NUk|^W7[c^EG)L2ZF>t"; private static final String P05 = "8vb^jp%^kU1y.<QI8}pTw"; private static final String P06 = "lbb@KBtr?3&.iiMUU(VM-"; private static final String P07 = "=rAx6F,lqYxv~8p>8h(C="; private static final String P08 = "w(l!8jQ(/54lpM6FlDwkC"; private static final String P09 = "56v22j8x^cc^n5jx15dcf"; private static final String P10 = "zR9Y9TfxttlxDD%sT`48{"; private static final String P11 = "Q1e`BF0c1f}X(mb@hfTv9"; private static final String P12 = "a6g1cXu0+oKpxXI>%X#gm"; private static final String P13 = "8*=pZ%xoy[!d!1kR:H(8h"; private static final String P14 = "An-Vn}Tk'V*mP`m3D&C,f"; private static final String P15 = "qA%^O90(,B)d)ln~ctNcI"; private static final String P16 = "Xa~]QU9SA1JPMQ<h=Fj8O"; private static final String P17 = "2?K]E.;*X+XhFZJmq:JXY"; private static final String P18 = "8G,Eav_&W'/i]$R,|WkK4"; private static final String P19 = "?'gFi*lWHWBHQT*JBnOE!"; private static final String P20 = "|3>y46_SkO>cw+{'o[Om-";
private static final String specPassword = "^E$Ii^Df@2Gx*2*q6+'wP"; private static final String masterPassword = "?|dd|6h*%cWFTG@`*)€)~"; private static String password = masterPassword; private static final String ok = "The user has not abused the Tool."; private static final String bad = "The user has abused the Tool."; private static final String check = "Do not delete this file!"; private static final Charset UTF_8 = StandardCharsets.UTF_8; private int grx2;
FileChooser = new javax.swing.JFileChooser(); jPanel1 = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); Input = new javax.swing.JTextArea(); jPanel2 = new javax.swing.JPanel(); jScrollPane2 = new javax.swing.JScrollPane(); Output = new javax.swing.JTextArea(); Clear = new javax.swing.JButton(); AES = new javax.swing.JPanel(); Encrypt = new javax.swing.JButton(); Decrypt = new javax.swing.JButton(); Unique = new javax.swing.JPanel(); UniqueEncrypt = new javax.swing.JButton(); UniqueDecrypt = new javax.swing.JButton(); CopyInputButton = new javax.swing.JButton(); CopyOutputButton = new javax.swing.JButton(); PasteClipboardButton = new javax.swing.JButton(); InputCharsButton = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); InputCharsNum = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); OutputCharsNum = new javax.swing.JLabel(); jMenuBar1 = new javax.swing.JMenuBar(); FileMenu = new javax.swing.JMenu(); OpenFile = new javax.swing.JMenuItem(); jSeparator4 = new javax.swing.JPopupMenu.Separator(); SaveInput = new javax.swing.JMenuItem(); SaveOutput = new javax.swing.JMenuItem(); jSeparator3 = new javax.swing.JPopupMenu.Separator(); Exit = new javax.swing.JMenuItem(); EditMenu = new javax.swing.JMenu(); CopyInputMenuItem = new javax.swing.JMenuItem(); CopyOutputMenuItem = new javax.swing.JMenuItem(); jSeparator1 = new javax.swing.JPopupMenu.Separator(); PasteClipboardMenuItem = new javax.swing.JMenuItem(); jSeparator2 = new javax.swing.JPopupMenu.Separator(); ChangeMasterPassword = new javax.swing.JMenuItem(); ShowMasterPassword = new javax.swing.JMenuItem(); ResetMasterPassword = new javax.swing.JMenuItem(); InfoMenu = new javax.swing.JMenu(); AboutMenuItem = new javax.swing.JMenuItem(); HelpMenuItem = new javax.swing.JMenuItem();
try { temp = javax.swing.JOptionPane.showInputDialog(null, "Please enter the " + "new Master Password for AES:\n\nIt must contain min. 21 chars " + "and max. 512 chars.\n"); } catch(HeadlessException ex) { javax.swing.JOptionPane.showMessageDialog(null, "An error occured,\nthe Password isn't changed:\n\n" + ex, "ERROR", javax.swing.JOptionPane.ERROR_MESSAGE); }
if(temp == null) { //javax.swing.JOptionPane.showMessageDialog(null, "Input is empty!", "ERROR", javax.swing.JOptionPane.ERROR_MESSAGE); } else if(temp.length() < 21 || temp.length() > 512) { javax.swing.JOptionPane.showMessageDialog(null, "The new Master Password is too short/long!\n" + "The Master Password wasn't changed!", "ERROR", javax.swing.JOptionPane.ERROR_MESSAGE); } else { password = temp; } }
// Show Master Password private void ShowMasterPasswordActionPerformed(java.awt.event.ActionEvent evt) {
if(password.equals(masterPassword)) { javax.swing.JOptionPane.showMessageDialog(null, "The original Master Password cannot be displayed!\nOnly a changed Password can be shown.", "ERROR", javax.swing.JOptionPane.ERROR_MESSAGE); } else { Output.setText(password); } }
// Help private void HelpMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
Output.setText("" + "********************************************************\n" + " HELP\n" + "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n\n" + "********************************************************\n" + " FUNCTIONS\n" + "________________________________________\n\n" + "Encrypt AES & Unique:\n" + "°°°°°°°°°°°°°°°°°°°°°°°°°\n" + "Encrypts the Text in the Input Textfield and shows\n" + "the encrypted Text in the Output Textfield.\n\n" + "Decrypt AES & Unique:\n" + "°°°°°°°°°°°°°°°°°°°°°°°°°\n" + "Decrypts the Text in the Input Textfield and shows\n" + "the decrypted Text in the Output Textfield.\n\n" + "Copy Input to Clipboard:\n" + "°°°°°°°°°°°°°°°°°°°°°°°°°°°\n" + "Copy the Text in the Input Textfield to the Clipboard.\n" + "(For the use in other programs)\n\n" + "Copy Output to Clipboard:\n" + "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n" + "Copy the Text in the Output Textfield to the Clipboard.\n" + "(For the use in other programs)\n\n" + "Paste from Clipboard to Input:\n" + "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n" + "Paste the Text stored in the Clipboard to the Input Textfield.\n\n" + "Change Master Password:\n" + "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n" + "Enter a new Master Password for better security.\n" + "(AES only)\n" + "You have to write down this password if you encrypt " + "a message with a new Master Password, otherwise " + "you won't be able to decrypt the encrypted Message.\n" + "The program don't save the changed Master Password " + "if you close the program, to ensure safety.\n\n" + "Show Master Password:\n" + "°°°°°°°°°°°°°°°°°°°°°°°°°°°\n" + "Shows the changed Master Password.\nThe original " + "Master Password will not show up.\n\n" + "Reset Master Password:\n" + "°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n" + "Restore the original Master Password.\n" + "The original Master Password will be restored" + " on closing the program too.\n\n\n" + "********************************************************\n" + " HOW TO USE THIS TOOL PROPERLY ?\n" + "________________________________________\n\n" + "ENCRYPTION & DECRYPTION:\n\n" + "AES - Encryption:\n" + "°°°°°°°°°°°°°°°°°°°\n" + "This Tool works with a Master Password.\n" + "The Master Password is necessary to make a unique " + "AES Encryption.\n" + "The Password must be at minimum 21 chars and " + "at maximum 512 chars long, any character is allowed.\n" + "You can use the \"KGMET.jar\" Keygen,\n" + "(can be found in the same Directory as this Tool)\n" + "to generate a Password.\n" + "So your first thing to do is to change the " + "Master Password.\n" + "Click on the Menu \"Edit\" and choose the " + "Menu Item \"Change Master Password\".\n\n" + "BE AWARE :\n" + "You have to write down the new " + "Master Password, because this Tool don't save " + "the changed Master Password when you close this Tool.\n" + "You need the correct Master Password to decrypt a message " + "that was encrypted with this Tool, if you don't have the " + "correct Master Password, you won't be able to decrypt the message.\n" + "Even the NSA or the Author can't help you then.\n" + "This is necessary to ensure high security.\n\n" + "Next Step is the message, to copy a message from " + "another source you have to mark the message, " + "right-click and \"copy\" or mark the message and " + "use \"STRG+C\" instead, then use the Function in Menu " + "\"Edit\" -> \"Paste from Clipboard to Input\" " + "or click in the Input-Textfield and use \"STRG+V\" " + "to insert the message into the Input Textfield.\n" + "Otherwise just write the message in the Input " + "Textfield and click on the Button in the AES field \"Encrypt\".\n" + "The time to encrypt a message depends on how strong your CPU " + "is.\nThe length of the message doesn't really matter " + "in AES-Mode, but will in Unique-Mode.\n" + "To copy the encrypted message (for the use in other programs) " + "you have to use the Function in Menu " + "\"Edit\" -> \"Copy Output to Clipboard\".\n\n" + "UNIQUE - Encryption:\n" + "°°°°°°°°°°°°°°°°°°°°°°°°\n" + "It's the same procedure as with AES, but you don't have to " + "change the Master Password, because it's not needed in that " + "unique Encryption Algorithm.\n" + "But you have to read the following important Informations:\n\n" + "ATTENTION :\n" + "It's not recommended to encrypt messages larger than " + "a length of 1.024 chars (spaces included)!\n" + "(High CPU-, Memory-/Clipboard-Memory-, consumption!)\n" + "Example:\n" + "A message, that is 1.024 chars (spaces included) long, " + "will produce an encrypted message with a length " + "of up to or more than 380.000 chars.\n" + "A message with 512 chars will produce an encrypted " + "message with a length of up to or more than 220.000 chars.\n" + "A message with a single char will produce an " + "encrypted message with a length of up to or more " + "than 58.000 chars.\n\n" + "Even a Quantum Computer in the near future can't crack " + "that code, cause to the cosmic number of possibilities:\n\n" + "More than 100.000.000.000.000.000.000.000²\n" + "possibilities.\n\n" + "Decryption - AES & UNIQUE:\n" + "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°\n" + "AES only:\n" + "First at all, you have to change the Master Password " + "to the correct Master Password to decrypt an encrypted " + "message.\n\nBoth AES and Unique:\n" + "To copy an encrypted message into this Tool " + "you have to mark the message and right-click on \"copy\" or " + "mark the message and use \"STRG+C\".\nThen use the Function " + "in Menu \"Edit\" -> \"Paste from Clipboard to Input\" or " + "click on the Input-Textfield and use \"STRG+V\".\n" + "Click the Button \"Decrypt\" and you can read the " + "message in the Output Textfield.\n\n" + "********************************************************\n" + " END OF HELP\n" + "°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°");
Output.setText(temp); } else { this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); javax.swing.JOptionPane.showMessageDialog(null, "There is no Text to encrypt!", "Error", javax.swing.JOptionPane.ERROR_MESSAGE); }
// Exit Program private void ExitActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0); }
// Main Function public static void main(String args[]) { java.awt.EventQueue.invokeLater(() -> { try { new METGUI().setVisible(true); } catch (Exception ex) { Logger.getLogger(METGUI.class.getName()).log(Level.SEVERE, null, ex); } }); }
Damit habe ich alles Notwendige reingestellt, auch wenn nicht viele User was damit anfangen können. Aber es ist die Lösung zu meinem Rätsel. :) Es ist der komplette Programmcode. ;) ]]>
Kryptographie & Kryptologie (Tanne)https://www.allmystery.de/themen/it136070-3#id341748072023-10-08T16:16:01+01:00Tanne"Beitrag von Tanne Hallo, hier eine verschlüsselte Nachricht mit einem von mir selbst entwickelten Verschlüsselungsalgorithmus.
Tip: Die Nachricht umfasst unverschlüsselt 50 Zeichen:
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 ]]>
Kryptographie & Kryptologie (skagerak)https://www.allmystery.de/themen/it136070-3#id327992402022-11-25T13:17:31+01:00skagerak"Beitrag von skagerak
Und welche moderne Technik haben sie denn dabei eingesetzt? ]]>
Kryptographie & Kryptologie (alhambra)https://www.allmystery.de/themen/it136070-3#id327990602022-11-25T12:30:12+01:00alhambra"Beitrag von alhambra KI lebt davon, das sie mit Beispielen trainiert wird. Wenn du einer KI also 1000 Texte in Cäsarverschlüsselung und die dazugehörigen Klartexte vorwirfst, dann kann du sie wahrscheinlich dazu bekommen Cäsarverschlüsselung mit einiger Wahrscheinlichkeit zu knacken.
In dem Fall existieren halt nur wenige Exemplare und keine Klartexte, so dass nix da ist mit dem man ne KI trainieren könnte.
Die Kryptologen konnten dieses Problem nur lösen, weil ein Brief aufgetaucht ist auf dem der Empfänger einzelne Klartext-Worte aufgeschrieben hatte. Und das war dann der Hebel zum lösen des Rätsels. Ansonsten wäre es unmöglich gewesen. ]]>
Kryptographie & Kryptologie (Gucky87)https://www.allmystery.de/themen/it136070-3#id327989782022-11-25T12:12:29+01:00Gucky87"Beitrag von Gucky87alhambra schrieb:Die Kryptologen haben daher selbst mit unserer modernen Technik n halbes Jahr gebraucht.Da würde mich mal interessieren, inwieweit man da KI einsetzen kann?
Also ich zeigt ihr einen solche Text und was ich sonst darüber weiß und sage: "Was heißt das?"
Gucky. ]]>
Kryptographie & Kryptologie (alhambra)https://www.allmystery.de/themen/it136070-3#id327988462022-11-25T11:29:52+01:00alhambra"Beitrag von alhambra https://www.golem.de/news/kryptografie-500-jahre-alter-geheimcode-von-karl-v-geknackt-2211-170032.html ]]>
Kryptographie & Kryptologie (Klopper)https://www.allmystery.de/themen/it136070-3#id326852462022-10-29T02:18:33+01:00Klopper"Beitrag von Klopper
357 scheint ein häufigeres Wort zu sein
9386, 6916578, 5457, 9216078, 4756868, 5986, 235783, 5950792 ist doppelt
wenn natürlich ein riesiges wörterbuch wo tausende Wörter nummeriert drin standen die Lösung ist ist es hoffnungslos. Aber vielleicht stehen die Zahlen auch für Buchstaben oder Silben ]]>
Kryptographie & Kryptologie (Klopper)https://www.allmystery.de/themen/it136070-3#id326852442022-10-29T02:11:21+01:00Klopper"Beitrag von Klopper
kein Rechtschreibfehler! Ich kann es mir auch nicht erklären. Eine Idee von einem Bekannten war: Hat man C nur als CH und CK kodiert und nicht erwartet, dass man sehr selten auch C anders braucht (Computer, Corona usw.)? Und weil man es nicht schreiben konnte entschloss man sich, es halt so zu schreiben, weil es alleine ungefährlich ist. ]]>
Kryptographie & Kryptologie (alhambra)https://www.allmystery.de/themen/it136070-3#id326470142022-10-18T13:59:21+01:00alhambra"Beitrag von alhambraKryptographie & Kryptologie (sceptical)https://www.allmystery.de/themen/it136070-3#id326467682022-10-18T12:53:15+01:00sceptical"Beitrag von scepticalTHX1138 schrieb:ja, ich sehe da zumindest Drei Punkte die dagegen sprechen sich Mühe zu machen;)Und welche sind das? ]]>
Kryptographie & Kryptologie (THX1138)https://www.allmystery.de/themen/it136070-3#id326332202022-10-15T00:10:13+01:00THX1138"Beitrag von THX1138alhambra schrieb:ja, der fällt leider komplett aus dem Rahmen. könnte aber auch n Typo sein. Wenn das c nicht wäre, würde ich auf nen Substitutionscypher tippen bei dem ein Buchstabe auf ne zweistellige Zahl abgebildet wird. Man könnte mal ne Häufigkeitsanalyse machen, vielleicht reicht das schon.ja, ich sehe da zumindest Drei Punkte die dagegen sprechen sich Mühe zu machen;) ]]>
Kryptographie & Kryptologie (alhambra)https://www.allmystery.de/themen/it136070-3#id326244082022-10-13T11:12:26+01:00alhambra"Beitrag von alhambra
:) ]]>
Kryptographie & Kryptologie (THX1138)https://www.allmystery.de/themen/it136070-3#id326134442022-10-11T00:58:20+01:00THX1138"Beitrag von THX1138Klopper schrieb:6150c155757566 ]]>
Kryptographie & Kryptologie (sceptical)https://www.allmystery.de/themen/it136070-3#id326134242022-10-11T00:28:17+01:00sceptical"Beitrag von sceptical
Wo hast du den gefuden? Ein paar nähere Hintergrundinfos wären toll! ]]>
Kryptographie & Kryptologie (Klopper)https://www.allmystery.de/themen/it136070-3#id325765262022-10-02T21:54:38+01:00Klopper"Beitrag von Klopper 683156 698683833 6513278357 382 68136078 9216078 9086183172 59785461 97 357 4756868 235783 6916578 5461 6150c155757566 502645568357 901642 6078 8278756966758212 97 7178 646583 14 845478363 653178 8672 357 901344 235783 6916578 914 357 705712 4756868 97 357 908617860 647821 9386 59378 9216078 93316512 647960 5457 901368 5986 96418583 32 132169 506883178 55382 9075 357 507382 8669 59357 65511 97 55383831 602661 5950792 5457 9386 898068861441682 90122 5986 507490757883182 781633250
höchstwahrscheinlich auf Deutsch und könnte die wörter Heinrich Regina und Mutti enthalten. ich bin zu dumm für sowas. :(
PS: Was natürlich auffällt ist wie alles (oder fast alles ) mit 97 endet ]]>
Kryptographie & Kryptologie (dns)https://www.allmystery.de/themen/it136070-2#id324253542022-08-29T11:58:56+01:00dns"Beitrag von dns AADR59C ist ein discord invite link, der inzwischen jedoch abgelaufen ist, also zb https://discord.gg/AADR59C ]]>
Kryptographie & Kryptologie (CannabisNormal)https://www.allmystery.de/themen/it136070-2#id324243762022-08-29T05:13:08+01:00CannabisNormal"Beitrag von CannabisNormalFennek schrieb:Hier noch ein bisschen was zum rätseln: MDEwIDExMSAxMSAxMSAxIDAxIDAwMSAwMDEwIDEwMCAwIDEwIDAxIDAxMDAgMDEwMCAxMSAxMDExIDAwMCAxIDAgMDEwIDEwMTEgMTAwIDAwIDAwMCAxMDEwIDExMSAwMTAgMTAwIDAwMCAwIDAxMCAwMDAxIDAgMDEwIDAwMDAgMSAxIDAxMTAgMDAwIDEwMCAwMCAwMDAgMTAxMCAxMTEgMDEwIDEwMCAwMTAxMDEgMTEwIDExMCAwMSAwMSAxMDAgMDEwIDAwMDAwIDExMTEwIDEwMTA=Hätte dazu eine Frage im Spoiler.
Spoiler Wenn ich den Morsecode decodiere erhalte ich: KOMMT AUF DEN ALLMYSTERY DISCORD SERVER HTTPSDISCORD.GGAADR59C
Ist das die Lösung? Der Schluss ".GGAADR59C" kommt mir nämlich merkwürdig vor ... bin am überlegen, ob du dort eine andere Kodierung, oder ein anderes Alphabet verwendest hast. ]]>
Kryptographie & Kryptologie (H.W.Flieh)https://www.allmystery.de/themen/it136070-2#id323971322022-08-22T11:25:27+01:00H.W.Flieh"Beitrag von H.W.FliehYoshimitzu schrieb:Scheint wirklich sicher zu sein, mein Verfahren! ;DWas das knacken angeht definitiv. Nur wenn es vier Passwörter braucht, die man halt dann anscheinend doch auch selbst wieder vergisst?
Das erlaubt ja eigentlich, sich persönlich leicht zu merkende Wort zu wählen.
Und diese dann quasi mittels des Verfahrens
Yoshimitzu schrieb:Das mixt man dann einfach willkürlich neu, dass möglichst solche sinnfreien Wörter bei rauskommen wie:
In Nonsense zu wandeln.
Nur wenn es vier Worte braucht, dann sind diese anscheinend doch leicht zu vergessen. Kannst du Dich an alle vier Worte nicht erinnern oder nur an ein oder zwei nicht? ]]>
Kryptographie & Kryptologie (sceptical)https://www.allmystery.de/themen/it136070-2#id323963822022-08-22T01:16:03+01:00sceptical"Beitrag von scepticalYoshimitzu schrieb:Hm. Der thread läuft jetzt seit 2018. Scheint wirklich sicher zu sein, mein Verfahren! ;DAuf jeden Fall ist es nicht so einfach zu lösen, aber für sicher halte ich es nicht. Ein Schwachpunkt ist hier, dass es keine Vorgaben für die Schlüssellängen der doppelten Spaltentranspositionen gibt. Wie schon erwähnt, hängt deren Sicherheit von bestimmten Eigenschaften der Schlüssel ab, darunter auch, dass diese am Besten aus mindestens 25 Buchstaben bestehen sollten. Wenn du Schlüsselwörter benutzt hast, die änhnlich lang sind wie im Beispiel, dann wäre zumindest die doppelte Spaltentranspostion unsicher und ich hätte schonmal ein Versuch gestartet. Es kommt aber eben noch die Ersetzung mittels PB-Quadrat hinzu, welche das Ganze natürlich komplizierter macht. Deshalb hatte ich bislang ehrlich gesagt noch keine Lust, mir über einen möglichen Angriff gedanken zu machen.
Aber du kannst dir natürlich sicher sein, dass z.B. ein Geheimdienst mit den dort vorhandenen Mitteln damit wahrscheinlich weniger Probleme hätte. Außerdem wießt du nicht, wie viele Leute sich an deiner Challenge überhaupt schon versucht haben. Das hier ist ja kein Expertenforum. ]]>
Kryptographie & Kryptologie (Yoshimitzu)https://www.allmystery.de/themen/it136070-2#id323915582022-08-20T17:58:04+01:00Yoshimitzu"Beitrag von YoshimitzuH.W.Flieh schrieb:Bitte jetzt nicht falsch verstehen, aber hat dann Dein Verfahren diesbezüglich nicht auch versagt?Nein, warum? Im Gegenteil - das spricht doch dafür, dass es relativ sicher ist. Findest du nicht?
Bisjetzt hat das noch keiner hier geknackt - nichtmal ich selber wüsste, wie (ausser bruteforce).
Hm. Der thread läuft jetzt seit 2018. Scheint wirklich sicher zu sein, mein Verfahren! ;D ]]>
Kryptographie & Kryptologie (H.W.Flieh)https://www.allmystery.de/themen/it136070-2#id322656162022-07-19T11:44:05+01:00H.W.Flieh"Beitrag von H.W.FliehYoshimitzu schrieb:Aber noch was generelles zu Passwörtern: Je länger, desto besser. Jedenfalls, was die Sicherheit betrifft. Wenns ums "merken" geht dann wiederum nicht. ;)Bitte jetzt nicht falsch verstehen, aber hat dann Dein Verfahren diesbezüglich nicht auch versagt?
]]>
Kryptographie & Kryptologie (Yoshimitzu)https://www.allmystery.de/themen/it136070-2#id322213642022-07-08T16:05:31+01:00Yoshimitzu"Beitrag von YoshimitzuEnyaVanBran schrieb:Ich musste die Vigenére-Chirffre auch 5 Mal lesen, bis ich sie verstanden hab. Ich bin auf dem Gebiet jetzt nicht unbedingt ein Genie.Macht ja nichts. Aber es interessiert dich. Das zählt! :)
sceptical schrieb:Was genau meinst du damit? Wie genau ist deine ursprüngliche Challange verschlüsselt worden?
Ok. Also ursprünglich hab ich nur ein Polybiossquare verwendet und dann die doppelte Spaltentransposition rangehängt.
So ist die Nachricht verschlüsselt.
(Danach hab ich im Laufe der Zeit noch rumgebastelt, und ein zweites Polybiossquare dazugemacht ...) ]]>
Kryptographie & Kryptologie (sceptical)https://www.allmystery.de/themen/it136070-2#id321244722022-06-19T12:59:52+01:00sceptical"Beitrag von scepticalYoshimitzu schrieb:Ach, mir fällt grad noch ein: Der Text oben war in englisch und nur mit einem Polibiussquare verschlüsselt. Nur für den Fall, dass es noch irgendjemand versuchen will.Was genau meinst du damit? Wie genau ist deine ursprüngliche Challange verschlüsselt worden? Bereits für den ersten Verschlüsselungsschritt braucht man schon die zwei Polibiusquadrate? Oder wird hier einfach das gleiche Quadrat sowohl für die Ersetzung in Ziffern als auch für die Rückübersetzung in Buchstaben benutzt.
Es ist eben fast unmöglich, eine solche Challenge zu lösen, wenn das System nicht bekannt ist, nur eine Nachricht damit verschlüsselt wurde und das System halbwegs komplex ist. Unbekannte Verschlüsselungssysteme wurden in der Geschichte zwar auch schon erfolgreich angegriffen, allerdings hatten die Angreifer in diesen Fällen wesentlich mehr Information (hunderte von Nachrichten) zur Verfügung.
Der Doppelwürfel (doppelte Spaltentransposition) ist grundsätzlich eine gute Idee, weil dieser als relativ sicher gilt, wenn man bestimmte Regeln für die Schlüssel einhält. Diesen noch mit einer Ersetzungschiffre zu kombinieren, macht es natürlich noch sicherer. Eine zu deiner Variante ähnliche Chiffre ist die GRANIT-Verschlüsselung.
Übrigens: Bei solchen mehrstufigen Verfahren hatte man damals immer im Blick, dass der Aufwand für die Umsetzung in der Praxis nicht zu hoch wurde. Bedeutete: nicht zu komplex und nicht zu viele unterschiedliche Schlüssel. ]]>
Kryptographie & Kryptologie (EnyaVanBran)https://www.allmystery.de/themen/it136070-2#id321068842022-06-15T09:33:19+01:00EnyaVanBran"Beitrag von EnyaVanBranYoshimitzu schrieb:Na, vielleicht hab ich es ja auch nur zu kompliziert beschriebenIch musste die Vigenére-Chirffre auch 5 Mal lesen, bis ich sie verstanden hab. Ich bin auf dem Gebiet jetzt nicht unbedingt ein Genie. ]]>
Kryptographie & Kryptologie (Yoshimitzu)https://www.allmystery.de/themen/it136070-2#id321064422022-06-15T07:55:11+01:00Yoshimitzu"Beitrag von YoshimitzuEnyaVanBran schrieb:Allerdings ist das, was hier aufgeführt wird, noch 5 mal komplizierter.Na, vielleicht hab ich es ja auch nur zu kompliziert beschrieben. Ist es aber nicht.
Was ich mache, in Kurzform:
2 Polybiussquares mit Passwörtern verwürfeln
mit dem 1. Bigramme draus machen
mit dem 2. wieder Buchstaben draus machen
dann 2x Spaltentransposition
Mir war wichtig:
Yoshimitzu schrieb:- höchstmögliche Sicherheit bieten - einfach zu merken und zu vermitteln sein - und nur mit "Zettel und Stift" zu ver/ent-schlüsseln sein.
... erfüllt die erste Prämisse eben nicht. Das ist nicht sicher, so seit spätestens 1863 ungegähr:
Im Jahr 1854 fand der englische Wissenschaftler Charles Babbage (1791–1871) eine Lösung der Chiffre, die er jedoch nie publizierte.[7][8] Der Erste, der eine allgemeingültige Angriffsmethode auf die Vigenère-Chiffre beschrieb, war der preußische Infanteriemajor und KryptologeFriedrich Wilhelm Kasiski (1805–1881). Er veröffentlichte 1863 in Berlin sein Buch „Die Geheimschriften und die Dechiffrir-Kunst“ und erläuterte darin seine Idee zur Entzifferungvon Vigenère-verschlüsselten Texten. Seine Entzifferungsmethode ist noch heute unter seinem Namen als Kasiski-Test bekannt.
Jetzt muss es nur noch jemand dechiffrieren.^^ ]]>
Kryptographie & Kryptologie (EnyaVanBran)https://www.allmystery.de/themen/it136070-2#id321026202022-06-14T14:51:30+01:00EnyaVanBran"Beitrag von EnyaVanBranKryptographie & Kryptologie (Yoshimitzu)https://www.allmystery.de/themen/it136070-2#id320520962022-06-04T06:58:14+01:00Yoshimitzu"Beitrag von Yoshimitzu
:) Tut mir Leid, wenn der so ein bisschen blog-Charakteristik hat.^^
Es ist ein sehr langer Beitrag. Aber: über feedback freu ich mich sehr, denne.
Also, los:
Nach etwas - zugegeben recht längerer - Zeit hab ich mich mal wieder diesem Thema gewidmet. :)
Zur Erinnerung: Im Eingangsbeitrag hatte ich gefragt, ob das hier jemand entschlüsseln könnte:
BROEY-AQTEP-HEKTD-QOGYT-ETWMG-BZYBR-OEYKW-YHPNH-TMYNZ-YXYUY-SMNQM-SGMHG-RTBDX-SCSRT-WNZYX-YDMVO-RTGZL-LBVOY-ZUOQD-ZONQF-YBDSF-DTWBG-KSSLB-VOYOR-SNNBZ-ONWHR-YOBTW-QWGYC-GBLOP-ALHQB-QTOKM-YHRYO-BFAAR-UIWPY Nun. Das ist bisher nicht passiert und ich muss zugeben: Ich selber könnte das auch nicht.
Ich hab nämlich die Passwörter vergessen. 'D
Aber ich möchte gern das Verfahren erklären, und was mir dabei wichtig war.
Zunächst:
Es sollte (für Handverschlüsselungsverhältnisse (Yeah! Solche Wörter gibs auch nur im Deutschen)) - also, es sollte:
- höchstmögliche Sicherheit bieten - einfach zu merken und zu vermitteln sein - und nur mit "Zettel und Stift" zu ver/ent-schlüsseln sein.
"High-Security but Low-Tec", then! :)
Ich hab dazu *nicht* das Rad neu erfunden - sondern mir nur Gedanken gemacht, welche Methoden damals (also so vor hundert Jahren oder noch früher) schon relativ sicher waren - und hab die nach meinem Dafürhalten kombiniert. Quasi in Reihe geschaltet.
An dieser Stelle komm ich wohl nicht dran vorbei, das "Kerckhoffs’ Prinzip" zu erwähnen.
Es besagt:
Das Kerckhoffs’sche Prinzip oder Kerckhoffs’ Maxime ist ein im Jahr 1883 von Auguste Kerckhoffs formulierter Grundsatz der modernen Kryptographie, welcher besagt, dass die Sicherheit eines [...] Verschlüsselungsverfahrens auf der Geheimhaltung des Schlüssels beruht anstatt auf der Geheimhaltung des Verschlüsselungsalgorithmus.
Einfach gesagt: Wie das Schloss funktioniert, darf jeder wissen. Wie der Bart von deinem Schlüssel aussieht, - nur der Zugangsberechtigte.
Hier, - in diesem Fall - ist der Schlüssel ein Passwort. Für das von mir kreierte Verfahren brauch es vier Passwörter, die dann letztendlich zu einer Passphrase zusammengefügt werden können.
Dazu denkt man sich 4 Wörter aus, die jeweils aus zwei Wörten zusammengesetzt sind.
Aber nun: Wozu der ganze Spuk? Der Sinn der da dahinter steckt: Passwörter zu nehmen, die nicht trivial und damit auch nicht einfach zu erraten sind. Solche Passwörter sind halt in keiner Bibliothek für eine Wörterbuchattake drin.
Der Kernsatz dazu ist:
Man verwendet diese Methode [die Wörterbuchattake], wenn man davon ausgehen kann, dass das Passwort aus einer sinnvollen Zeichenkombination besteht. Dies ist erfahrungsgemäß meistens der Fall.
Nun, hier - in diesem Fall - aber nicht. :)
Dazu noch kurz was historisches: Man hat früher/damals Listen gemacht, mit Passwörtern. Die hat man von unten nach oben abgearbeitet. War ein Passwort "verbraucht" hat man das unten von der Liste abgeschnitten und zuverlässig vernichtet (verbrannt, aufgegessen ...).
Aber noch was generelles zu Passwörtern: Je länger, desto besser. Jedenfalls, was die Sicherheit betrifft. Wenns ums "merken" geht dann wiederum nicht. ;)
So. Das war die Vorgeschichte. Nun zum Eingemachten. Erstmal brauche ich ein Polybiossquare. Was das ist? Naja. Wikipedia sagt:
Die Polybios-Chiffre (in latinisierter Form auch: Polybius-Chiffre) ist einemonographische bipartite monoalphabetische Substitution (siehe auch: Terminologie der Kryptographie). Sie überträgt Zeichen in Zeichengruppen. Im engeren Sinn ist hiermit die Verschlüsselung von Monogrammen (Einzelzeichen) als Bigramme (Zeichenpaare) gemeint. Namensgeber der Chiffre ist der antike griechische GeschichtsschreiberPolybios (um 200 bis 120 v. Chr.), der ein ähnliches Verfahren zur Nachrichtenübermittlung beschrieb.
Ja, ich gebe es zu - das klingt sogar für mich ein bisschen abschreckend. Dabei ist es ganz einfach:
12345
-----
1-ABCDE
2-FGHIJ
3-KLMNO
4-PQRST
5-UVWXZ
Nun kann man damit schonmal was verschlüsseln, - nicht wahr? :)
Man liest zuerst die Zeile und dann die Spalte (umgekehrt ginge natürlich auch). Ein "B" wäre demnach "12", ein "T" - "45" und ein "Z" wird zu "55" - uswusf.
Dem aufmerksamen Leser wird aufgefallen sein, dass da ein Buchstabe fehlt. Ja, - das stimmt.
Ich verwende hier ein Polybiussquare mit 5x5-Matrix. Dafür muss ein Buchstabe wegfallen, denn das übliche Alphabet hat ja 26.
Ypsilon ist eher selten. Falls es doch mal gebraucht werden sollte, ersetzt man das, zb mit "zz". Zwei "z" in Reihe tauchen sonst so gut wie nie auf. Nun. Man könnte auch das "Q" durch aber auch zb durch,"kw" ersetzen usw.
Also, ich hoffe, das Prinzip ist soweit klar. Aber das ist ja schon Jahrtausende Jahre alt und jedes Vorschulkind könnte das knacken.
Deshalb kommen jetzt die Passwörter ins Spiel.
Damit wird der Inhalt des Polybiussquare verwürfelt, nämlich. :)
Wie das macht? Ganz einfach: Man nimmt nun das Passwort, - in diesem Fall: "Warfish".
Das schreibt man jetzt hin, und alle restlichen Buchstaben, die in dem Passwort nicht vorkommen, unten darunter. Ist die Passwortlänge erreicht, dann Zeilenumbruch.
So-halt, - am Beispiel von "Warfish":
1-2-3-4-5-6-7
-------------
W-A-R-F-I-S-H
B-C-D-E-G-J-K
L-M-N-O-P-Q-T
U-V-X-Z
Jetzt hat man also das Passwort von links nach rechts und darunter den Rest des Alphabets geschrieben. Das wird jetzt vertikal ausgelesen und horizontal ins Polybius-Quadrat eingetragen.
Wir lesen: W-B-L-U-A-C-M-V ... etcpp. und tragen das in das Polybiussquare waagerecht ein.
Wenn ich jetzt nicht zu schludrig war, sollte folgendes Square bei rauskommen:
12345
-----
1-WBLUA
2-CMVRD
3-NXFEO
4-ZIGPS
5-JQHKT
Easy-peasy - oder?^^
Nun wird noch ein zweites Polybiussquare gebraucht. Dafür gibts ja auch ein zweites Passwort, denne. :)
Das wäre dann "Crabmachine". Dem aufmerksamen Leser wird auffallen, dass das nicht funktioniert. Sowohl "a" als-auch "c" kommen doppelt vor. Nun, wir lassen einfach die - von links nach rechts gelesenen Doubletten weg. Dann haben wir: "Crabmhine".
Das wird jetzt verhacktstückt zu:
12345
-----
1-CDSRF
2-TAGUB
3-JVMKW
4-HLXIO
5-ZNPWQ
Ich weiss, was Sie jetzt denken. Aber in diesem Fall haben sie Unrecht. ;)
Das hört sich erstmal alles sehr kompliziert an - ist es aber gar nicht. Wenn man das 2-3 mal gemacht hat, kann man das im Wachkoma. Bisjetzt ist ja nichts verschlüsselt worden. Mit der Kryptographie ist es wie mit dem Krieg. Alles will gut vorbereitet sein, - sonst ist das Scheitern vorprogrammiert.
Also, - die Messer sind gewetzt - auf in den kryptograhischen Kampf! :)
Die Nachricht könnte lauten:
Top Secret! Attack tomorrow at 8 am. Patton
Natürlich wird eine solche Nachricht dann anders formatiert. So, oder so ähnlich:
Wie man sehen kann, dient "X" als Trenner und wichtige Teile werden wiederholt, wie auch Eigennamen. Das kommt daher, weil solche Nachrichten desöfteren unter widrigen Umständen via Morsezeichen übertragen wurden und, naja - man möchte die Fehlertoleranz eben klein halten.
So, - wir haben alle Voraussetzungen - wann gehts denn nun endlich los?^^
Der erste Buchstabe vom Klartext ist ein "T".
Im ersten Polybiussquare ist das eine 55.
Das schreibt man dann untereinander. So:
5
5 Der nächste Buchstabe, "O" ergibt 35.
Wir haben dann:
53
55 Danach ein "P" - ergibt 44. Das bedeutet:
534
554 Und jetzt kaufen wir noch ein "X": 32.
5343
5542 Naja. Und dann halt weiter so im Text. :)
Man nennt die Zahlenpaare "Bigramme", wie im oben zitierten Wiki-Artikel.erwähnt. Dadurch, dass man die Bigramme untereinander schreibt, aber von-links-nach-rechts ausliest, werden die Infiormationen "zerissen".
Ich halte das für eine sehr geniale Idee, die auch in der Fachliteratur manchmal erwähnt wird. In der freien Wildbahn ist das aber nie angewendet worden, - jedenfalls nicht, das ich wüsste.
Man muss sich das mit auseinanderreissen ungefähr vorstellen, wie mit zwei Geldscheinen, sagen wir mal einen 10 und einen 20 Euroschein, die man in der Mitte durchreisst und dann halb-halb zusammentackert. Das sieht von Weitem eventuell aus, wie ein Geldschein - aber ein gültiges Zahlungsmittel ist das nicht mehr.
--- Nunja, jedenfalls am Schluss haben wir eine kleine - je nach Textlänge, möglicherweise schier endlose - doppelzeilige Zahlenkollone. Die wird jetzt verhackstückt mit dem zweiten Polybiussquare.
Wie das geht? Ganz einfach! :)
Die Zahlenkolonne wird jetzt paarweise von links nach rechts ausgelesen und damit wieder in Buchstaben verwandelt.
Also: 53. Das ergibt im Polybiussquare No.2?
Richtig. Ein "P". Danach kommt 43. Das wird zu "X". Uswusf. ...
Ich hoffe, dass es mir halbwegs gelungen ist, diese Polybiusgeschichte halbwegs plausibel verständlich zu machen.
Das alleine halte ich schon für halbwegs sicher. Auf jeden fall wäre mein Mathelehrer ins grübeln gekommen, wenn ich meine Spickzettel so verschlüsselt hätte. :)
Aber das wars noch nicht - wir schalten jetzt nochmal einen Gang hoch und geben Gas.^^
Was jetzt noch kommt, nennt sich "doppelte Spaltentransposition". Wie - ihr könnt euch da nix drunter vorstellen?! Ja, könnte ich auch nicht, wenn ichs nicht wüsste.
Ich erkläre es am Beispiel von Passwort No.3:
"Gunsalad". Man schreibt das Passwort hin und nummeriert die Buchstaben aufwärts, wie sie im Alphabet vorkommen:
G-U-N-S-A-L-A-D
4-8-6-7-1-5-2-3
Da das "A" zweimal vorkommt, bekommt das erste (von links) die eins und das nächste die zwei. Erst danach kommt im Alphabet das "D" - deshalb bekommt es die drei.
Ok. Wozu braucht man das jetzt?
Nun, man schreibt den mit den Polybiusquadraten verschlüsselten Text hier untendrunter. Beispiel:
v
G-U-N-S-A-L-A-D
4-8-6-7-1-5-2-3
---------------
N-Q-V-U-L-A-B-W
R-D-Q-M-I-V-Z-F
G-X-A-H-O-J-X-D
Und jetzt? Was passiert jetzt?^^ :)
Wir lesen spaltenweise aus und schreiben zeilenweise hin. So: LIOBZXWFDNRG ...
Nicht weiter schwer, oder? Aber rückwärts, wenn man nicht weiss, welche Spalten da vertauscht worden sind, - dann schon. Apropos "rückwärts: Beim Entschlüsseln muss man bisschen aufpassen. Modulo usw. :)
Aber wie man sieht, kann man das Passwort für die Spaltentransposition durch eine Zahlenreihe ersetzen, wenn man drauf achtet, dass keine Zahl mehrfach vorkommt. Das Passwort ist also in dem Fall mehr eine Art Vehikel - es geht nur drum eine Reihenfolge zu bestimmen.
Aber ich hatte ja oben was von "doppelter Spaltentransposition" geschrieben, stimmts?
Ja, dafür ist dann das vierte Passwort. ;)
So, lange Rede kurzer Sinn, und Bilder sagen mehr als Worte:
Wie man sieht - ich könnte vermutlich Bücher über das Thema schreiben. :)
Ach, mir fällt grad noch ein: Der Text oben war in englisch und nur mit einem Polibiussquare verschlüsselt. Nur für den Fall, dass es noch irgendjemand versuchen will.
Und wer gedacht hätte, das wär alles so kompliziert: Gucken Sie hier, bitte:
Wichtig, beides zu lesen. Da besteht eine mysteriöse, - für mich unerklärliche -Diskrepanz.^^ ]]>
Kryptographie & Kryptologie (skagerak)https://www.allmystery.de/themen/it136070-2#id290865252020-12-23T23:07:19+01:00skagerak"Beitrag von skagerakGonzoX schrieb:Aber die musste er dann auch wieder in den übrigen Text einflechten. Sonst wäre es komplett unknackbar gewesen.Naja, vielleicht auch "stümperhaft" und ungewollt so geschehen. Lieber unknackbar als zu leicht zu entschlüsseln.
Ich halte diesen Zodiak für sehr intelligent, aber auch für sehr menschlich, im Sinne eines Serienmörders. Kann doch sein dass der sich überheblich vertan hat, und somit seine Botschaften realtiv zusammengewürfelt hat sozusagen.
Letztlich hat er denn seine mehr oder weniger zufällig bisher nicht zu entschlüsselnden Botschaften erstellt. Genau so unschlüssig wie seine Taten halt.
Aber das nur mal so btw meine Gedanken dazu. ]]>
Kryptographie & Kryptologie (GonzoX)https://www.allmystery.de/themen/it136070-2#id290849152020-12-23T18:52:54+01:00GonzoX"Beitrag von GonzoXemodul schrieb:Vermutlich hat er diesen Teil zuerst entworfen und in diesem ersten Schritt auch festgelegt, welches der Zeichen für welchen Buchstaben steht.Das denke ich auch. Andererseits hatte er ja aber auch sehr viele Entsprechungen für jeden Buchstaben - da hat er dann vielleicht großzügig noch ein paar mehr dazu erfunden. Aber die musste er dann auch wieder in den übrigen Text einflechten. Sonst wäre es komplett unknackbar gewesen. Welchen Stellenwert hat wohl so eine eingearbeitete Signatur in der Codierer-Szene? Ist das etwas einmaliges? Oder ist es etwas, das die Großmeister der Codier-Kunst routinemäßig einfügen?
emodul schrieb:Wobei man natürlich nicht ausschliessen kann, dass das gewisse 3-Buchstaben-Organisationen den Code schon vor Jahrzehnten geknackt haben. Möglicherweise war das der Eignungstest für die Praktikanten :D
Ich hatte zumindest auch daran gedacht, dass diese jetzige Veröffentlichung des Rätsels Lösung einer Polizei-Taktik entsprungen sein könnte. Aber diese Drei-Kodierer-Freunde wirken nicht so, als seien sie korrumpierbar..
emodul schrieb:Aber zurück zur Routen-Transposition, also der "Rösselsprung"-Geschichte. Interessanterweise ergibt eine Verschlüsselung mit einer Skytale (Umfang=9) eine ganz ähnliche Transposition.
Bei "Skytale" musste ich erstmal googeln...sehr interessant. Was diesen "Rösselsprung" angeht, würde mich interessieren, ob das eine irgendwo festgelegte Art der Transposition ist, oder ist das auf Zodiacs Mist gewachsen. Mit "Rösselsprung" ist ja der Springer-Zug im Schachspiel gemeint. Ich könnte mir durchaus vorstellen, dass Zodiac ein guter Schachspieler war. Vielleicht hat er sich davon inspirieren lassen.
Ob man's glaubt oder nicht, hatte ich - als ich mich vor ein paar Wochen auch für einige Nächte über das 340 hermachte - u.a. das Geo-Dreieck angelegt und überprüft, ob die Route einem 1-rad-Winkel entsprechen könnte. Dieser spezielle Winkel (57,29 grad) wurde von Zodiac in einem seiner Briefe erwähnt. Der Zodiac-fanatic Gareth Penn, hatte dann eine Theorie entwickelt, wonach Z. die Tatorte seiner Opfer so gewählt hatte, dass dieser Winkel entstand (worauf @JestersTear mich hinwies). https://zodiackillerfacts.com/radian.htm
Interessant ist nun dass dieser Winkel auch ganz gut entsteht, wenn man dem "Rösselsprung" folgt:
..überhaupt auffällig, dass Z. die Buchstaben so geometrisch genau anordnete..und sie sich so schön auf einer Linie darstellen lassen.
Ob Zufall oder nicht, wäre es also zielführend gewesen, das Geodreieck anzulegen. Wobei ich aber natürlich niemals in der Lage gewesen wäre, eine Gleichung mit so vielen Unbekannten (Buchstaben) zu lösen. Zudem hätte man auch noch erraten müssen, wo der Fließtext nach der ersten Geraden wieder einsetzt. ]]>
Kryptographie & Kryptologie (emodul)https://www.allmystery.de/themen/it136070-2#id290782612020-12-22T20:03:49+01:00emodul"Beitrag von emodulGonzoX schrieb:Wie konnte Zodiac es schaffen, daß aus seinem rückwärts geschriebenen "paradice death" in der chiffrierten Form seine Signatur erscheint.Vermutlich hat er diesen Teil zuerst entworfen und in diesem ersten Schritt auch festgelegt, welches der Zeichen für welchen Buchstaben steht.
GonzoX schrieb:Für das "340" ging er aber noch weiter: und verwürfelte die Buchstaben - in Fachkreisen "Routen-Transposition" genannt.
In Kombination mit der Aufteilung des Ciphers in 3 Teile, hat das über 50 Jahre gedauert, bis das jemand "geknackt" hat. Eigentlich erstaunlich, da er gerne immer wieder Worte wie slaves, paradice und death verwendete.
Wobei man natürlich nicht ausschliessen kann, dass das gewisse 3-Buchstaben-Organisationen den Code schon vor Jahrzehnten geknackt haben. Möglicherweise war das der Eignungstest für die Praktikanten :D
Aber zurück zur Routen-Transposition, also der "Rösselsprung"-Geschichte. Interessanterweise ergibt eine Verschlüsselung mit einer Skytale (Umfang=9) eine ganz ähnliche Transposition. Das habe ich vor ein paar Tagen in einem Forum gelesen und mal überprüft und dabei festgestellt, das ist tatsächlich so. Eventuell stelle ich dazu mal noch etwas rein, falls ich das darstellungsmässig noch irgendwie hinbekomme, dass es nachvollziehbar ist.
emodul ]]>
Kryptographie & Kryptologie (Cpt.Germanica)https://www.allmystery.de/themen/it136070-2#id290647292020-12-21T02:30:33+01:00Cpt.Germanica"Beitrag von Cpt.GermanicaGonzoX schrieb:Doch wozu so ein Riesen-Aufwand, wenn doch nur ein scheinbar sinnfreier Text transportiert wird? Den er auch noch so verschlüsselte, dass ihn eigentlich niemals jemand lesen konnte.Mr. Z. hatte vermutlich einfach einen Riesenspaß bei dem Gedanken, dass die "dummen Cops" sich schwitzend abmühen, nur um nach Knacken des Rätsels genau so viel über ihn zu wissen als zuvor.
Dass es 51 Jahre dauern würde hat er dabei selbst nicht gedacht. ]]>
Kryptographie & Kryptologie (GonzoX)https://www.allmystery.de/themen/it136070-2#id290643312020-12-21T00:04:56+01:00GonzoX"Beitrag von GonzoX vielen Dank für den Link.
Du hast Recht, er hat manchen (häufigen) Buchstaben bis zu sechs Ersetzungen zugeordnet:
Auf dieser Seite wird auch übersichtlich und verständlich erklärt, nach welchen Verfahren der Zodiac seinen Text verschlüsselte.
Er verwendete dazu offensichtlich für Kodierer (zB im Militärbereich) übliche Methoden wie ein Kodier-Alphabet mit mehreren Ersatz-Buchstaben. Ich wusste gar nicht, dass er das im ersten Cypher auch schon praktiziert hatte.
Für das "340" ging er aber noch weiter: und verwürfelte die Buchstaben - in Fachkreisen "Routen-Transposition" genannt.
Zu allem Überfluss teilte er dann auch noch das gesamte Konstrukt in drei Teile, schrieb einige Wörter rückwärts und ihm unterliefen ein paar Fehler.
Das besondere bleibt für mich immer noch diese Signatur am Ende des Textes. Schon ohne diese war das ganze eine ungeheure Bastel- bzw. Fummelarbeit. Aber das muss ihm doch noch einige zusätzliche Mühe bereitet haben.
Doch wozu so ein Riesen-Aufwand, wenn doch nur ein scheinbar sinnfreier Text transportiert wird? Den er auch noch so verschlüsselte, dass ihn eigentlich niemals jemand lesen konnte. ]]>
Kryptographie & Kryptologie (behind_eyes)https://www.allmystery.de/themen/it136070-2#id290588012020-12-20T11:43:30+01:00behind_eyes"Beitrag von behind_eyesGonzoX schrieb:Dies erscheint mir als das eigentliche Kunststück dieser Verschlüsselung. Wie konnte Zodiac es schaffen, daß aus seinem rückwärts geschriebenen "paradice death" in der chiffrierten Form seine Signatur erscheint.Schau dir mal Schmehs Beitrag dazu an. Ich bin mir sicher, daß er in seinem nächsten Buch ausführlich darauf eingehen wird:
Meine Vermutung, er vargab ja für ein und denselben Buchstaben, mehrere Äquivalente, vielleicht ist das ja sogar der Grund um so ein Resultat zu basteln. ]]>
Kryptographie & Kryptologie (GonzoX)https://www.allmystery.de/themen/it136070-2#id290563772020-12-19T23:31:42+01:00GonzoX"Beitrag von GonzoX
Hier in dem Video kann man sehen, wie die codebreaker es geschafft haben:
Wenn man ihnen folgt, hat also Zodiac seine (ironische) Botschaft - zunächst in drei Teile zerlegt - dann den Text von links oben nach rechts unten in eine andere Form gebracht, wobei er er auch noch die Zeilenumbrüche verschoben hat (um es weiter zu erschweren sind ihm dabei auch ein paar Fehler unterlaufen (Buchstabierung und verrutschen einer Zeile) - die letzten beiden Zeilen wurden nicht auf diese Weise transportiert, sondern Zodiac schrieb die einzelnen Wörter lediglich rückwärts - als das erledigt war, wandelte er nun das ganze nach einen bestimmten "substitution key" (wie es in dem Video heißt um). Man sollte annehmen, er tauschte die gewönlichen Buchstaben in andere um und erfand dabei auch noch ein paar eigene Zeichen. So wie er es auch schon im ersten Cypher praktizierte (welches von dem Lehrer-Ehepaar geknackt wurde). Doch weit gefehlt. Ich konnte bisher noch nirgendwo im WWW finden, auf welche Art und Weise er die Buchstaben ersetzte. Das bleibt wohl das Geheimnis der Hochleistungs-Computer.
Am verblüffendsten finde ich dabei die letzten beiden Zeilen.
so sehen sie im Original Zodiac-Brief aus:
Niemand wird wohl bestreiten, dass hier "Zodiac" (unten rechts) quasi als Signatur erscheint.
Der "substitution key" macht daraus das (min. 5:25 im Film):
Wenn man die rückwärts geschriebenen Wörter korrigiert und dann die Wörter trennt, erscheint die "Lösung":
Dies erscheint mir als das eigentliche Kunststück dieser Verschlüsselung. Wie konnte Zodiac es schaffen, daß aus seinem rückwärts geschriebenen "paradice death" in der chiffrierten Form seine Signatur erscheint.
Um das Spiel noch weiter zu trieben: Wenn man sich nun den Orignial-Text vornimmt und dort die rückwärts geschriebenen Wörter in die richtige Reihenfolge bringt, erscheint das:
Nun erscheint die Zodiac-Signatur (gespiegelt !) unten links...
..........und lässt mich ratlos zurück......
Wie kann der Zodiac das geschafft haben???? ]]>
Kryptographie & Kryptologie (GonzoX)https://www.allmystery.de/themen/it136070-2#id287321932020-11-03T21:46:14+01:00GonzoX"Beitrag von GonzoX Nun geht es auch darum, mit den scheinbar neu gewonnen Erkenntnissen das legendäre Zodiac 340-Cypher zu entziffern:
Was haltet Ihr davon? Über Kommentare würde ich mich freuen. ]]>
Kryptographie & Kryptologie (sceptical)https://www.allmystery.de/themen/it136070-1#id261007232019-10-11T01:24:17+01:00sceptical"Beitrag von scepticalO.G. schrieb:Und die "verschiebung" wird auf der Hex Ebene gemacht -> von 00 bis 7FAh, OK. Wenn man das Quell-/Zielalphabet natürlich so erweitert, dann geht es natürlich schon. Hatte hier nur das 26er Alphabet im Kopf. ]]>
Kryptographie & Kryptologie (O.G.)https://www.allmystery.de/themen/it136070-1#id260983132019-10-10T21:03:53+01:00O.G."Beitrag von O.G.
ROT47 und ROT128 ;-) Das gibt es übrigens nicht, es geht nur von 1 bis 25ÄM,
doch wenn man die alles mit eingerechnet , nicht nur Buchstaben sondern den ganzen ASCII satz !
Und die "verschiebung" wird auf der Hex Ebene gemacht -> von 00 bis 7F ]]>
Kryptographie & Kryptologie (sceptical)https://www.allmystery.de/themen/it136070-1#id260971292019-10-10T18:27:37+01:00sceptical"Beitrag von scepticalO.G. schrieb:**-> So wie beim z.b. "ROT5 | ROT13 | ROT18 | ROT47 | ROT128"ROT47 und ROT128 ;-) Das gibt es übrigens nicht, es geht nur von 1 bis 25 ]]>
Kryptographie & Kryptologie (sceptical)https://www.allmystery.de/themen/it136070-1#id260967152019-10-10T17:30:28+01:00sceptical"Beitrag von sceptical URJYHUFKKKKHUFKKHUFKKKHUFKKHUFKKKHURJYHUFKKKKHUFKHUFKKKHURJYYYHUFKURJYUFKKHUFKKURJYHURJYHUFKKHURJYYYHURJYUFK
1. Runde: Codierung 2. Runde: Sehr einfache Verschlüsselung (Reihenfolge der Verschlüsselung, zunächst muss also die Verschlüsselung rückgängig gemacht werden!)
Viel Spaß ]]>
Kryptographie & Kryptologie (Fennek)https://www.allmystery.de/themen/it136070-1#id260965892019-10-10T17:14:15+01:00Fennek"Beitrag von Fennek
Nein, sind beides Codierungen.
Übrigens hat @kleinundgrün mir die richtige Lösung per PN zukommen lassen :Y: ]]>
Kryptographie & Kryptologie (sceptical)https://www.allmystery.de/themen/it136070-1#id260965772019-10-10T17:13:06+01:00sceptical"Beitrag von scepticalFennek schrieb:Eigentlich lässt sich am letzten Zeichen des Codes schon ziemlich schnell erkennen, was die obere Schicht für eine codierung ist.PS: Die 1. Runde ist übrigens, wie du schon selbst schreibst, keine Verschlüsselung sondern eine Codierung. Ist die 2. Runde auch nur eine Codierung, oder eine echte Verschlüsselung? Für eine echte Verschlüsselung wird in der Regel ein Schlüssel benötigt, steckt ja auch schon im Namen mit drin: VerSCHLÜSSELung ;-) ]]>
Kryptographie & Kryptologie (sceptical)https://www.allmystery.de/themen/it136070-1#id260965092019-10-10T16:59:17+01:00sceptical"Beitrag von scepticalFennek schrieb:Es werden keine Schlüsselwörter benötigt. Und es ist keine Methode, die über die "Basics" hinausgeht. Eigentlich lässt sich am letzten Zeichen des Codes schon ziemlich schnell erkennen, was die obere Schicht für eine codierung ist.Danke für den Heinweis aber mein Kommentar bezog sich auf die ursprüngliche Aufgabe des Thread-Erstellers "Yoshimitsu" ;-)
Oder? ]]>
Kryptographie & Kryptologie (Fennek)https://www.allmystery.de/themen/it136070-1#id260925292019-10-10T09:22:34+01:00Fennek"Beitrag von Fennek
Es werden keine Schlüsselwörter benötigt. Und es ist keine Methode, die über die "Basics" hinausgeht. Eigentlich lässt sich am letzten Zeichen des Codes schon ziemlich schnell erkennen, was die obere Schicht für eine codierung ist. ]]>
Kryptographie & Kryptologie (sceptical)https://www.allmystery.de/themen/it136070-1#id260917652019-10-10T05:57:52+01:00sceptical"Beitrag von sceptical Laut Kasiski-Test ergeben sich möglich Schlüssellängen von 2, 4, 7, 14. Ich vermute ganz stark, dass es sich hierbei um die Vigenere-Verschlüsselung handelt. Da 2 Schlüsselwörter benötigt werden, evtl. Q3 (wie in Kryptos) oder die doppelte Vigenere-Verschlüsselung. An den Ersteller: Ohne Angaben über das genaue System wird das hier sehr schwierig! Bitte teile uns dies mit, sonst wird es wahrscheinlich nicht gelöst werden. ]]>
Kryptographie & Kryptologie (O.G.)https://www.allmystery.de/themen/it136070-1#id259112372019-09-15T17:19:59+01:00O.G."Beitrag von O.G. OK Danke!
Denn hab gerade mit der Idee gespielt auf meinen neue PC wieder C# zu Installieren.
Und mir einen alten "Brecher v0.5" zu schreiben.
1. Deinen Codierten Text durch alle Möglichen der Umwandlung zu jagen. -> Hex | Base64 | binary |
z.b.
string Str_Data0 = "MDEwIDExMSAxMSAxMSAxIDAxIDAwMSAwMDEwIDEwMCAwIDEwIDAxIDAxMDAgMDEwMCAxMSAxMDExIDAwMCAxIDAgMDEwIDEwMTEgMTAwIDAwIDAwMCAxMDEwIDExMSAwMTAgMTAwIDAwMCAwIDAxMCAwMDAxIDAgMDEwIDAwMDAgMSAxIDAxMTAgMDAwIDEwMCAwMCAwMDAgMTAxMCAxMTEgMDEwIDEwMCAwMTAxMDEgMTEwIDExMCAwMSAwMSAxMDAgMDEwIDAwMDAwIDExMTEwIDEwMTA=";
string[,] Str_Arry_Out0 = new string[2,256];
string[,] Str_Arry_Out1 = new string[2,256];
for(int_I = 0; int_i < 256; int_i++)
{
// K | C
Str_Arry_Out0[0,int_i] = Class_KryptoL_Rot(Class_Convert_Base64(Str_Data0), int_i);
Str_Arry_Out0[1,int_i] =Class_KryptoL_Rot(Class_Convert_Hex(Str_Data0), int_i);
// C | K
Str_Arry_Out1[0,int_i] = Class_Convert_Base64(Class_KryptoL_Rot(Str_Data0, int_i));
Str_Arry_Out1[1,int_i] = Class_Convert_Hex(Class_KryptoL_Rot(Str_Data0, int_i));
}
// Und dann weiter....
//....
Aber wenn es ein online Tool ist muss ich um denken.... Der code oben ist nur einen Beispiel hab ~ noch 5-6 ander Variationen. ]]>
Kryptographie & Kryptologie (Fennek)https://www.allmystery.de/themen/it136070-1#id259111372019-09-15T16:57:39+01:00Fennek"Beitrag von Fennek
Ist mit ner Software verschlüsselt bzw. codiert.
Beide Schichten kann man mit Online Tools entschlüsseln, auch wenn man bei der zweiten etwas um die Ecke denken muss. ]]>
Kryptographie & Kryptologie (O.G.)https://www.allmystery.de/themen/it136070-1#id259111052019-09-15T16:53:54+01:00O.G."Beitrag von O.G. Noch eine Frage :
Hast du den Klartext mit einer Software verschlüsselt oder mit der "Hand" / ohne Software -> Tabellarische verschiebung? **
Außerdem kein Passwort. Wenn, würde ich das sagen.
1. Denn das kann ja dann nur eine Einfach / Mehrfach verschieben eine Tabelle sein. **-> So wie beim z.b. "ROT5 | ROT13 | ROT18 | ROT47 | ROT128" Da du Oben gesagt hast das es nicht so was krasses ist geht ich davon aus das du dass: -> „Vigenère-Quadrat“ nicht benutzt hast....
2. Eine Umwandlung / umcodierung von "Systemen" -> ( Hex | Base64 | ) usw... ]]>
Kryptographie & Kryptologie (Fennek)https://www.allmystery.de/themen/it136070-1#id259036772019-09-14T17:44:06+01:00Fennek"Beitrag von Fennek
Nein, nichts so komplexes. Aber es sind 2 Schichten. Außerdem kein Passwort. Wenn, würde ich das sagen. ]]>
Kryptographie & Kryptologie (O.G.)https://www.allmystery.de/themen/it136070-1#id259033352019-09-14T16:36:58+01:00O.G."Beitrag von O.G. Das schaut aus wie, dass was mein Test-programm ausgespuckt hatte. "IDE ... MSA ... MSA ... IDA". Das ist nicht zufällig eine Inzestuöse vereinigung von "Blowfish(CBC) & Twofish(ECB)" und dann 2 runden von hinten mit Rijndael(256)
--> Von hinten meine ich das Ergebnis spiegeln und dann 2 mal Rijndael(256) drüber rutschen lassen.
Das Tool hab ich nicht mehr hab es aber den Code ( in C# ) im netz verbreitet. Mehr oder weniger. Hab zu der zeit mit "System.Security.Cryptography" und Co gebastelt ;) ]]>
Kryptographie & Kryptologie (Fennek)https://www.allmystery.de/themen/it136070-1#id258902272019-09-13T08:16:12+01:00Fennek"Beitrag von Fennek
MDEwIDExMSAxMSAxMSAxIDAxIDAwMSAwMDEwIDEwMCAwIDEwIDAxIDAxMDAgMDEwMCAxMSAxMDExIDAwMCAxIDAgMDEwIDEwMTEgMTAwIDAwIDAwMCAxMDEwIDExMSAwMTAgMTAwIDAwMCAwIDAxMCAwMDAxIDAgMDEwIDAwMDAgMSAxIDAxMTAgMDAwIDEwMCAwMCAwMDAgMTAxMCAxMTEgMDEwIDEwMCAwMTAxMDEgMTEwIDExMCAwMSAwMSAxMDAgMDEwIDAwMDAwIDExMTEwIDEwMTA= ]]>
Kryptographie & Kryptologie (Fennek)https://www.allmystery.de/themen/it136070-1#id242049132019-02-13T16:53:36+01:00Fennek"Beitrag von Fennek:D Die Message ist natürlich jetzt nicht mehr so aktuell, aber danke :D ]]>
Kryptographie & Kryptologie (Bishamon)https://www.allmystery.de/themen/it136070-1#id242048892019-02-13T16:49:44+01:00Bishamon"Beitrag von BishamonFennek schrieb:@kybela Spoilerna endlich :) ]]>
Kryptographie & Kryptologie (Fennek)https://www.allmystery.de/themen/it136070-1#id242048532019-02-13T16:45:39+01:00Fennek"Beitrag von FennekSpoilerFROHE WEIHNACHTEN UND EIN GUTES NEUES JAHR ]]>
Kryptographie & Kryptologie (Bishamon)https://www.allmystery.de/themen/it136070#id242048292019-02-13T16:42:35+01:00Bishamon"Beitrag von BishamonFennek schrieb:Wenn ihr was habt, postet mal.Kryptographie & Kryptologie (Beitrag von Bishamon)
es ist wirklich simpel. keine technischen Kenntnisse erforderlich. nur ein Online Tool notwendig (Googeln). kein Key notwendig ]]>
Kryptographie & Kryptologie (Fennek)https://www.allmystery.de/themen/it136070#id242048132019-02-13T16:36:12+01:00Fennek"Beitrag von Fennek
Jup, sag doch, was einfaches :D
Wenn ihr was habt, postet mal. ]]>
Kryptographie & Kryptologie (Bishamon)https://www.allmystery.de/themen/it136070#id242047912019-02-13T16:33:46+01:00Bishamon"Beitrag von Bishamon SpoilerAbonniert meinen Blog: https://www.allmystery.de/blogs/fennek ]]>
Kryptographie & Kryptologie (Fennek)https://www.allmystery.de/themen/it136070#id242047892019-02-13T16:33:28+01:00Fennek"Beitrag von FennekNAIG schrieb:EinhornNein, das wäre RWluaG9ybg== ]]>
Kryptographie & Kryptologie (NAIG)https://www.allmystery.de/themen/it136070#id242047752019-02-13T16:31:22+01:00NAIG"Beitrag von NAIGFennek schrieb:QWJvbm5pZXJ0IG1laW5lbiBCbG9nOiBodHRwczovL3d3dy5hbGxteXN0ZXJ5LmRlL2Jsb2dzL2Zlbm5law=="Einhorn" ]]>
Kryptographie & Kryptologie (Fennek)https://www.allmystery.de/themen/it136070#id242047612019-02-13T16:30:00+01:00Fennek"Beitrag von Fennek
QWJvbm5pZXJ0IG1laW5lbiBCbG9nOiBodHRwczovL3d3dy5hbGxteXN0ZXJ5LmRlL2Jsb2dzL2Zlbm5law== ]]>
Kryptographie & Kryptologie (JamieStarr)https://www.allmystery.de/themen/it136070#id241399252019-02-04T10:25:38+01:00JamieStarr"Beitrag von JamieStarr https://de.wikipedia.org/wiki/Zodiac-Killer ]]>
Kryptographie & Kryptologie (Nüpfead)https://www.allmystery.de/themen/it136070#id241392772019-02-04T08:51:09+01:00Nüpfead"Beitrag von Nüpfead
Vielleicht könntest Du mal reagieren! Als Diskussionsleister sollte man sich nach der Threaderstellung mindestens einmal zeigen! ]]>
Kryptographie & Kryptologie (Izaya)https://www.allmystery.de/themen/it136070#id241272512019-02-02T18:16:46+01:00Izaya"Beitrag von IzayaYoshimitzu schrieb:zwei Passwörter wären zum entschlüsseln nötig
ArnoNyhm schrieb:Gehe ich richtig in der Annahme, dass die beiden Verfahren die du zum Verschlüsseln genutzt hast Playfair und ADFGX sind ?
Wenn es zwei Passwörter braucht, geht das doch nicht. ADFGX braucht zwei und Playfair ein Passwort. Wenn die alle unterschiedlich sind, wären wir bei drei.
Vielleicht ist es eher ein Playfair, dass wie bei ADFGX transponiert wird?
Oder @Schnurzel nutzt ein anderes Verfahren:
Yoshimitzu schrieb:Ich bin letztens auf ein anderes, altes Verfahren gestossen (mehr als hundert Jahre alt), was mir sehr gut gefallen hat. Ich hab es dann etwas modifiziert und als Programm umgesetzt (händisch muss man aufpassen, dass keine Lese/Schreib/Denkfehler passieren).
]]>
Kryptographie & Kryptologie (Noumenon)https://www.allmystery.de/themen/it136070#id241129412019-01-31T20:48:17+01:00Noumenon"Beitrag von Noumenon
Dann könnte dich ja vielleicht auch bspw. das Thema Kryptowährungen brennend interessieren... :)
Da geht's dann bspw. um Wikipedia: Elliptic Curve Cryptography und so'n Zeugs... https://hackernoon.com/what-is-the-math-behind-elliptic-curve-cryptography-f61b25253da3 ]]>
Kryptographie & Kryptologie (Fennek)https://www.allmystery.de/themen/it136070#id241126072019-01-31T19:54:38+01:00Fennek"Beitrag von Fennek
Man muss ja nicht gleich den Thread schließen. Ich habe den Thread kürzlich erst entdeckt und interessiere mich grundsätzlich für Kryptographie. Ich programmiere derzeit auch an einem Decoder mit dem man die gängigsten Chiffren wie ROT, Base64, SHA etc schnell lösen kann. Da würde ich gerne auch das hier als Beispiel nehmen um Playfair und ADFGX zu implementieren. Nur hatte ich bisher nicht die Zeit mich weiter damit zu befassen.
Außerdem fänd ich den Thread gut damit hier auch andere Rätsel einbringen können, die man dann mit gemeinsamer Kraft lösen kann. Ähnlich wie bei r/codes. ]]>
Kryptographie & Kryptologie (Nüpfead)https://www.allmystery.de/themen/it136070#id241118592019-01-31T18:49:30+01:00Nüpfead"Beitrag von Nüpfead Lass bitte den Thread schließen!
Offensichtlich ist niemand Deiner Aufgabe gewachsen. :) ]]>
Kryptographie & Kryptologie (Bishamon)https://www.allmystery.de/themen/it136070#id237684972018-12-22T17:09:34+01:00Bishamon"Beitrag von Bishamon
NUQAJXFNKEYOFKBEAIMXMSMJRRYBPMWBMNAU
Spoilerverwendete Codierung steht auf der Walze ]]>
Kryptographie & Kryptologie (ArnoNyhm)https://www.allmystery.de/themen/it136070#id237668792018-12-22T13:25:35+01:00ArnoNyhm"Beitrag von ArnoNyhm Playfair => https://www.dcode.fr/playfair-cipher
ADFGX => https://www.dcode.fr/adfgx-cipher ]]>
Kryptographie & Kryptologie (ArnoNyhm)https://www.allmystery.de/themen/it136070#id237668632018-12-22T13:21:46+01:00ArnoNyhm"Beitrag von ArnoNyhmPeter0167 schrieb:Nur mal so ne Frage, ich habe vom verkrypteln zwar keine Ahnung, aber ist das nicht der "tiefere Sinn" dahinter? Wäre es einfach zu erraten, könnte man es doch gleich in Klarschrift schreiben.Das ist natürlich richtig ! Wenn man aber so etwas als Rätsel stellt, so sollte es ja doch irgendwie lösbar sein. Entweder werden entsprechende Tipps gegeben, es könnte sich auch um Verfahren handeln welches angreifbar ist (also eine Schwachstelle hat) oder es wurden offensichtlich Fehler bei der Verschlüsselung gemacht. Es ist also eine Art geistiges Knobelspiel :) In diesem Fall sollte es wohl auf die Tipps rauslaufen :) (Wobei ADFGX, so fern ich das richtig verstanden habe, eine Schwachstelle haben soll).
Peter0167 schrieb:benutzt Microsoft eigentlich auch dieses "ADFGX-Verfahren"
Leider nicht :( Wäre aber auch ziemlich dämlich, da die Keys dann nur aus den Char's "ADFGX" bestehen würden und man sich leicht alle Keys generieren könnte xD
Peter0167 schrieb:Ansonsten bin ich jetzt ehrlich überrascht, dass sich unter den vielleicht noch 15.000 aktiven Allmyanern noch ein Zweiter gefunden hat, der sich für dieses Thema interessiert,
Ja ich auch :) Aber man gewöhnt sich als Techie (gilt wahrscheilich für die meisten Naturwissenschaftler) daran ein ausgestoßener unter den Muggeln zu sein :P ]]>
Kryptographie & Kryptologie (Bishamon)https://www.allmystery.de/themen/it136070#id237643912018-12-22T06:36:15+01:00Bishamon"Beitrag von BishamonPeter0167 schrieb: 15.000 aktiven Allmyanern noch ein Zweiter gefunden hat, der sich für dieses Thema interessiert, ..der Freak-Anteil ist aber enorm. so viele seltsame und unterschiedliche Menschen ...
gerne lese ich Krypto-Klausi (deutsch/englisch):
http://scienceblogs.de/klausis-krypto-kolumne/ ]]>
Kryptographie & Kryptologie (neoschamane)https://www.allmystery.de/themen/it136070#id237641812018-12-22T03:03:13+01:00neoschamane"Beitrag von neoschamaneArnoNyhm schrieb:Gehe ich richtig in der Annahme, dass die beiden Verfahren die du zum Verschlüsseln genutzt hast Playfair und ADFGX sind ?die frage ist mir auch durch den kopf gegangen...
ArnoNyhm schrieb:Die 5er-Blöcke sprechen für ADFGX, die Zeichen aber nicht, da in diesem Fall nur die Zeichen "ADFGX" in der Cipher vorkommen dürften. Also würde ich mal mutmaßen, dass du zuerst mit ADFGX verschlüsselt hast und danach mit Playfair.
genau das hatte ich auch vor augen;)
ich hoffe da kommt noch die eine oder andere info dazu. ]]>
Kryptographie & Kryptologie (Peter0167)https://www.allmystery.de/themen/it136070#id237627332018-12-22T01:18:37+01:00Peter0167"Beitrag von Peter0167ArnoNyhm schrieb:man könnte also ansonsten bis in alle Ewigkeit ratenNur mal so ne Frage, ich habe vom verkrypteln zwar keine Ahnung, aber ist das nicht der "tiefere Sinn" dahinter? Wäre es einfach zu erraten, könnte man es doch gleich in Klarschrift schreiben.
Und wo ich schon so am rumtrollen bin ... benutzt Microsoft eigentlich auch dieses "ADFGX-Verfahren" zum Verschlüsseln seiner Pruduct-Keys :) ?
Ansonsten bin ich jetzt ehrlich überrascht, dass sich unter den vielleicht noch 15.000 aktiven Allmyanern noch ein Zweiter gefunden hat, der sich für dieses Thema interessiert, ... da hatte ich nicht mit gerechnet.
Bitte nicht hauen ... bin schon weg. :troll: ]]>
Kryptographie & Kryptologie (ArnoNyhm)https://www.allmystery.de/themen/it136070#id237620392018-12-22T00:35:30+01:00ArnoNyhm"Beitrag von ArnoNyhm
:)
Gehe ich richtig in der Annahme, dass die beiden Verfahren die du zum Verschlüsseln genutzt hast Playfair und ADFGX sind ? Alles andere scheint mir etwas unfair, da es hunderte solcher Verfahren gibt, man könnte also ansonsten bis in alle Ewigkeit raten.
Die 5er-Blöcke sprechen für ADFGX, die Zeichen aber nicht, da in diesem Fall nur die Zeichen "ADFGX" in der Cipher vorkommen dürften. Also würde ich mal mutmaßen, dass du zuerst mit ADFGX verschlüsselt hast und danach mit Playfair. Man müsste also zuerst Playfair deshiphrieren und danach ADFGX.
Dann wäre nur noch das Problem mit den Passwörtern, ich habe mal bis 5 Zeichen brutforce (python + pycipher) durchprobiert ob irgendwas dabei rauskommt, dass nur noch "ADFGX" enthält. War leider nicht der Fall. Längere Passwörter bruteforcen dauert einfach zu lange ...
Falls du grundsätzlich interesse an solche "Rätseln" hast, weißt du was bzw. kennst du Cyber Security Capture The Flag's (kurz CTF's) ? Das geht in die Richtung :) ]]>
Kryptographie & Kryptologie (Yoshimitzu)https://www.allmystery.de/themen/it136070#id237312472018-12-19T01:28:27+01:00Yoshimitzu"Beitrag von Yoshimitzu
;)
Ich würde mich da immer noch zu einem Laien mit viel gefährlichen Halbwissen zählen.
Aber ich weiss, dass sich hier ein paar Mathe-Asse rumtreiben, und vielleicht interessiert sich ja jemand für das Thema.
Erstmal zur Definition, und warum das in die Rubrik "Wissenschaft" gehört:
Kryptographie bzw. Kryptografie (altgriechisch κρυπτός kryptós, deutsch ‚verborgen‘, ‚geheim‘ und γράφειν gráphein, deutsch ‚schreiben‘)[1] ist ursprünglich die Wissenschaft der Verschlüsselung von Informationen. Heute befasst sie sich auch allgemein mit dem Thema Informationssicherheit, also der Konzeption, Definition und Konstruktion von Informationssystemen, die widerstandsfähig gegen Manipulation und unbefugtes Lesen sind.
Die Kryptologie (griechisch κρυπτός kryptós „versteckt, verborgen, geheim“ und -logie) ist eine Wissenschaft, die sich mit der Verschlüsselung und Entschlüsselung von Informationen und somit mit der Informationssicherheit beschäftigt.
Naja. Es gibt da sehr viele interessante Sachen, zum Beispiel das hier:
Kryptos ist eine Skulptur des US-amerikanischen Bildhauers James Sanborn auf dem Gelände der Central Intelligence Agency (CIA) in Langley, Virginia, USA. Seit ihrer Einweihung am 3. November 1990 gibt es viele Spekulationen über die auf ihr angebrachten verschlüsselten Nachrichten. Angestellte der CIA und andere Kryptoanalytiker haben schon viele Versuche unternommen, diese zu entziffern.
Was mich besonders fasziniert, ist, dass es Verfahren gibt, die wirklich schon sehr alt sind, aber sich heute trotzdem nicht trivial entschlüsseln lassen, ohne dass man das Password bzw. den Key kennt.
Noch faszinierender daran ist, dass man im einfachsten Fall nur einen Zettel und einen Stift braucht, um zu ver/ent-schlüsseln.
Die Playfair-Verschlüsselung ist ein 1854 von Charles Wheatstone erfundenes klassisches Verschlüsselungsverfahren, bei dem jedes Buchstabenpaar des Klartextes durch ein anderes Buchstabenpaar ersetzt wird. Sie gehört damit zur Klasse der bigraphischen Verfahren. Berühmt wurde sie unter dem Namen eines guten Bekannten von Wheatstone, Lord Lyon Playfair, der diese Methode zur Benutzung beim britischen Militär empfahl. Die Playfair-Verschlüsselung wurde erstmals im Krimkrieg eingesetzt und war bis zum Ersten Weltkrieg, in modifizierter Form sogar noch während des Zweiten Weltkriegs, in Gebrauch.
ADFGX und ADFGVX (auch: ADGFX beziehungsweise ADGFVX; eigentlich Geheimschrift der Funker 1918, kurz GedeFu 18)[1] sind manuelle Verschlüsselungsverfahren, die die deutschen Militärs im Ersten Weltkrieg einsetzten. Sie dienten dazu, Nachrichten mittels drahtloser Telegrafie geheim zu übermitteln. Die Verschlüsselung geschieht zweistufig und basiert auf einer Substitution (Ersetzung von Zeichen durch andere), gefolgt von einer Transposition (Vertauschung der Anordnung der Zeichen).
Nur um mal zwei Beispiele zu nennen.
Ich bin letztens auf ein anderes, altes Verfahren gestossen (mehr als hundert Jahre alt), was mir sehr gut gefallen hat. Ich hab es dann etwas modifiziert und als Programm umgesetzt (händisch muss man aufpassen, dass keine Lese/Schreib/Denkfehler passieren).