On the Subject of Silo Authorization

There's no way to win. The game itself is pointless!

There are two buttons, two lights, and 14 multi-segment displays. You must receive an encrypted message and respond with your own. Note: All calculations are assumed to be in base 36, meaning 0-9 & A-Z, unless noted otherwise.

Received Message

After you press the receive button, an encrypted message will be spoken to the defuser after 20% - 40% of the bomb's remaining time has passed, or a minimum of 30 seconds. You may repeat the message as many times as you would like, still waiting 30 seconds after the button is pressed. If you strike, you will be given a new message.

    Step 1: Decryption

  • The first character of a part indicates how the following three were encrypted. See "Encryption" for how to decrypt the individual parts.
  • Step 2: Authentication

  • The Authentication Code verifies the decrypted message. See "Authentication" for how to calculate the code, with your offset being the serial number.
  • Step 3: Verification

  • Each of these parts (the first and second part of the message, as well as the Authentication Code) can be individually valid.
    • The first part, decrypted, is valid if it matches an indicator present on the bomb. If there are no indicators, use MRP.
    • The second part, decrypted, is valid if each individual character is contained in the serial number.
    • The Authentication Code, in base 10, is valid if it matches what is given.

Response Message

After deciphering and verifying the message received, you must calculate the message to be sent. The message will contain a Silo ID, and encrypted response code, a Launch Location, and an Authentication Code.

    Silo ID

  • The Silo ID contains three digits in base 36, which are the number of battery holders, number of batteries, and number of port plates, each modulo 36. If any characters are 0, change them to the first letter of the serial number.
  • Message

  • The response message is based on what you received. You may choose any character to indicate the cipher you wish to encrypt the message with, but you cannot use a cipher that was already used in the received message.
    • If your received Authentication Code was invalid, you must respond with a Jamming message, which is the 1st character of the first part of the message, the 2nd character of the second part, and the 3rd character of the first part.
    • Otherwise, if either of the parts of the received message were valid, you may respond with those.
    • Otherwise, if both parts of the received message were invalid, you must reply with an Error message, which is the 1st character of the second part of the message, the 2nd character of the first part, and the 3rd character of the second part.
  • Launch Location

  • The Launch Location contains three digits in base 36, which are the number of solvable modules, unsolved modules, and solved modules, each modulo 36. This is calculated when your response message is sent.
  • Authentication Code

  • The Authentication Code verifies the decrypted message. See "Authentication" for how to calculate the code. If your received message was code "Red-Alpha", your offset is the Launch Location. Otherwise, your offset is the Silo ID.

Encryption

To encrypt a message, follow these steps. There are three different types of ciphers used. To find which cipher is used, modulo the character indicating encryption by 3, treating 0 as 3. If decrypting, follow the steps backwards.
  1. Rot18: Add I (18 in base 10) to your character. Keep your character in the range of 0-Z, adding or subtracting 10 (36 in base 10) as necessary. For example, 0 -> I, 1 -> J, A -> S, etc.
  2. MAtbash: Swap your character with the mirrored character in the alphabet, using 0-9 and A-Z. For example, 0 -> Z, 1 -> Y, A -> P, etc.
  3. Post-Modern: Move your character forward by the first character in the Silo ID on a QWERTY keyboard, including 1-0. Loop around as necessary. For example, with a Silo ID of 015, 9 -> 0, 0 -> Q, M -> 1, etc.

Authentication

To calculate an Authentication Code, follow these steps.
  1. Convert all individual characters into base 10. Remember to convert both your message and offset, but ignore characters that indicate encryption.
  2. Multiply the first number from the message by the first number in your offset. Repeat for all following numbers.
  3. Add all of these products together and modulo by 10,000. This is your Authentication Code.