Richard Heathfield <
r...@cpax.org.uk> writes:
OK, I'm too slow, so at least I can have a stab...
tTealkt lo
hh nistfer
tbaaen
ersirx
Original and winning solution left as spoiler space.
This is how I approached it - very low-tech, perhaps a bit too manual.
> On 20/09/2021 19:36, Max wrote:
>> On 20.09.21 11:17, Richard Heathfield wrote:
>>> lFcrdtwo,econ you itelt nx
>>> ook ohns af you sdinliofy
>>> ttie aegtrxtxmxuxex xoxexcxyt
>>> hhs tlxo?ixhx xsxdxtx xnxrxpx
>>> tFar eat apcrexim,tc t semr poexx
>>> hot cxnra prodita eua doceyctdion
>>> a-t sa.dxrxtxax xtxlxoxsx xsxIxcn
>>> t-ehtrxex xhxnxix xoxkx,xax x xax
>>> eAed danptns yenetxig
>>> vnr hop'e sah ro.hxnx
>>>
>>
>>
>>
>> eI nhvtr siie aiyhhrn ui
>> teae. Nacd cnptei,gbltk
>> ht stteo. aey' olf lno
>> tie' hos eLst sta loullw
>> ook hhssglmc.dCwe!r han
>> fcr ttii aoek ohne sTMaxx
>
>
> Ladies and gentlemen, we have a winner!
1st, 5th and 7th lines have capital letters in the 2nd column
=> pairs of characters may have been swapped (at least in odd lines)
"algorithm", "encrypt", "decryption" half-readable, and missing
letters appear to be on the next line
=> odd and even lines come in pairs.
So, first stab:
$ echo "lFcrdtwo,econ you itelt nx
ook ohns af you sdinliofy
ttie aegtrxtxmxuxex xoxexcxyt
hhs tlxo?ixhx xsxdxtx xnxrxpx
tFar eat apcrexim,tc t semr poexx
hot cxnra prodita eua doceyctdion
a-t sa.dxrxtxax xtxlxoxsx xsxIxcn
t-ehtrxex xhxnxix xoxkx,xax x xax
eAed danptns yenetxig
vnr hop'e sah ro.hxnx
" | perl -pe 's/(.)(.)/$2$1/g if($.&1)'
Flrctdowe,oc noy utile txn
ook ohns af you sdinliofy
tteia gerttxmxuxex xoxexcxyxt
hhs tlxo?ixhx xsxdxtx xnxrxpx
Ftrae taa cperix,mctt s me ropxex
hot cxnra prodita eua doceyctdion
-a tasd.rxtxax xtxlxoxsx xsxIxcxn
t-ehtrxex xhxnxix xoxkx,xax x xax
Aeded natpsny neteixg
vnr hop'e sah ro.hxnx
Zigzag pattern shows the words more clearly now
=> keep that idea, isolate the black squares from the white ones
White:
[...] | perl -pe 's/(.)(.)/$2 /g if($.&1);s/(.)(.)/ $2/g if($.%2==0)'
F r t o e o o t l x
o h s f y u s i l o y
t e a g r t m u e o e c y t
h l o i h s d t n r px
F r e t a c e i , c t s m o x x
o x r r d t u o e c d on
- a d r t a t l o s s I c n
- h r e h n i o k , a ax
A d d n t s y n t i g
n o ' a o h nx
For those of you still oxy
the algorithm used to encrypt
For extra credit, cut some codxox
-- harder than it looks, as I can
And don't say nothing
=> This is good, keep it, although note that the line endings are broken
in places, due to dumb (ie. no) handling of odd-length lines in the script.
I'll just overlook such stray characters for now
Black:
[...] | perl -pe 's/(.)(.)/ $1/g if($.&1);s/(.)(.)/$1 /g if($.%2==0)'
l c d w , c n y u i e t n
o k o n a o d n i f
t i e t x x x x x x x x xt
h s t x ? x x x x x x x x x x
t a a p r x m t e r p ex
h t c n a p o i a e a d c y t i n
a t s . x x x x x x x x x x x xn
t e t x x x x x x x x x x x x x x
e e a p n e e xg
v r h p e s h r . x x
=> Ooops, however, words are vaguely visible, reverse the swapping
l c d w , c n y u i e t n
o k o n a o d n i f
t i e t x x x x x x x x x t
h s t x ? x x x x x x x x xx
t a a p r x m t e r p e x
h t c n a p o i a e a d c y t in
a t s . x x x x x x x x x x x x n
t e t x x x x x x x x x x x x xx
e e a p n e e x g
v r h p e s h r . xx
lockdown, can you identinf
this text?xxxxxxxxxxxxxxxxxxt
that can approximate a decrypteix
attest.xxxxxxxxxxxxxxxxxxxxxxxxxn
ever happens here.xxg
=> apart from the line endings, we've got English again.
Let's interleave the two halves back together:
For those of you still oxy
lockdown, can you identinf
this text?xxxxxxxxxxxxxxxxxxt
the algorithm used to encrypt
For extra credit, cut some codxox
that can approximate a decrypteix
-- harder than it looks, as I can
attest.xxxxxxxxxxxxxxxxxxxxxxxxxn
And don't say nothing
ever happens here.xxg
=> Errors in line endings mostly cancel out and can be fixed up/ignored
by eye.
But we're left with the question of what transformation has really
been done. So let's analyse this algorithm on a simpler cyphertext,
knowing as we do that 2x2 blocks are important as it's pairs of
characters and pairs of lines that are relevant:
Black:
echo "12abWX
34cdYZ" | perl -pe 's/(.)(.)/$2 /g if($.&1);s/(.)(.)/ $2/g if($.%2==0)'
2 b X
4 d Z
= 24bdXZ
White:
echo "12abWX
34cdYZ" | perl -pe 's/(.)(.)/$1 /g if($.&1);s/(.)(.)/ $1/g if($.%2==0)'
1 a W
3 c Y
= 13acWY
Interleaved:
24bdXZ
13acWY
So each block of 4 has been rotated clockwise to encrypt.
Nicely done both!
Phil
--
We are no longer hunters and nomads. No longer awed and frightened, as we have
gained some understanding of the world in which we live. As such, we can cast
aside childish remnants from the dawn of our civilization.
-- NotSanguine on SoylentNews, after Eugen Weber in /The Western Tradition/