전기를 쓴 흔적으로
암호 키를 찾을 수 있을까요?
컴퓨터는 데이터를 보호할 때 암호 키라는 비밀 값을 사용합니다. 여기서 다루는 AES는 그 키로 데이터를 암호화하는 방법입니다.
기기가 암호화를 할 때 쓰는 전력은 처리하는 값에 따라 조금씩 달라질 수 있습니다. 키 후보마다 예상한 전력 변화를 여러 번 기록한 전력 파형과 비교하면, 어떤 후보가 실제 키에 가까운지 추정할 수 있습니다. 이것이 상관 전력 분석(CPA)입니다.
AES의 수학적 원리를 깨는 것이 아니라, 기기가 계산하며 남기는 흔적을 이용합니다. 이 페이지는 그 과정을 보여주는 합성 예제이며, 방문자의 기기를 분석하지 않습니다.
아래 결과는 이렇게 보세요
먼저 주황색 막대를 보세요. 선택한 바이트에서 전력 변화와 가장 강하게 연결된 키 후보입니다. 16 / 16은 예제에서 미리 알고 있는 정답 키와 16바이트 모두 일치했다는 뜻입니다. 상관계수가 높다고 그 수치가 정답 확률인 것은 아닙니다.
용어가 낯설다면
- 평문
- 암호화하기 전의 데이터입니다. 이 예제에서는 알고 있는 평문과 전력 파형을 함께 사용합니다.
- Trace · 전력 파형
- 한 번의 암호화 동안 전력 변화를 시간순으로 기록한 것입니다. 1,000 traces는 이런 기록 1,000개입니다.
- 바이트 · 키의 한 조각
- AES-128 키는 16바이트입니다. 이 분석은 각 바이트에 들어갈 수 있는 256개 값을 비교합니다.
- 상관계수
- 예상한 값과 기록된 전력이 함께 변하는 정도입니다. 여기서는 절댓값을 비교하며, 1에 가까울수록 선형 관계가 강합니다.
CPA 분석 결과
전력 파형과 평문을 비교해 AES 키 후보를 찾습니다.
- 분석한 traces
- 1,000
- Points / trace
- 384
기존 C 엔진으로 미리 계산한 합성 예제입니다. 새 분석 실행·파일 업로드·개인 기록은 제공하지 않습니다.
예제 결과를 불러오지 못했습니다. 연결을 확인하고 다시 시도해 주세요.
전력 파형
합성 데이터 · 첫 번째 trace
키 후보별 상관계수
바이트를 선택하면 256개 후보의 결과를 볼 수 있습니다.
- 최상위 키 후보
- — 결과 불러오는 중
- 최대 상관계수
- — max |Pearson r|
- 피크 위치
- — sample point
- 1위 / 2위 비율
- — 정답 확률이 아닙니다
최상위 후보의 시간축 상관계수
선택된 키 후보가 어느 시점에서 강하게 드러나는지 보여줍니다.
Trace 수에 따른 결과
Byte 00을 대상으로, 같은 합성 데이터의 앞 N개를 사용했습니다.
| Traces | 추정 키 | 정답 키 순위 |
|---|
한 데이터셋에서의 변화입니다. 반복 실험으로 측정한 공격 성공률은 아닙니다.
CPA는 이렇게 계산합니다
입력 데이터부터 키 추정까지,
기존 C 코드의 계산 순서입니다.
전력 파형과 평문
AES 연산 중 수집한 파형과 그때 사용한 평문을 짝지어 읽습니다.
256개 키 가설
각 바이트의 키 후보마다 S-box 중간값을 계산합니다.
전력 소비 예상
중간값의 1비트 개수인 Hamming Weight로 누설을 모델링합니다.
상관계수와 키 추정
예상 누설과 파형의 절대 Pearson 상관계수가 가장 큰 키를 선택합니다.
실제 파일을 분석하려면
로컬 원본에서는 파일 업로드, C 엔진 분석, 기록 저장, CSV·JSON 다운로드를 사용할 수 있습니다. 이 공개판은 화면과 합성 결과만 공유합니다. 본인 소유 또는 분석 허가를 받은 데이터에 사용하세요.