<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>crypto on Osiriz</title><link>https://osiriz.dev/tags/crypto/</link><description>Recent content in crypto on Osiriz</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Tue, 24 Dec 2024 15:59:13 +0100</lastBuildDate><atom:link href="https://osiriz.dev/tags/crypto/index.xml" rel="self" type="application/rss+xml"/><item><title>FDCA Xmas 2024 Day 13 - Hel's Key Hell</title><link>https://osiriz.dev/posts/2024/12/fdca-xmas-2024-day-13-hels-key-hell/</link><pubDate>Tue, 24 Dec 2024 15:59:13 +0100</pubDate><guid>https://osiriz.dev/posts/2024/12/fdca-xmas-2024-day-13-hels-key-hell/</guid><description>Challenge Description Danish (original) Vi har opsnappet et meget kryptisk signal mellem Hel og Loke. Det har dog vist sig besværligt at bryde deres Ase Existens Skjuler kryptering, selvom nøglen allerede stod deri, og ECB burde være easy at knække. Det er som om vi bare bliver ved med at få samme resultat, når vi prøver at dekryptere den.
Måske du har bedre held med at knække signalet?
English (from chatgpt) We have intercepted a very cryptic signal between Hel and Loki.</description></item><item><title>FDCA Xmas 2024 Day 12 - Jættelatterens hemmelighed</title><link>https://osiriz.dev/posts/2024/12/fdca-xmas-2024-day-12-j%C3%A6ttelatterens-hemmelighed/</link><pubDate>Tue, 24 Dec 2024 15:59:12 +0100</pubDate><guid>https://osiriz.dev/posts/2024/12/fdca-xmas-2024-day-12-j%C3%A6ttelatterens-hemmelighed/</guid><description>Challenge Description Danish (original) I en skjult dal i Asgård har jætterne udviklet en algoritme, som de hævder er uigennemtrængelig. Vi har fået adgang til nogle filer på tilforladelige måder. Herunder det output, der var på skærmen, da jætterne krypterede en vigtig besked.
Vi har desværre ikke nogen der er kyndige i jættekode. Måske du kan cracke deres kryptering?
English (from chatgpt) In a hidden valley in Asgard, the giants have developed an algorithm that they claim is impenetrable.</description></item><item><title>FDCA Xmas 2024 Day 9 - Thors Digitale Løsning</title><link>https://osiriz.dev/posts/2024/12/fdca-xmas-2024-day-9-thors-digitale-l%C3%B8sning/</link><pubDate>Tue, 24 Dec 2024 15:59:09 +0100</pubDate><guid>https://osiriz.dev/posts/2024/12/fdca-xmas-2024-day-9-thors-digitale-l%C3%B8sning/</guid><description>Challenge Description Danish (original) Efter Thors debut på sociale medier har han mistet interessen i at styre vejrforholdene i Midgård. Der er simpelthen alt for mange andre ting som han skal tage sig af. Han har derfor valgt at finde en digital løsning og har downloadet et program, som kan hjælpe ham med at bestemme, hvordan vejret skal være på en given dag.
Odin er ikke tilfreds med situationen og har samtidig mistanke om, at jætterne kan være involveret.</description></item><item><title>FDCA Xmas 2024 Day 7 - Sukkerkolde Cyberkrigere</title><link>https://osiriz.dev/posts/2024/12/fdca-xmas-2024-day-7-sukkerkolde-cyberkrigere/</link><pubDate>Tue, 24 Dec 2024 15:59:07 +0100</pubDate><guid>https://osiriz.dev/posts/2024/12/fdca-xmas-2024-day-7-sukkerkolde-cyberkrigere/</guid><description>Challenge Description Danish (original) Cyber-Operations Command Centeret er efter flere dages hårdt arbejde gået fuldstændig sukkerkold, så kokken Andrimner finder dokumentet med æbleskivernes lokation frem fra skuffen - men hov! Jætterne har tilsyneladende krypteret teksten!? Heldigvis finder Andrimner krypteringsrunerne, som skurkene i deres hast ud af køkkenets server har tabt i filsystemet.
Kan du dekryptere æbleskiver.runes?
English (from chatgpt) The Cyber-Operations Command Center has gone completely sugar-sweet after several days of hard work, so the chef Andrimner pulls the document with the location of the æbleskivers from the drawer – but wait!</description></item><item><title>DDC 2024 Qualification - Affinity</title><link>https://osiriz.dev/posts/2024/03/ddc-2024-qualification-affinity/</link><pubDate>Mon, 18 Mar 2024 08:00:00 +0100</pubDate><guid>https://osiriz.dev/posts/2024/03/ddc-2024-qualification-affinity/</guid><description>We are given the following file:
affinity.zip The task description introduces the affine cipher that works by encrypting cleartext x to ciphertext y in the following way: y = (ax + b) mod m for some constants a, b and m.
We can see this in the gen.py script:
#!/usr/bin/env python from math import gcd import random import binascii # Encrypt the text using the affine cipher y = (ax + b) mod m def affine_encrypt(text, a, b, m): result = 0 for letter in text: c = (a * letter + b) % m result = (result &amp;lt;&amp;lt; 8) + c return hex(result) # Generate keys for the affine cipher and encrypt the flag if __name__ == &amp;#39;__main__&amp;#39;: with open(&amp;#39;flag.</description></item><item><title>DDC 2024 Qualification - They See Me Subbin, They Hating</title><link>https://osiriz.dev/posts/2024/03/ddc-2024-qualification-they-see-me-subbin-they-hating/</link><pubDate>Mon, 18 Mar 2024 08:00:00 +0100</pubDate><guid>https://osiriz.dev/posts/2024/03/ddc-2024-qualification-they-see-me-subbin-they-hating/</guid><description>We are given the following text:
alojsgegvly uqecm teag jvayva regnqllo gqeahvyu uqmegkw ueomd cmd redmd cvdalzmq dgqmeo bnvkdg p ylzmkgw eyekwdg jqvmdg zmqpmvanyvd jqmddsqm dvmomyd nqd od djed nezm on alcmd djlhm uvqk mijlqgd danlkeqdnvjd oeysteagsqvyu zmqrek blqhmqd rllk dnm aloovggmc gmqqvglqvmd cvuvgek vytksmyamc gnlodly rmggw dvuy glgekkw alydgeygkw qloeygva gmqo bvyud uqmmam oegg avekvd tmmd djmavtw clyekc eqod xsm ueooe jkewvyu olcvtw be mkdm jsojd qeqm gnsycmq tklbd neo nsyg reahsj evqjkeym alzmqd jqltmddlq tklwc dgvah zmyclqd teqovyu umygkmoey qmmt jeg tedgmq qmjkvaegvly uorn qlahmg ymbeqh euvyu dgeqdomqaneyg fscuomyg yly lqek gnmge qmomormq aml cmakeqegvly ecmxsegm bvkckvtm eolsyg qu csyaey rmccvyu yk oeqgvy ecovyvdgqeglq ywkly klbd vyaksdvly uvd dmmd vygmqmdgvyu cmdgqlw aljvmc hegvm jljskegvlyd bvtm jqldglqmd bednmq dmaglq jeqgd vygmqdgegm ljg dlqg jmqtmagkw migmydvlyd osdgeyu dmmhmq vgmo dmovyeq gqeyddmisek eaamdd dvuyvtvaeyg dhvj dsjmqzvdlq olgnmq qmcsavyu ovcyvung rkmdd qeo dglqmc neqcalzmq jqlamcsqmd oeg mieojkmd egoldjnmqva evqkvym vygmqmdgmc qmecd mojklw vytqvyumomyg qmjkeamc amygqm qlde hvkkmc av gsrm gmyc gdsyeov owmqd ieyei kvdg oewlq gvggmy bnvkdg aneyamkklq oevygevyd avqasodgeyamd qekmvun kvervkvgw olydgmq rqectlqc omedsqmomyg jwgnly zmumgeqvey eygnqljlkluw uvzm vygmycmc rq aegd ecc djlqgd qecvegvly dezmc jqlzvyavek laasqd gei daqvjgvyu kmggmq gqezmkmq eodgmqceo aneormq acg aneqeagmqd qmomormqmc gqmedsqmq oevkgl eczmqgvdvyu cmah ae bmc qmdvcmyg anqlyvakm dgmjd yezw sqrey rqmedg olqek mijldsqm lsung omedsqm kvyh alytvusqmc clyegm jskk vytmagvlyd rh djmavekd cllqd dmkkvyu qmjqmdmygegvly ovysd gmkmjnlyw alksoyd dmkkd mimasgvzmd deo alqqmdjlycvyu qvah glkmqeyam tlaek fmttqmw tmegsqmc rsggly glsanmc rwgm cegm dsrkvom oo gneyhduvzvyu tvggmc oedly jmymgqegvly clomdgva tlasd aeojd djmyamq gtg rkmdd key ezlvcvyu bmmhmyc eumc reqqvmqd rsah dvoskegvly rklu alygvymyg eczlaegm bmkdn zmqrek bnldm bvkmw alljmqegvzm gvomkvym asdglovpmc jlsq eddsojgvlyd rklahd ca mdgegmd jsqdsm nggj jkeamc mqqlq omcvaek ecljgvly aeko ejjqlean ueovyu lqcvyeqw dlomgnvyu oegmqvek aedsek keor eylywolsd ymvunrlq dbvganmd sb bmkkd alygmyg qmovyc yevkd nvunmdg qeyumqd aekkvyu nekt rh teggw mijl jlkvdnmc desam dgscvmc gneyhd cmolydgqegm nlrrw et yehmc qmtmqmyamd vyclymdve mcvyrsqun aneqgd qlrsdg qmfmagmc dgeqd neydmy rllo miamdd ajs tvko zvlkmyam rsd jkewreah clomdgva om jmyekgvmd gqvzve uqlzm qvungd cqso sycmqdgeyc bnmqmed alojsgegvlyek laasjvmc lqvmygek oequvy rlysd mijkvavg alyt ekvzm ymbaedgkm ymmcmc vyhfmg jsrkvdnmq qmyevddeyam ekgmqyegvzmkw jsr dsrfmagvzm jlvyg lsq gre uylom cwyeovad uvqkd alkkmagmc anqvdgveyvgw eyekwpm bekkeam alek gqeydvgvly tvung mijmycvgsqm olglqawakm jdwanlkluvaek by deqen qeavek dgljd alygeagvyu jqevqvm tvdnvyu yshm keah uqed kmet aejvglk jct mygqvmd eqmye umluqejnw jsppkmd cvdymw eqvdm db mzeksegmc rmqhmkmw vycveye migmydvlyd myclqdmc alydmqzegvly ovyvoso yskk clm escvg dedheganmbey ymbdjejmqd odu anmahmc alyamqg dc vygqlcsamc teag anequmq eyylsyam ed rklu CCA{bmkalom_gl_cca_gbmygw_gbmygw_tlsq_kmgd_cl_dlom_aqwjgl} The last part (CCA{bmkalom_gl_cca_gbmygw_gbmygw_tlsq_kmgd_cl_dlom_aqwjgl}) seems to be the encrypted flag, from the title we can guess that this is a substitution cipher.</description></item><item><title>DDC 2023 Regionals - One Time Too Much</title><link>https://osiriz.dev/posts/2023/04/ddc-2023-regionals-one-time-too-much/</link><pubDate>Sun, 16 Apr 2023 20:00:00 +0200</pubDate><guid>https://osiriz.dev/posts/2023/04/ddc-2023-regionals-one-time-too-much/</guid><description>We are given a python script that encrypts two strings (both with the flag appended) with a random one time pad:
import os # read flag in as bytes with open(&amp;#34;flag.txt&amp;#34;, &amp;#34;rb&amp;#34;) as f: flag = f.read() # XOR&amp;#39;s two bytestrings together. def xor(a,b): xor_result = b&amp;#39;&amp;#39; for i in range(len(a)): xor_result += bytes([a[i]^b[i]]) return xor_result # sample a completely random 200 byte one time pad! one_time_pad = os.urandom(200) # two similar messages are sent using the same pad.</description></item><item><title>DDC 2023 Qualification - Baby Rsa</title><link>https://osiriz.dev/posts/2023/03/ddc-2023-qualification-baby-rsa/</link><pubDate>Mon, 20 Mar 2023 09:30:00 +0100</pubDate><guid>https://osiriz.dev/posts/2023/03/ddc-2023-qualification-baby-rsa/</guid><description>We are given a text file: babyRSA.txt, with the following contents:
n = 14591059584728658996740718896274912924434702993948401065953397352995339910088088733574991258740736943162240984607294149798518974390850442269320587130740348332766777840789060640046077889381042022860333067208949242541537029834713571632092399544412860224638358821688934376008405448120397447357043233351572894555161097157298917757903358450051781374553895783095933436102637259148017787894728417663857683547045820798741292596714992103546619732559091189051271145488307258679223962750029735466371748284344268969024995984222371842720543906957141892627260247305180561557377683921023735478606199803707739027008690484139631874629 e = 65537 ciphertext = 8370482736029746802272435856905582692197472046878613623126167436276048925497192051855114861968301986740953539053163947192721440270870275675104799441533614895688983570828061357190863655539868022793932838551215620997098363666548621341103618946043035652810120255282119559608036421751056052625158822827831595069995146507062852262681451781903083499147508262669740286416571718635819352694698805949316507535002658526810142183807237137069555203580152352863371601204706128986849512578411079323120877340385328130962702308650000566212396403238074531227510385807269241298909102687880672710693216031720613169757344140890527855180 # What&amp;#39;s the plaintext? this might help! p = 135118121033494444903135040650593867761183730711309803684324950423162537667458806301698825106852556296618752800474983408511120590602816857766798006294318907531661438883032776328539787015720714526094491835105378129306305286637613861991613352256006427593441280185940386266360182068694185435614508146253927535219 q = 107987437015288865195226926953887120405158392241008731414825285641627743723768153549068145296919127709072426332548919995869779098499543714252696254999551997426879319789809420841712042595904693470932881039466995302317325926476459209840274875302406142467069199349897038463278476940799410775560424588456195916391 We know from the name, that this most have something to do with RSA, and that we have the n, e, ciphertext, p and q values.
We can plot these into www.dcode.fr/rsa-cipher:
And we get the flag: DDC{Crypto-was-great-but-why-was-there-no-RSA}</description></item><item><title>DDC 2023 Qualification - Flipping Privilege</title><link>https://osiriz.dev/posts/2023/03/ddc-2023-qualification-flipping-privilege/</link><pubDate>Mon, 20 Mar 2023 09:30:00 +0100</pubDate><guid>https://osiriz.dev/posts/2023/03/ddc-2023-qualification-flipping-privilege/</guid><description>Recon and Introduction We are given the website http://privilege.hkn and the app.py that it is running: #!/usr/bin/env python3 from flask import Flask,request,Response,render_template,abort,make_response import json,random,os,base64 from Crypto.Cipher import AES ### Global variables app = Flask(__name__) secret_key = os.urandom(16) ctr_nonce = os.urandom(8) def gen_user_cookie(): cookie_dict = {} cookie_dict[&amp;#34;access_level&amp;#34;] = &amp;#34;User&amp;#34; pt = json.dumps(cookie_dict).encode() cipher = AES.new(secret_key, AES.MODE_CTR, nonce = ctr_nonce) ct = cipher.encrypt(pt).hex() return ct def check_admin_cookie(cookie): ct = bytes.fromhex(cookie) cipher = AES.</description></item></channel></rss>