Een hele tijd geleden werd ik geïnteresseerd in crypto analyse en specifiek de Zodiac brieven. Kleine beginnetjes van onderzoek staan hier: Zodiac en Zodiac (2).

Gelukkig is de oplossing gevonden door iemand die er bijna zijn levenswerk van heeft gemaakt. Die oplossing is te zien in deze video's: youtube: oplossing 1 en youtube: oplossing 2.

Write comment (0 Comments)

De bedoeling van dit blog was, onder andere, om te gaan schrijven over project euler. Op dat moment was ik vol enthousiasme bezig om problemen zo snel mogelijk op te lossen. Soms duurde het uitrekenen van een oplossing iets te lang, vaak was de code slordig. Het enthousiasme kwam voornamelijk doordat project euler een andere tak van wiskunde gebruikt. Tijdens een opleiding natuurkunde word er weinig gebruik gemaakt van discrete wiskunde.

Ergens voorbij probleem 100 liep ik vast, wat was er mis gegaan. Een van de oorzaken was dat ik te weinig geleerd had door telkens de snelste en makkelijkste oplossing te kiezen. Een andere oorzaak was dat de code niet herbruikbaar was voor volgende problemen.Hierdoor lukte het ook niet meer om binnen een half uur iets af te krijgen.

Write comment (0 Comments)

Laatst ben ik mij gaan interesseren voor de Zodiac Killer. Het verhaal is dat een moordenaar gecodeerde berichten naar de politie stuurde. Een eerste brief is snel ontcijferd, maar een latere lange brief is nooit ontcijferd. Dit soort puzzels heeft altijd een bepaalde aantrekkingskracht. Bovendien is het een mooi excuus om een beetje met C# te spelen, wat te verdiepen in encryptie en gewoon leuk te puzzelen. Het nadeel is dat alle moeite waarschijnlijk voor niks is.

Het eerste bericht dat ontcijferd werd bleek een monoalfabetische encrypte bericht te zijn. Iedere letter werd vervangen door een ander teken. Hier kom je redelijk snel op een spoor doordat het meest voorkomende teken waarschijnlijk vervangen moet worden door een 'e'. Dit bericht heeft echter veel meer verschillende tekens. Het is dus maar zeer de vraag of er genoeg informatie is om een bericht te reconstrueren. Wat ook niet helpt is dat er gecodeerde berichten zijn met bijvoorbeeld 10 tekens wat de naam van de moordenaar moet zijn. Dit kan natuurlijk van alles zijn. Dus er is een behoorlijke kans dat de brief een pesterij is.

Write comment (0 Comments)

De afgelopen tijd heb ik met wisselend enthousiasme geprobeerd een ontcijfering te vinden voor het bericht van de Zodiac. Het is tot nu toe een eindeloze cirkel van puzzelen, aannames maken en programma's schrijven om het te versnellen en te controleren. In eerste instantie probeer je met pen en papier wat te doen, maar dat kan veel sneller met de computer. Vervolgens blijk je allerlei aannames te maken die logisch lijken, maar die toch niet blijken te kloppen.

Nu wil ik kijken in hoeverre ik het een en ander kan toepassen op het ontcijferde bericht: "3 part cypher".

Write comment (0 Comments)

Deze keer een lekker low level onderwerp, performance. Voor de efficiëntie van een programma is het belangrijk om lineair door het geheugen te gaan. Dit is de basis regel. Helaas is dat niet altijd mogelijk, bijvoorbeeld bij een matrix matrix vermenigvuldiging. Hiervoor zijn er allerlei technieken om de snelste implementatie te vinden. Zie bijvoorbeeld wikipedia Loop_nest_optimization. Er zijn vele soortgelijke pagina's te vinden. De voorbeeld pagina geeft een redelijk complexe uitleg waarom bepaalde technieken werken, zonder meetdata te geven. Nu wil ik precies het tegenovergestelde doen. Namelijk meten welke vorm van matrix matrix vermenigvuldiging het snelst is, zonder een verklaring te geven.

Write comment (0 Comments)