Skip to main content
The National Cipher Challenge

Challenge 10B

A Tale of 2 Secrets Forums T.E.M.P.E.S.T. Challenge 10B

Viewing 15 posts - 226 through 240 (of 268 total)
  • Author
    Posts
  • #115065
    tahausman
    Participant

    is it possible that someone makes a youtube video on how it was meant to be solved? Like how to figure out what cypher, key, etc?

    #115069
    SofiaDC
    Participant

    OH MY GOD I GOT IT!! I KNOW YOU SAID NO GLOATING BUT I GOT IT HARRY!!!! I DID ITTTTTTTTTTTTTTTT
    (yeah i only got it after the last case file but i was surprisingly close to getting it without)
    YAYYYYYYYY!!!

    #114716
    Crackerjack_404
    Participant

    @LW_8S_31

    I’m satisfied with where things ended up, interpret that however you wish

    #114740
    decrypting_donkey
    Participant

    This was posted on 21/12/25, but for obvious reasons we held it back. We really like it though. It is a fantastic record of the thinking behind a break and we thought it was worth showing you all. Harry

    Obviously don’t show this but Harry look at the suffering I’m going through thinking of ideas (these are my notes): Characters that appear:
    A C D H J K Q S X
    2 3 4 5 6 7 8 9
    |
    \ /
    Frequencies:
    Chunk: S, Amount: 1281, Percentage: 0.19281
    Chunk: C, Amount: 859, Percentage: 0.12929
    Chunk: H, Amount: 638, Percentage: 0.09603
    Chunk: D, Amount: 544, Percentage: 0.08188
    Chunk: J, Amount: 346, Percentage: 0.05208
    Chunk: K, Amount: 300, Percentage: 0.04515
    Chunk: 2, Amount: 298, Percentage: 0.04485
    Chunk: X, Amount: 297, Percentage: 0.0447
    Chunk: 8, Amount: 276, Percentage: 0.04154
    Chunk: 5, Amount: 261, Percentage: 0.03928
    Chunk: 9, Amount: 260, Percentage: 0.03913
    Chunk: Q, Amount: 246, Percentage: 0.03703
    Chunk: 7, Amount: 240, Percentage: 0.03612
    Chunk: A, Amount: 240, Percentage: 0.03612
    Chunk: 3, Amount: 206, Percentage: 0.03101
    Chunk: 4, Amount: 188, Percentage: 0.0283
    Chunk: 6, Amount: 164, Percentage: 0.02468

    Each chunk of 4 ends in S or H

    First 20 chunks of 4: 7CXS 3H6S 7CKS XDAS 2CKS 8D4S 9C2S 7DXS 3D9S 7C2S 6HJS 9C2S 3D7S 8CQH ACQS AH5S 9DJH 7D3S 8D5S 7CQH
    Possibility: DE AR DO DG E_

    If you look at chunk 1 and 3, you’ll notice they both begin with ‘7C’. Now if you look at the possibility written underneath the chunks, pair 1 and 3 begin with ‘D’. So maybe that’s a meaningful correlation.
    Surely this idea wouldn’t work then as it means each pair maps to a letter but there are 52 unique pairs (not 26) – however 52 is exactly double 26 so maybe duplicates.
    This could be supported by a 4×13 (52 possibilities) grid with the alphabet twice:
    1 2 3 4 5 6 7 8 9 10 11 12 13
    1 A B C D E F G H I J K L M
    2 N O P Q R S T U V W X Y Z
    3 A B C D E F G H I J K L M
    4 N O P Q R S T U V W X Y Z
    We could also do this plus playfair rules (including modified rules like from 9B).
    I could not get either of the above theories to work

    If we take the first half of each chunk of 4 to get pairs, there are 36 unique pairs (even though theoretically there are 39 possibilities) (this would fit in a 6×6 grid), and if we do it with the second half of each chunk, there are 16 unique pairs (even though theoretically there are 26 possibilities) (this would fit in a 4×4 grid). Maybe first halves and second halves have different decryption grids – also no pairs from the first half ever appear in the second half. This idea would now support the idea proposed a few lines above. If this theory is correct we could lay out decryption grids like this:
    6×6 grid (for first half pairs):
    1 2 3 4 5 6
    1 A B C D E F
    2 G H I J K L
    3 M N O P Q R
    4 S T U V W X
    5 Y Z A B C D
    6 E F G H I J
    4×4 grid (for second half pairs):
    1 2 3 4
    1 K L M N
    2 O P Q R
    3 S T U V
    4 W X Y Z
    Since the 6×6 grid contains 10 more positions that the 4×4 grid and the 4×4 grid is 10 positions away from 26 (length of alphabet), perhaps the missing 10 are put into the first grid as the first grid is 26 (length of alphabet) + 10 extra positions. Since second half pairs also always end with S or H, maybe they decide which grid to find the letter in.
    I could not get the above theory to work
    Big update on above theory: I noticed from the characters that appear in each index of chunks of 4 from below, the second has ‘H’, which is also in index 4. I ignored this at first however I just did frequency on pairs in the first halves of chunks that end in ‘H’, and there’s exactly 10! 26 + 10 = 36, a 6×6 grid, and I said earlier maybe 10 letters missing from the second 4×4 grid could be the extras in the 6×6 grid, and this proves it!
    This idea could also be represented by using the 4×13 grid from earlier but coordinates used differently:
    7 3 X 2 8 9 6 A J Q 5 K 4
    C A B C D E F G H I J K L M
    D N O P Q R S T U V W X Y Z
    S A B C D E F G H I J K L M
    H N O P Q R S T U V W X Y Z

    When in chunks of 4:
    first characters in chunk can be [‘7’, ‘3’, ‘X’, ‘2’, ‘8’, ‘9’, ‘6’, ‘A’, ‘J’, ‘Q’, ‘5’, ‘K’, ‘4’]
    second characters in chunk can be [‘C’, ‘H’, ‘D’]
    third characters in chunk can be [‘7’, ‘3’, ‘X’, ‘2’, ‘8’, ‘9’, ‘6’, ‘A’, ‘J’, ‘Q’, ‘5’, ‘K’, ‘4’]
    fourth characters in chunk can be [‘S’, ‘H’]

    Possibly coordinate system using chunks of 4?

    There are 283 unique chunks of 4 and that is close to the amount of unique pairs you’d see in normal text perhaps chunks of 4 substitute to pairs

    Unique amount of pairs is 52
    Unique amount of chunks of 4 is 283

    Length of text is 6644 (perfectly divisible by 2 and 4)

    Harry am i close or are these all coincidences or purposeful red herrings?

    #115013
    decrypting_donkey
    Participant

    Oh also idk how but my script got a different grids to what you had in case files, and when i use the case files one, the text has a bunch of misplaced letters. This is just for you guys to check but obviously blur this: Grid1: S H A D O W | Grid2: F U L H | Skipped letters: J and Z
    B C E F G I E A R T
    K L M N P Q B C D G
    R T U V X Y I K M N
    O P Q S
    V W X Y

    #115086
    C1pher67
    Participant

    This is my team’s very first year, and from the introductory challenges all the way to now Challenge 10B, I’ve learnt so, so much. I threw myself into this barely knowing what a monoalphabetic or substitution cipher was, and I think, personally, I really have progressed. Now, I know we’re so dreadfully close to the end of this year’s cipher challenge, and to be frank, I’ve STILL got nothing, even with the whole key, but me (and my team) have enjoyed the whole three (or four, I don’t really know) month journey the Charleses have taken us on ;P. We’re still only in year 7, so there’s a whole lot of time to try again and again, and I certainly will! We’ve been reading all the excited messages of participants who’ve solved Chapter 10B, so great job to you, I envy you (lol) and maybe see you next year?

    Thanks BOSS and the team for finding this fantastic story; the lore was so fun to piece together, if not extremely infuriating 😀

    #115091
    Gen_ruikt
    Participant

    idk if i can give the solution now but i will say look at positioning and squares

    #115107
    Bookluvr18
    Participant

    We’ve figured out how to decrypt the cipher but we’re not experienced with how to code using python. we’re cutting it really close and i don’t think we have enough time to learn it before the deadline. Anyone have any tips?

    #115113
    GREENcar
    Participant

    @Bookluvr18 It doesn’t take that long to do it using find and replace – two people from our team did it in only an hour.

    #115114
    upsidedown
    Participant

    @Bookluvr18 the cipher encrypts pairs of plaintext letters to pairs of cards (four ciphertext letters). There are 283 unique pairs of cards, which is a small enough number that you can manually work out all of them using the grid published in case file 10.12 (as you said we, you can divide this work between you!).

    You can put all the pairs you work out into this short Python program which will do the tedious work of decrypting everything:

    
    # Lines that start with # are comments and are ignored by Python
    
    # Fill in the full ciphertext here, by copying from the website.
    ciphertext = "7CXS3H6S7CKSXDAS2CKS....."
    
    # This is a dictionary called lookup.
    #
    # The bit on the left of the colon is a pair of cards (from the ciphertext)
    # and the bit on the right is a pair of plaintext letters.
    lookup = {
        "7CXS": "RE",
        "3H6S": "PO",
        "7CKS": "RT",
        "XDAS": "ON",
        "2CKS": "TH",
    
        # Add the rest here...
    }
    
    # Remove any unexpected letters.
    ciphertext = "".join(
        letter for letter in ciphertext.upper()
        if letter in "A23456789XJQKCDHS"
    )
    
    # Break the ciphertext up into 4-letter sequences (2 cards)
    card_pairs = [
        ciphertext[i:i+4]
        for i in range(0, len(ciphertext), 4)
    ]
    
    # Use the lookup dictionary to convert pairs of cards into pairs of letters
    letter_pairs = [
        lookup[card_pair] if card_pair in lookup else ".."
        for card_pair in card_pairs
    ]
    
    # Print the result
    print("".join(letter_pairs))
    

    Assuming you’re using Windows: install Python 3.13 from Microsoft Store, then open IDLE. Click on File > New, paste the program above into the new window, and save as 10b.py then copy and paste the full ciphertext into the indicated place in the program. Click Run > Run Module and you will see a partial decryption. You can now add more pairs to the lookup structure in the program until you have the full plaintext.

    #115118
    Crackerjack_404
    Participant

    @Bookluvr18

    If you already understand how the cipher works, you don’t actually need Python to finish it. Coding just automates the mechanical part.

    You can use Excel/spreadsheet for this as well. I haven’t personally done it, but I’d imagine you can put the two card grids and two letter grids into tables, split the ciphertext into two columns with one card per column, and use MATCH to find each card’s row/column index, then INDEX into the letter grids to get the plaintext. Drag the formulas down and you should hopefully decipher the text.

    Alternatively, you can also just use a simple text editor and find and replace once you know some mappings like 7C -> R, XS -> E, etc. It’s not the most elegant, but it does work.

    Also came across a useful page which has some nice techniques on using Excel to decrypt ciphers with known keys: https://www.get-digital-help.com/basic-substitution-cipher/#22

    It’s not specific to this challenge, but you might find some of the lookup/replace ideas useful. Well done for making it this far and I hope you manage to solve it before the deadline!

    #115120
    FD45
    Participant

    @Bookluvr18 I can’t really think of anything useful that doesn’t use some kind of code, sorry. The only thing I can think of is perhaps converting each letter in each square into a coordinate (e.g. 7C XS becomes [6,1a] & [5, 4b]*), then solve it as substitution (using find and replace in a text editor of some kind) for each grid ([5, 4b] becomes E, but [5, 4a] doesn’t, as that’s a different grid).
    Not sure if that would take longer than just doing each letter manually anyway, but I hope it helps.

    *I believe my grid was a different way around to the case file, so these may not be the correct coordinates

    #115123
    T
    Participant

    I know this isn’t exactly what we were set, but I’ve been having a go at solving 10B as a 16×36 grid as I thought it should be possible and although the order of the cards on each axis doesn’t matter using this method I’ve set them to the same order as that used in the offset foursquare so the patterns show up.
    After many attempts at using a similar algorithm to that used when solving a 5×5 grid I found that the only way I could get an improving result was by going through each position in the grid and swapping the pair of characters in that square with every other position in the grid and using simulated annealing and a quadgram test at each position. Each iteration took about 1 minute and after about 100 iterations it looked quite good and after 548 iteration it got to the best result as the next output was at 1265 iterations and the quadgram score was better but the result looked worse which was confirmed later when I checked the percentage accuracy.
    At this point I had approximately 85% accurate result when compared with the plaintext, so I re-ran the algorithm using quintgrams (which took 10 minutes per iteration) using the output from the previous program as the starting point and got an improved accuracy of approximately 95%, with the same problem I was getting before of the result getting worse (at around 37 iterations).
    I’ve started reading the text and manually updating the key and since I had not actually read the plaintext the guesses I’ve been making have not been influenced by prior knowledge, I’ve also ignored the patterns showing up in the key as I wanted to show that it could be solved as if using a random key.
    For anyone interested these are the keys I’ve got so far (which give a 97.6% accurate result):

    key1 =
    “SBAAOGSHMDAWSKADCWSHUDOWSHXDOWGHBBOISFGDOVSHLDOWSLABOWSMPMOPSHADOCSYPDOWPBADOMSCADOWSUMDOGSGADOAUMKYLSHDSNBKSIHDGWSHADOWTKACOMUVADOWSNADOLTFAKRHLFEFLUBCEKGIEFMVLIBCEFGDICEFSIMTEAGIBCEHMIGCEFGIPYEFXIDCERXIYTEFHILTELLOXXEQGIICEFGIRRELGILQEAKIWUDPHGXSEAMXVCAFGDMCEFGIYXELGIXPENGIPCEQGIBGEFGUKSRNKXKLMNPXKYMOMVKLMNPTBLVNPUBNSNBHXLHNQCKLMNPAFAONVKHLFNFKHBMPPPQVQNYQQLXNPUQUMBPHVLBNFQXRVNPVQABRGFMWPXXXVIBNVKKWMNFUWAINDNWLOUQQQEVNCWBLBNPQSTKDWYRTMVQYRVQXWYRTYVHYRTWVBYXMUFQIYTOFOGRTUPDYRCUUXYRFHVEVRCUWHTWTWPCARTUVMQTTULXYRXQQCYRTHVUYCQKWKKFKUHNBRTCBYQRTUCVYRKXCTYRVUXWYRTUBPYRTPQHK”

    key2 =
    “FOFDFYEEVEIEBYBBPBIIHIIIOOHOOOVBCNVXUNQUUSAAPAAACHCBCCQCHLKDPPPPPVWKGWWFMMLLLFRLRRRRDMODDUMWMMMUDWAQNGNYLQABHISHCHTTTTTTBNGYGGGHNNNNSNSSSCVUYWVHQYFFWEEEEOEEHGUYMBIIIIIGFOOONOMQVQMVUUURSUOAAAAAUPCCTCCKKFOKUKPPMPGGWBRBNSLRLLWRRRRRQWDSDDFPMKRMMQVSLPEYXWQGDHVHHFHTTTTTXFGVGGQXNPNNQSSOSSYFYSBOFKRFQREEEEEVMVBYYTIIIIIDSOAOOFVBVVTWWUYUGCLAAAAXLOHCFXCKWKESUPPWPTLGKWYEFLLLLIHYRXRKQDLDBYBXXMBNQEKUXDNPCKYMRHQHPCTSTTQWYHYGXRQTQUBCMBLSGUDYHYYSXFPQDFEEKEVWBWXIVBIIEIQIOOXOGOAXXXNQLUXMEKAAANKACWCVCCKKFBQUPXPGXPKWCVQALLLCDINRRXDRDUATFDMMGKBMMWGLHUVKKDXFHHBWHUTTTNVTGVXDXGNMNPWNSSSRFSYYKDVD”

    With one character from each key making up each square and with the first 36 character pairs (and subsequent 36 character pairs) making up each column of the grid.
    Since about a third of the pairs of the characters in the grid are not used in the plaintext there are quite a few random characters in the key.

    #115124
    joelle_mullyring
    Participant

    @Bookluvr18

    you can use Microsoft Word (or similar) and use the find and replace tool. for each character pair you can replace with the corresponding letters they make
    it takes a while but there are only so many combinations (in theory 576 but in reality a lot less as some letter combinations don’t appear e.g. xy) and you will start being able to work out what pairs are as more frequant bigrams get filled in!
    Hope that helps!
    happy 2026 everyone!

    #115130
    BobD
    Participant

    To confirm my use/recommendation of using Excel, this is the table I used to finish off 10B (no surprise there!). The decryption used two straightforward formulae working on pairs of ‘cards’ to give the plaintext equivalents. The major advantage of this method was the interactive aspect of filling in the lower-case pairs, one by one, giving instant feedback as to its effect on the emerging plaintext: starting with 2C-KS returning t-h. Then working on the likely pairs, as dictated by the digram probabilities.

    0 1 2 3 4 5 6 7 8 9
    0 AC 2C 3C 4C 5C 6C f u l h
    1 7C 8C 9C XC JC QC e a r t
    2 KC AD 2D 3D 4D 5D b c d g
    3 6D 7D 8D 9D XD JD i k m n
    4 QD KD AH 2H 3H 4H o p q s
    5 5H 6H 7H 8H 9H XH v w x y
    6 s h a d o w JH QH KH AS
    7 b c e f g i 2S 3S 4S 5S
    8 k l m n p q 6S 7S 8S 9S
    9 r t u v x y XS JS QS KS

Viewing 15 posts - 226 through 240 (of 268 total)
  • You must be logged in to reply to this topic.
Report a problem