Cryptography

I’m not much of a math lover, but I love logic and puzzles..  (Yes, I’m an engineer who doesn’t particularly enjoy math!) I’ve never really known much about cryptography, but in 2014 I had the chance to give it a shot.  So I’ve created this page to capture just a few fun things that I’ve picked up so far..  I hope you enjoy.

Resources & Tools

There are TONS of cryptography resources online..
Here are just a few that I've been using lately..

Wikipedia articles:
Caesar Cipher
Vigenere Cipher

Rumkin.com Cipher Tools
– A pretty extensive collection of online cipher tools

Sharky’s Vigenere Cipher v1
– Substitutes “A==0” (matches Rumkin and Wikipedia)

Sharky’s Vigenere Cipher v2
– Substitutes “A==1” (differs from Rumkin and Wikipedia)
– Results in a post-encryption caesar shift of 1

Challenge: 2024 AMD Xilinx Security Working Group

The 2024 AMD Xilinx Security Working Group brought back the crypto challenge!  I snagged a copy of the final website before it was taken down, and share it here for your enjoyment.  Can you solve it?

Read Me First

The 2024 AMD Xilinx Crypto Challenge occurred at two locations: Longmont, Colorado (Oct 15 – Oct 16) and Washington, DC (Nov 13 – Nov 14). Each location included slightly different content. Both sets of content are presented here for those wishing to solve the challenge at home. Email addresses that were created as part of the challenge are also still active (e.g. they will auto-respond, but are not longer monitored). This website and its content will remain operational at least through 31Dec2024, though it may be allowed to expire sometime in 2025.

Challenge Contents
– Challenge Coin (same across both events)
– Website Data (different per event)
– Partner Showcase QR Codes (different per event)
– Word Find (same across both events)
– Help Email (username @ gmail), where username = CryptoChallengeHelp2024

Feedback Welcome
All feedback welcome. You may send feedback to the help email, or to the final CO or DC email addresses.

A Note about the Help Email
The help email will continue to be monitored through 2024, but responses may not be very fast. Expect up to a week turnaround time. No guarantees on turnaround time 2025 and later.

A Note about QR Code Readers
Default smartphone QR code readers are able to read the contest QR codes just fine, but typically default to searching the internet for what is scanned. The QR code scanner app “Code Scan” by KURZ Digital is free for iOS and Android smartphones and simply displays the full contents of a QR code and allows you to copy the contents to your clipboard to paste elsewhere, which may be useful. See links below.
-> Smartphone App: Code Scan by KURZ Digital: iOSAndroid
-> Website App:  CyberChef Parse QR Code

Challenge Coin (Both)

Front

 

Back

Website Data (CO)

Identifier Data
Zirconium 001000100111101110110101101100101101100010011000100010101010101110101010101010010011101101101110101101001101001101100
Tin 001111101001110101100011100101100101100010111000101001101011010010011010011010001101100001010101100010101100000011100
Tantalum 000000000010000000111001010100000000010000000000111010000111011000000000000000000000000000101100110111010000000000100
Strontium 010101100000000000110101100010100011010000110101010100001010000110000000110000010011000101000011011100010000010000010
Silver 010001110011000001101101000011011010100000101001111100111001101001001011000110001100010101110000110001110011010111110
Selenium 000001101111100101100000100101100000000010101010010001101100101111011011000010001010001111110100100110010010011010010
Platinum 000000000100111001111011100101000111010011111110110001001001011101101010101010010000010110000000001010010011000110000
Palladium 001001000010010011010000110000010000010001100100011000000110110100000000000000011100001100101111011111010000010000010
Oxygen 010111010101111111101011011100010111010010111010100001101110111111100010111010010111010101000110000100111110010111010
Niobium 011000001011100101011100010101101011000011110110111010111101101010110111011010000111000000111001110010000111101110100
Mercury 010111010010010010000011000111111110100010111010011001101001010001110000101010010111010101111011000010100010100101110
Magnesium 000000000100011110000001010000000000000000000000000000000000000000000000000000000000000100010101010000100110000000000
Lithium 000000000000000000000000000000000000000000000000100100101001101100000000000000000000000111100000010100010000000000000
Krypton 000011110000101011010001000111100101010001000001010010100100111110001001110100001000011101011010110010110101010010100
Iridium 000000000001110101100110101100000001110000000000010010001001001010101010111010000000000101001101101001101101101111100
Francium 010000010010110110000111000110001110000011111110010001101000110110001000110010000000000000000000000000000000000000000
Copper 011110001100000000010000100000010000010010100001000110010000100000000000000000000000001110010100111001010000010000010
Chlorine 010000010111110001000101110101010000010011111110101010101010101010101011111110000000000010000110010110010000000000000
Carbon 000000000000000000000000000000000000000011111110000001101100001100001011111110010000010110110110111001111101010000010
Calcium 000100111111000010100110001110101111100010111100110010010010000001010110001000010000011000000111110101011010101011010
Bromine 000101000011011101110011101101011101100000100101100100001111010010101110101110000101100110101001010010101101100101100
Boron 000000000010011110011101011111000000000000000000101010101101101100100000000000000000000011100111111101101101000000000
Bismuth 000000000000010001111000010011100000010000000000010100001101000000000100000000000000000000000000000000000000000000000
Barium 011011011011000010110110011010000110110000010000100101011010101110010000010010011101111000110101010011011011111110110
Argon 000100001110110010101110011101111010110000011100101000111011101001101111110010011011100001011010100110100100101110100
Antimony 011011000100101110101100001000110010000001100111100001110000001111010010010110001111001000100010010001010010010010110

