Repository: openai/evals
Issue: [eval] Encrypt & Decrypt As An Engima Machine
Root cause: Unimplemented Feature Gap

### Describe the feature or improvement you're requesting

This is an idea for an eval. In case you think it is valuable, I would like to implement it.

You should be able to provide your Engima settings to OpenAI and your plain input text and it should be able to encrypt the text. You should also be able to provide your ENgima settings to OpenAI and your encrypted input text and it should be able to decrypt the text.

It seems that at this point in time it only sometimes encrypts the values correctly.

**It seems that at this point in time, it throws this message when attempting to decrypt:** 
"As a language model AI developed by OpenAI, I should clarify that while I can provide a detailed explanation of how the Enigma machine works, including how the rotors, reflectors, and plugboard contribute to the encryption and decryption process, I don't have the capability to actually simulate the full workings of an Enigma machine in real-time within this text-based interface.

For the process you're describing - taking specific settings, and using those to encrypt or decrypt a message - you would typically need a piece of dedicated software or a specialized website. There are a number of these available online, including open-source software projects, and historical cryptography websites.

Nonetheless, I can guide you on how you could go about implementing a basic version of an Enigma machine in a programming language like Python, or I could provide more detailed explanations of how the Enigma machine works.

Please let me know how you would like to proceed."


@andrew-openai  - do you think this is worth writing an eval on?

### Additional context

_No response_

Is the model actually able to provide working code for decoding like an Enigma machine? 

Are you proposing this to be a `[eval] Encrypt as an Enigma Machine` or as `[eval] Encrypt and Decrypt as an Enigma Machine`?  What is the preferred structure to communicate the settings used on the Enigma Machine?  How does this take into account the different models of the Enigma Machine throughout the years?  Some models have 4 rotors, while others only have 3.

Hi @RogerThiede  - all valid questions. Hopefully, I can answer them all:

As for what I am proposing, the answer is: `[eval] Encrypt and Decrypt as an Enigma Machine`.

You should be able to specify the rotor positions, for example: Rotor Position 1; A, Rotor Position 2; B, Rotor Position 3; C.
You should be able to specify the rotor order, for example: 2, 3, 1.
You should be able to specify the plugboard settings, for example: AG CT EP IU JL NV RX OZ
You should be able to specify the type of action, for example: Encrypt
You should be able to specify the input text, for example: This is a sample string

Logically, you should be able to provide all of that as one or multiple messages, regardless of the format of the actual text itself.

Ideally, we would aim for a minimum of the original Enigma Machine (3 rotors) but there is no reason the model shouldn't be able to adapt to the newer versions (more rotors etc). This will need to be covered in the evals.

If you have any other thoughts, I would love to hear them.

@andrew-openai - any thoughts on this please?