1 분 소요

1. 문제Permalink

[Bronze V] Double Crypt 1 - 24218Permalink

문제 링크

성능 요약Permalink

메모리: 30860 KB, 시간: 64 ms

분류Permalink

구현(implementation)

문제 설명Permalink

The Advanced Encryption Standard (AES) involves a new strong encryption algorithm. It works with three blocks of 128 bits. Given a message block p (plaintext) and a key block k, the AES encryption function E returns an encrypted block c (ciphertext):

c=E(p,k).

The inverse of the AES encryption function E is the decryption function D such that

D(E(p,k),k)=p, E(D(c,k),k)=c.

In Double AES, two independent key blocks k1 and k2 are used in succession, first k1, then k2:

c2=E(E(p,k1),k2).

In this task, an integer s is also given. Only the leftmost 4×s bits of all keys are relevant, while the other bits (the rightmost 128 minus 4×s bits) are all zero.

You are to recover the encryption key pairs for some messages encrypted by Double AES. You are given both the plaintext p and the corresponding double-encrypted ciphertext c2, and the structure of the encryption keys as expressed by the integer s.

You must submit the recovered keys, and not a recovery program.

입력Permalink

You are given ten problem instances in the text files named double1.in to double10.in. Each input file consists of three lines. The first line contains the integer s, the second line the plaintext block p, and the third line the ciphertext block c2 obtained from p by Double AES encryption. Both blocks are written as strings of 32 hexadecimal digits ('0'..'9', 'A'..'F'). The library provides a routine to convert strings to blocks. All input files are solvable.

출력Permalink

The first line contains the key block k1, and the second line the key block k2, such that

c2=E(E(p,k1),k2).

Both blocks must be written as strings of 32 hexadecimal digits ('0'..'9', 'A'..'F'). If there are multiple solutions, you need submit only one of them.

출처: 백준, https://https://www.acmicpc.net/

2. 해결방법 시간복잡도Permalink

  1. 단순 코딩 O(1)

3. 문제 해결 및 코드Permalink


print("""A0000000000000000000000000000000
70000000000000000000000000000000""")
view raw 24218.py hosted with ❤ by GitHub
  • 주석을 참고하면서 이해를 돕습니다.Permalink

4. 알고리즘 및 해설Permalink

  1. 문제의 핵심은 해당 32자리수를 출력하는 것이다.
  2. 그러므로 해당 수를 출력해준다.