Website Data (DC)

Identifier Data
Zirconium 010001001001010010101001000110100011010000100100110000010011100110000000110000010001000101110010011100010000010000010
Zinc 011100100010110111000000110001101011000011100111011110100100001010110111011010000101000000001000110010000111101110100
Xenon 001011101001000101101111100100101100100010111000001011111010010010010010001010001001101001110101101010101100000001100
Tin 000000100010010111100001110000000000010001101100011001100010111100000000000000011000000000011010010110010000010000010
Tennessine 000000000000100011110000010011100000010000000000010000011101000000000100000000000000000000000000000000000000000000000
Strontium 011101000001010001000000100001011101100000101001100101101111001010101110101110001101100010110100010101101001100101100
Silicon 000100001100101111101101001101111010110000001000001010011000100011101010101010011111100001011011101110000101100000100
Selenium 010001110011000001101101100011011010100010101001101100111001111001001011000010010101010110111100110000110011110111010
Platinum 010111010010001110010100000111111110100010111010011111100010111001110000101010010111010101001001001010100010100101110
Palladium 001000100111101110110101001100101101100000011000110010101010111110101010101110001010101110100010101100001101101101000
Oxygen 010000010111110001110111111101010000010011111110101010101010101010101011111110000000000010001110000111010000000000000
Nickel 011011110010100111100010001011100101010001001101010011000100100110001001110100000000011001000111110101110001010010100
Neon 000100111101011111100101011110101111100010101000010000110001001011010011010000010100011000000110111101111011100101010
Mercury 010000010010000100001111000110001110000011111110010101111000110110001000110010000000000000000000000000000000000000000
Magnesium 000000000100011110110011011000000000000000000000000000000000000000000000000000000000000100011101000001100110000000000
Lithium 000000000000000000000000000000000000000011111110001101101101000100100011111110010000010110100111111001111101010000010
Krypton 010010100100101010011101001000100010000001101111100000010100000111010010010110001011000100010111011000010010010010110
Hydrogen 000000000000000000000000000000000000000000000000101000101000100100101000000000000000000111110001010100010000000000000
Helium 000000000010011100010101101111000000000000000000101110101100101100100000000000000000000001101111111101101101000000000
Francium 000000000000001000011011010100000000010000000000110010100101001001000000000000000000000000101000100101010100000000100
Copernicium 000000000001101001110001101100000001110000000000010100000010100010101010111010000000000101111111100001101101101111100
Cesium 011111011011110010111010011011001111110000010000000111001011101110011000000010011001110000010101011011011011111100110
Carbon 010111010101111101100011101100010111010010111010100101101111111111100010111010010111010111001110000100111110010111010
Calcium 000001101111110110101100010100100010000010001011010001101101101111001011010010011011001101110100100110010010011010010
Barium 000000000110110001011001100101000111010011111110111001101011001100101010101010010000010110000100011000010111000110000
Argon 011110001100010011011100010001010010010010000000000110010001100000010000010000010001001100010100111001010000010000010

Partner Showcase QR Codes (CO)

Partner Showcase QR Codes (DC)

Word Find (Both)

Solution

What, and ruin all the fun?  Nah, I think I’ll leave this one as an exercise for the reader.  If you need a hint, try the help email!

Challenge: 2014 Xilinx Security Working Group

The 2014 Xilinx Security Working Group included a crypto challenge.  It consisted of several clues hidden in the presentation material, as well as a “challenge coin” that contained the rest of the necessary information to solve the puzzle.  Can you solve it?

