Skip to content

Commit

Permalink
fix key size
Browse files Browse the repository at this point in the history
  • Loading branch information
0xJepsen committed Aug 11, 2024
1 parent 1e96759 commit 30f0129
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 28 deletions.
14 changes: 2 additions & 12 deletions src/consts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,8 @@
pub(crate) const KEY_ASCII: &str = "1111111111111111"; // 16 bytes
pub(crate) const IV_ASCII: &str = "111111111111"; // 12 bytes
pub(crate) const MESSAGE: &str = "test000000000000";
pub(crate) const KEY_BYTES_176: [u8; 176] = [
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,
0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20,
0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30,
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40,
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50,
0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60,
0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70,
0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, 0x80,
0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90,
0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, 0xA0,
0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0,
pub(crate) const KEY_BYTES_156: [u8; 16] = [
0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31,
];
pub(crate) const KEY_BYTES_256: [u8; 32] = [
0x01, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x00, 0x0,
Expand Down
22 changes: 10 additions & 12 deletions src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,9 @@ pub(crate) fn parse_bit_from_field(j: &Fr) -> u8 {
}
#[derive(Serialize)]
pub(crate) struct AESInputs {
k1: Vec<u8>,
k1: Vec<u8>,
r#in: Vec<u8>,
out: Vec<u8>,
out: Vec<u8>,
}
/// Input signals for the AES-GCM-SIV circuit:
/// signal input K1[256];
Expand Down Expand Up @@ -110,24 +110,22 @@ pub(crate) fn make_json_witness(witness: &Witness, mode: CipherMode) -> Result<(
assert_eq!(data.CT.len(), 256, "CT must be 256 bits");
let mut file = std::fs::File::create("inputs/aes_gcm_siv_witness.json").unwrap();
file.write_all(serde_json::to_string_pretty(&data).unwrap().as_bytes()).unwrap();

}
CipherMode::Ctr256 => { }
},
CipherMode::Ctr256 => {},
CipherMode::Vanilla => {
let data = AESInputs {
k1: bytes_to_bits(&witness.key),
r#in: bytes_to_bits(&witness.pt),
out: bytes_to_bits(&witness.ct),
k1: bytes_to_bits(&witness.key),
r#in: bytes_to_bits(&witness.pt),
out: bytes_to_bits(&witness.ct),
};
assert_eq!(data.k1.len(), 1408, "k1 must be 1408 bits");

let mut file = std::fs::File::create("inputs/aes_128_enc_witness.json").unwrap();
file.write_all(serde_json::to_string_pretty(&data).unwrap().as_bytes()).unwrap();

},
CipherMode::GCM256 => { },
CipherMode::Ctr128 => { },
CipherMode::GCM128 => { },
CipherMode::GCM256 => {},
CipherMode::Ctr128 => {},
CipherMode::GCM128 => {},
}

Ok(())
Expand Down
8 changes: 4 additions & 4 deletions src/witness.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
use aes::{
cipher::{BlockEncrypt, InnerIvInit, KeyInit, KeyIvInit, StreamCipher, StreamCipherCore},
Aes128
Aes128,
};
use aes_gcm::{
aead::{generic_array::GenericArray, Aead, NewAead, Payload},
Expand Down Expand Up @@ -95,7 +95,7 @@ pub fn aes_witnesses(cipher_mode: CipherMode) -> Result<Witness> {
let ct = encrypt_tls(MESSAGE.as_bytes(), KEY_ASCII.as_bytes(), IV_ASCII.as_bytes(), 1).unwrap();
println!("ENC: cipher_text={:?}, cipher_len={:?}", hex::encode(ct.clone()), ct.len());

let key = GenericArray::from(KEY_BYTES_176);
let key = GenericArray::from(KEY_BYTES_156);
let key_256 = GenericArray::from(KEY_BYTES_256);
let iv = GenericArray::from(IV_BYTES);
let mut block = GenericArray::from(MESSAGE_BYTES);
Expand Down Expand Up @@ -173,7 +173,7 @@ pub fn aes_witnesses(cipher_mode: CipherMode) -> Result<Witness> {
apply_keystream(ctr, &mut buffer);

// WORKING! The aes-ctr and aes-gcm now match.
println!("INPUT iv={:?}, key={:?}", hex::encode(IV_BYTES), hex::encode(KEY_BYTES_176));
println!("INPUT iv={:?}, key={:?}", hex::encode(IV_BYTES), hex::encode(KEY_BYTES_156));
println!(
"AES GCM IV={:?}, tm={:?}, ct={:?}",
hex::encode(ghash_iv),
Expand All @@ -184,5 +184,5 @@ pub fn aes_witnesses(cipher_mode: CipherMode) -> Result<Witness> {
println!("AES CTR 256, 96 IV: ct={:?}", hex::encode(block));
println!("AES GCM 256: ct={:?}", hex::encode(ct.clone()));

Ok(Witness::new(&KEY_BYTES_176, &IV_BYTES_SHORT_256, &ct, &ZERO_MESSAGE_BYTES_256))
Ok(Witness::new(&KEY_BYTES_156, &IV_BYTES_SHORT_256, &ct, &ZERO_MESSAGE_BYTES_256))
}

0 comments on commit 30f0129

Please sign in to comment.