Crypto

A marketing ügyosztályon a kolléga, aki a fejlesztőkkel való kommunikációért felelős, éppen síel. A fejlesztőkkel való felhőtlen kapcsolat fenntartásáért viszont szeretnének húsvéti üdvözlettel kedveskedni, és ezt a köszöntést mihamarabb kommunikálni a fejlesztők felé. Sajnos a bent lévő kollégák közül senki sem tud a fejlesztők nyelvén.

Szerencsére karácsonykor Téged is CC-ztek az egyik fejlesztőknek írt üdvözletbe, mely marketinges és fejlesztői nyelven is továbbítva lett.

Az eredeti levél tartalma alább olvasható:
2
SZIASZTOK
BOLDOG KARACSONYT
MARKETING CSAPAT
A fejlesztők nyelvén ugyanez megfogalmazva:
HARZHAGLP
YLOWLT PZIZXHLMBG
NZIPVGRMT XHZKZG

Téged kértek meg arra, hogy fejtsd vissza az üzenet alapján a két levél közti kódolást.

A kolléga asztalán lévő sticky note-ból tudjuk, hogy a levelek fejlécébe mindig csatolta, hogy mikor hány műveletet választott az üzenet kódolásához, illetve csak az alábbi, byte-onként, a karakterek ASCII kódjára vonatkozó műveletekből választott:

Byteonkénti XOR művelet konstans számmal pl.: XOR13 jelölje a 00001101 bináris számmal való XOR-olást, mely az „a” karakterre (bináris reprezentációja 01100001) az alábbi módon működik:
01100001 XOR 00001101 = 01101100
„a” XOR 13 = „l”

Byteonkénti összeadás konstans pl.: ADD2 jelölje a 00000010 bináris számmal való összeadást, mely az „a” karakterre (bináris reprezentációja 01100001) az alábbi módon működik:
01100001 ADD 00000010 = 01100011
„a” ADD 2 = „c”

Egy művelet utáni byte alulcsordulás, illetve túlcsordulás esetén a modulo 256 maradékosztályban értelmezett eredményt tekintsük a művelet eredményének.

pl.: 11111111 ADD 00000010 = 00000001

Azt is tudjuk, hogy a whitespace karaktereket a kódolás nem érintette, így a sortörések és a szóhatárok érintetlenül maradnak a szövegben.

Húsvéti üdvözletként az alábbi levéllel szeretnénk kedveskedni a fejlesztőknek:
SZIASZTOK
KELLEMES HUSVETI UNNEPEKET
MARKETING SUCCESS

Bemenet nincs, a feladat szövegében leírt üzenet szükséges a megoldáshoz.

Kimenetként a kódolt szöveget várjuk, a fejlesztők nyelvén.