Relevant presentation material

Welcome Slide (and the full PowerPointPDF file):
2014XSWG_Logo

Coin face/back:
2014XSWG_CoinFace 2014XSWG_CoinBack

Hint #1

The key is to start above the skull (on the coin face).

Hint #2

What would Brutus do?

Partial Solution (How to Get the Key)

The key is to start above the skull (on the coin face):

yep: nguitcqyg

However, the key is encoded with a Keyed Caesar Shift (thus the “What would Brutus do?” hint).  The substitution alphabet used for the Keyed Caesar shift is located around the edge of the coin face:

AUNPDHBQZERIXVFTJSLCWKTGMO

Using the rumkin.com site’s Keyed Caesar Shift with the above alphabet and message with a Caesar Shift of 5 results in the first answer:

key: xswgrocks

Now, you take it from here..

Hint #3 (After Getting the Key)

Cipher tool versions matter.

Full Solution

The presentation slides includ an 8-bit ASCII-encoded message both behind the skull face on opening and closing slides (and on event t-shirt), as well as in the presenters notes.  A simple TCL script or Google can be used to convert the binary string to its ASCII equivalent:

QxkkwbdtarhyvapluhdfvvjvvihrhinKthddsaeesrnqhpaljsyxdxpgxtwdodxukzixdogbbxljdjh

 A link in the presentation materials to a YouTube Video Clip from the movie “A Christmas Story” shows the main character Ralphie using a secret decoder ring to reveal an advertisement for Ovaltine (“Drink Your Ovaltine”).  The video posted to Youtube then followed with an excerpt from two Xilinx employees regarding making a Christmas list for a B.B. Gun and almost advertising one, saying at the end of the clip, “everybody knows I love copper projectiles.”

The  coin face resembles the logo for the conference, however, the text below the skull face reads “Lhq Vft Etm” instead of  “Not One Bit” as it does in the presentation materials..   An obvious (but necessary) clue.

The coin also includes a coded message across the top of the skull face:

yep: nguitcqyg

The hint about  Brutus paired with the type of secret decoder ring used in the movie clip suggest a Caesar Cipher, but unfortunately a standard Caesar Cipher does not decode the message.

The outer ring of the coin face includes all 26 letters of the alphabet but in a non-standard order:

AUNPDHBQZERIXVFTJSLCWKTGMO

Putting the rearranged alphabet into a Keyed Caesar Shift and using a shift value of 5 decodes the first message into something that is human readable:

yep: nguitcqyg
key: xswgrocks

Having a key in place, the next obvious place to go was the message below the skull face, assuming that it should decode to read “Not One Bit.” Since the cipher text and the plain text are known, as well as a key and a translated alphabet, one can cycle through various decoding algorithms to find the one that decodes the message.

Sure enough, using a Vigenere Cipher on the message below the skull face with they key from above the face properly decoded “Lhq Vft Etm” into “Not One Bit.”

Completion of this step verifies the key value “xswgrocks” and the decoding algorithm necessary (Vigenere Cipher).

Flipping the coin over reveals another outer ring of encoded messages, once across the top, and one across the bottom:

Yei magve kcw pludqo
Jltowgh dadm sddh e4 ovmwb

The two messages had to be split up and decoded separately.  Using the key “xswgrocks” in a Vigenere Cipher quickly decodes the messages to read:

yei magve kcw pludqo
all first red second

jltowgh dadm sddh e4 ovmwb
lswhere shft vwls b4 dcode

The back of the coin also includes another set of binary data behind the Xilinx company logo (with some digits printed in red).  Following the instructions from the decoded message above from the outer ring (“all first red second”), all binary bits were written out and then appended with the sequence of bits printed in red.  The resulting combined binary data was also an ASCII-encoded message.  Using the same key as before (“xswgrocks”) the Vigenere Cipher decrypts the message to read:

ZxPbjtWzUsrUpdxqi
BeSureToBuyXilinx

Unsure what to do with the decoded advertisement, the remaining decoded message gives the next clue:  “lswhere shft vwls b4 dcode.”  The message “lswhere” from the coin indicates data possibly not on the coin.  The only other data available is the data from the presentation material.  Using the same key (“xswgrocks”) decrypts the ASCII 8-bit message:

QxkkwbdtarhyvapluhdfvvjvvihrhinKthddsaeesrnqhpaljsyxdxpgxtwdodxukzixdogbbxljdjh
SendemaihtoboiaijofmyorgsxotolgSeeskuhhxackforhocajusernameolsewrcbfolvideoclue

