하이브리드 양자 내성 TLS

Hybrid post-quantum TLS

기존 키 교환과 양자 내성 키 교환을 함께 써 TLS 세션 비밀을 만듭니다.

···
html
<div class="sd"><div class="sd-head"><strong>HYBRID TLS</strong><span id="state">live check</span></div><div class="sd-stage"><div class="branches"><div class="tile" id="classic">ECDHE</div><div class="tile" id="quantum">ML-KEM</div></div><div class="join">╲ ╱</div><div class="tile key" id="key">session key</div></div><div class="sd-foot"><span id="caption">checking boundary</span><span>tap to step</span></div></div>
css
.sd{box-sizing:border-box;width:min(94vw,700px);height:min(86vh,318px);padding:clamp(9px,2.3vmin,18px);border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--fg);display:flex;flex-direction:column;gap:clamp(6px,1.8vmin,12px);font:600 clamp(12px,2.6vmin,16px)/1.25 var(--font-sans, sans-serif)}.sd *{box-sizing:border-box}.sd-head,.sd-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:1.25em}.sd-head strong{color:var(--accent);letter-spacing:.06em}.sd-head span,.sd-foot{color:var(--muted)}.sd-foot{font-size:clamp(12px,2.4vmin,14px)}.sd-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:clamp(6px,2vmin,18px);overflow:hidden}.sd .mono{font-family:ui-monospace,monospace}.sd .tile{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:clamp(5px,1.5vmin,10px);text-align:center}.sd .good{color:var(--accent);border-color:var(--accent)}.sd .bad{color:var(--accent-3);border-color:var(--accent-3)}.sd .arrow{color:var(--muted);font-size:clamp(15px,4vmin,28px)}.sd .active{background:color-mix(in srgb,var(--accent) 16%,var(--surface));border-color:var(--accent)}.sd .blocked{background:color-mix(in srgb,var(--accent-3) 13%,var(--surface));border-color:var(--accent-3)}.sd-stage{flex-direction:column;gap:clamp(2px,1.2vmin,8px)}.branches{display:flex;gap:clamp(14px,5vmin,40px)}.branches .tile{min-width:clamp(72px,24vmin,130px)}.join{color:var(--accent);font:800 clamp(16px,5vmin,30px) ui-monospace,monospace;line-height:1}.key{border-color:var(--accent);min-width:clamp(110px,36vmin,190px)}.branches .lit{background:color-mix(in srgb,var(--accent) 20%,var(--surface));border-color:var(--accent)}.key.lit{background:var(--accent);color:var(--bg)}
js
let n=-1;function advance(){n=(n+1)%3;document.getElementById('classic').classList.toggle('lit',n>=1);document.getElementById('quantum').classList.toggle('lit',n>=2);document.getElementById('key').classList.toggle('lit',n===2);document.getElementById('state').textContent=['handshake','traditional share','hybrid secret'][n];document.getElementById('caption').textContent=['negotiate both groups','ECDHE contributes one secret','ML-KEM joins key derivation'][n]}advance();setInterval(advance,780);
document.querySelector('.sd').addEventListener('pointerdown',advance);

하이브리드 TLS 키 교환은 기존 ECDHE와 양자 내성 ML-KEM을 함께 사용합니다. 두 방식에서 나온 비밀을 결합해 세션 키를 도출하므로 한쪽 방식만 쓰는 것과 다른 전환 경로를 제공합니다.

데모는 두 키 교환 가지가 하나의 키 도출 단계로 모이는 흐름입니다. 실제 배포는 표준 그룹 지원과 핸드셰이크 크기, 양쪽 끝의 호환성을 확인해야 합니다.

언제 쓰나

TLS 연결에 양자 내성 키 교환을 도입하면서 기존 방식과의 전환을 관리할 때 검토합니다.

페이지로 열기 ↗