The decoded result is an obvious message or some sort, but it is also obviously not the final answer.  However we only used the first part of the last clue.  The second part of the “lswhere” clue from before reads “shft vwls b4 dcode” indicating that the ASCII message needed translating before decoding.  A shift value of 5 was used earlier, but shifting all vowels by 5 places in either direction (“i” becomes either “n” or “d”) did not make the message more readable.  Instead, letting the vowels shift within themselves (a=e, e=i, i=o, o=u, u=y, y=a) does the trick.  You may have noticed at the end of the video that “Good Luck” was written with this vowel shift (another clue).  The resulting vowel-shifted message and decoded result look like this:

QxkkwbdterhaveplyhdfvvjvvohrhonKthddseiisrnqhpeljsaxdxpgxtwdudxykzoxdugbbxljdjh
SendemailtodomainofmyorgsdotorgSeeskullbackforlocalusernameorsearchforvideoclue

The instructions to send an email to the domain of my org’s dot org suggests an email address of __@xilinx.org (because the challenge creator is a Xilinx employee).  The video clue references the movie clip in which Ralphie is told to drink more Ovaltine.  However, sending an email to Ovaltine@Xilinx.org bounces back.  Multiple emails were sent to a number of email addresses attempting variations on the theme (and @xilinx.com instead of @xilinx.org), but they all bounce back.

Returning to the clue, the message intends to be read literally: not “domain of my org’s .org” but rather ___@myorgs.org. The video clue advertising Ovaltine doesn’t mean to use Ovaltine but rather another coded advertisement from the back of the coin, “BeSureToBuyXilinx.” The email address that should be used is:

BeSureToBuyXilinx@myorgs.org

Sending an email to this email address does NOT bounce but rather receives an immediate auto-response:

“For critically sensitive IP you CAN secure your domain.  The key is to partner with Xilinx.

mtde ghs rgon yuyrx cc rbxi vkyfssjn: mcalqnrucixyafwsp

Thanks,
Xilinx Secure Solutions”

Ugh, another coded message! Putting it into the Vigenere decoder with the earlier key, however, does not work. Re-reading the auto-response reveals the necessary clue:

“The key is to partner with Xilinx.”

The key “to partner with Xilinx” decodes the message:

mtde ghs rgon yuyrx cc rbxi vkyfssjn: mcalqnrucixyafwsp
send one more email to this username: succeedwithxilinx

Sending one more email to succeedwithxilinx@myorgs.org also does not bounce but receives another auto-response:

“Congratulations!  You have solved the XSWG 2014 Crypto Challenge.  Please send an email with your contact information to …….”

Ahhh, the sweet feeling of victory…

2014XSWGWinner

4 Comments

  1. The 2014 XSWG Challenge was created using Sharky’s Vigenere Cipher v2, which shifts the result by 1 due to its implementation differing from what is described in the Wikipedia article. The Wikipedia article equation uses a modulo-26 to wrap back around to the beginning of the alphabet, which requires the first letter (“A”) to be assigned a value of zero (0). Sharky’s Vigenere Cipher version-1 implements this way, as do the rumkin.com tools. However Sharky’s version-2 tool changed the implementation to substitute the first letter (“A”) with one (1), which changes the equation to Ci = [(Mi + Ki) mod 26] + 1 so that a zero is never encountered (because the first letter is now a 1, not a zero). This “+1” in the equation causes the shift in Sharky’s version-2 tool.

  2. The Vigenere decode of “Lhq Vft Etm” to “Not One Bit” appears to utilize the key “XSWGROCKS” but shifted by one letter of the alphabet resulting in the actual key to the Vigenere cipher being “YTXHSPDLT”.

    Alternatively, if having trouble with the Vigenere decode, one might also first Ceasar shift the cyphertext by one letter turning into “KGP UES DSL” before using the Vigenere cipher to decrypt with the keyword “XSWGROCKS”.

    It looks like the “Sharky’s Vigenere Cipher v2″ link provided behaves as intended (it decrypts “LHQ VFT ETM” into “NOT ONE BIT” using the key “XSWGROCKS” as anticipated).

  3. I think many engineers view math as a necessary evil:

    “It has been said that mathematicians understand the way things function but can’t actually get anything to work, while engineers can get things to work even though they can’t figure out why.”

    (from “A Rigorous Comparison between Mathematicians and Engineers” by Mason A. Porter)

Comments are closed.