It has four lessons. All numbers are in arbitrary units, and the page states that it is a toy model, not a forecast.
- The Loop: each lap of the animation is one generation (research โ build โ test โ deploy). You can set how much better each generation is at research and what share of the R&D work the AI does. While humans still do part of the work, each lap has a minimum time (Amdahlโs law); once the work is almost fully automated, each lap is faster than the last.
- Returns: shows how the exponent ฮฑ changes growth in the model dI/dt = cยทIแต . Below 1, growth slows over time; at 1, it is exponential; above 1, it reaches infinity in finite time (a โhard takeoffโ). The analytic solution and the blow-up time are shown.
- Bottlenecks: switch on, one at a time, compute (combined with ideas as a CobbโDouglas production function), serial work that canโt be automated, and physical limits. With the same ฮฑ, the โsoftware onlyโ curve blows up, while the bottlenecked curve bends down to follow the growth of compute.
- Oversight: each generationโs goals drift slightly, and errors compound. When an evaluation catches a drift, the system rolls back and fixes it before continuing. If oversight does not scale with the model, the detection rate falls with each generation and more drifts slip through. The lesson also introduces safety research ideas: evaluations, interpretability, scalable oversight and staged deployment.
Laser Mosquito Fence is an interactive simulator of a laser mosquito-control device, inspired by the Photonic Fence research project. It models the decision logic (which insect to zap, and when), not the laser hardware.
How it works (five-stage pipeline)
- Detect: insects flying in front of an LED backlight on the far side show up to the camera as dark shadows.
- Classify: each insectโs species is judged from wingbeat frequency and size. Female mosquitoes beat at about 450โ600 Hz, males at 650โ900 Hz and honeybees at about 230 Hz. Confidence rises as observations accumulate.
- Track: a steering mirror turns toward where the insect will be after the system latency. The mirror has a limited turning speed.
- Safety: the whole beam path is checked. If a person is nearby, or a protected insect such as a bee is on the beam line, the shot is held.
- Zap: only biting female mosquitoes get a short pulse. If a shot misses, the system tries again.
Four scenarios
- Evening garden: a mix of insects, the baseline case.
- Mosquito swarm: a throughput test with many mosquitoes queuing for the single mirror.
- Pollinator day: lots of bees, testing whether classification avoids hitting the wrong target.
- Someone walks by: the safety interlock when a person crosses the curtain.
Controls and display
- Sliders: confidence threshold, latency, mirror speed, sensor noise and safety margin.
- Buttons: slow motion, add a person or insects, and disarm.
- Wingbeat spectrum: click any insect to see its spectrum against the frequency bands of each species.
- Results panel: precision (share of zaps that hit female mosquitoes), mosquitoes that escaped, misses, safety holds and zaps per minute.
- Decision log: every zap, miss and hold, with the reason.
Verified: each scenario ran for 15 seconds in a headless browser with no script errors. At default settings, precision was 100% with no male mosquitoes or bees hit, and the person scenario held fire seven times. Raising sensor noise to 100% and lowering the confidence threshold to 50% caused a male mosquito to be hit by mistake and many more misses, which shows how the threshold and sensor noise affect the results.
All numbers are illustrative approximations.
Microduck Simulator is an interactive 3D simulator of Pollen Roboticsโ Microduck, a bipedal duck robot about 25 cm tall and 800 g. It is built on specifications taken from the official microduck runtime and microduck_rl training repositories.
Real robot details used
- Servos: 15 Dynamixel XL330s. IDs are 20โ24 for the left leg, 30โ34 for the neck, head and beak, and 10โ14 for the right leg. The beak (ID 34) is excluded from every policyโs actions.
- Pose and limits: the actual HOME pose and joint limits. Sliders use the real robot convention (radians, signs as in HOME).
- Policy loop: runs at 50 Hz with a 61-D observation (angular velocity, gravity, joint positions, joint velocities, last action, commands) and a 14-D action, both shown live as a heatmap.
- Training settings: velocity command ranges of vx ยฑ0.4 m/s, vy ยฑ0.3 m/s and ฯz ยฑ1.0 rad/s; an air-time reward window of 0.125โ0.3 s; 2 cm foot clearance; battery voltage from 6.5 to 8.2 V; ยฑ1ยฐ backlash; and a ยฑ0.3 m/s push range.
- Policy names: the top bar shows the real task ID for each mode, such as
Mjlab-Velocity-Flat-MicroDuck.
Behaviours
- Walk: drive with the on-screen joystick or W A S D / Q E, and adjust body pose and head commands. Lengthening the gait period pushes air time out of the reward window.
- Roller skates: passive wheels under the feet and a swizzle glide with no foot lift.
- Sit ยท stand (Y): switched by a posture-flag command.
- Beak pick (G): the phase-encoded command can be seen circling in the observation panel. The duck can pick up the block and carry it while walking.
- Ball kick (K / L): shifts weight onto the support foot, then kicks a 70 mm ball.
- Forward roll (R): rolls over the head and lands back on its feet.
- Falls and stand-up: a push that moves the capture point past 62 mm knocks the robot over, and it gets back up by itself.
- Joint control: sliders for all 15 servos, plus the SIT and FOLD keyframes as presets.
- Quack (Space): opens the beak and plays a sound.
Panels
- Live readout: state, commanded and actual speed, trunk tilt, support, capture point and battery.
- Policy I/O: the 61-D observation and 14-D action.
- Foot contact: a contact timeline and the last air time for each foot.
- Servo table: target, actual and error for all 15 servos.
- Controls and overlays: camera presets, a support-polygon and centre-of-mass overlay, backlash and battery settings, and time scale.
Limitations: the motion comes from a kinematic generator (gait phases plus inverse kinematics), not from the trained ONNX policy or MuJoCo physics. Leg geometry is approximate, so poses can differ somewhat from the real robot, especially when the real SIT and FOLD keyframe values are applied directly.
Verified: headless Chromium ran every mode without script errors. Walking air time was 180 ms, inside the reward window. Push โ fall โ stand-up, block pickup and ball kick all worked, and there is no horizontal scroll at phone width.
Sources:
ReedโSolomon Lab is an interactive browser simulator of ReedโSolomon error correction. It runs a real encoder and decoder over GF(2โธ), and every step of the repair updates live as you damage bytes.
Pipeline (top to bottom)
- Status and budget bar: shows how much of the correction budget
2e + s โค n โ kis used. Errors cost 2 slots and erasures cost 1. The result is labeled Clean, Corrected, Decoder failure or Miscorrected. - Step 1 โ Encode: message bytes plus parity bytes form the codeword. The generator polynomial g(x) is shown.
- Step 2 โ Channel: click received bytes to add errors (random values) or erasures (flagged positions). You can also add random hits or bursts.
- Step 3 โ Syndromes: non-zero syndromes show that damage was detected.
- Step 4 โ BerlekampโMassey: computes the error locator ฮ(x), plus the erasure locator ฮ(x) when erasures are present.
- Step 5 โ Chien search: a bar chart of |ฮ| per byte position. Roots, which mark the error locations, are highlighted green.
- Step 6 โ Forney: a table of error values and the XOR fix applied at each position.
- Step 7 โ Decoded: repaired bytes are highlighted, and the sent, received and decoded text are compared side by side.
Scenarios: Sandbox, QR Code 1-M RS(26,16), Audio CD C2 RS(28,24), DVB-T RS(204,188) and Deep Space RS(255,223). Each comes with notes on how that code is used in practice. You can also edit the message and the number of parity symbols.
Verified: 4,000 random fuzz tests within the correction limit all decoded exactly. Damage beyond the limit never crashes the decoder; it is reported as a failure or a miscorrection.
I built and published Build a Transformer, a page that shows how a developer codes the Transformer from โAttention Is All You Needโ in PyTorch, one line at a time.
Layout
- Left, code editor: each chapter has PyTorch code you could actually run.
- โจ Type it out types the code line by line and explains the important lines as they appear.
- Click any line to see what it does and how it changes the tensor shapes.
- Right, visuals: a diagram of how tensor shapes change, plus heat maps of real numbers. The heat maps come from a tiny Transformer (d_model = 8) that runs in your browser.
- Bottom, console: โถ Run cell (Ctrl+Enter) prints results such as
.shapeand parameter counts. They are calculated from the hyperparameters you set in the sidebar.
The 10 chapters
- Embeddings (รโd_model)
- Sinusoidal positional encoding
- Scaled dot-product attention
- Multi-head attention (splitting heads with view/transpose)
- Feed-forward network
- Encoder layer (Add & Norm)
- Decoder layer (causal mask and cross-attention)
- Full model (the output layer reuses the embedding weights)
- Training loop: Adam, a warm-up learning-rate schedule, label smoothing and teacher forcing
- Inference: greedy decoding you can step through one token at a time
Hyperparameters
- Base / Big / Tiny presets are available. The parameter counts come out at about 63.1M for Base and 214M for Big, which closely match the paperโs figures of about 65M and 213M.
- If d_model canโt be divided evenly by h (for example 512 and 12), a warning appears and the console shows an
AssertionError.
Things to keep in mind
- The tiny model behind the heat maps uses random weights that were never trained, so its attention patterns donโt mean anything.
- The German translation in the inference chapter is an example of what a trained model would produce, not real output.
Transformer Architecture is an interactive page that walks through the transformer, the architecture behind ChatGPT, in five stages
Tokens & Embeddings
- Splits your text into tokens (long words become pieces) and gives each one a token ID.
- For a selected token, shows its embedding, the positional encoding and their sum (the input vector) as heat maps, alongside a table of the sin/cos positional encodings.
- A 2D meaning map shows similar words clustering together, and that โking โ man + woman โ queenโ.
Self-Attention
- Computes real dot products from Q, K and V, divides by โd and applies softmax. You get arcs between tokens, the attention matrix and a step-by-step table for the selected row.
- Three heads to switch between: pronoun โ noun, previous token, and uniform averaging.
- In the classic example โThe animal didnโt cross the street because it was too tired / wideโ, โitโ attends to animal (75%) with tired and to street (75%) with wide. Turn on the GPT-style causal mask and โitโ can no longer see the adjective that comes after it, so it is left split between the two nouns.
Transformer Block: an animated step-through of LayerNorm โ multi-head attention โ residual add โ LayerNorm โ feed-forward โ residual add โ ร N layers โ logits. It includes a size comparison of the original Transformer, GPT-2 and GPT-3.
Next-Token Prediction: generates text one token at a time from logits, using temperature-scaled softmax and top-k sampling. Probability bars and entropy are shown, and you can click a candidate to choose the next token yourself.
How It Learns: on โthe cat sat on the ___ โ matโ, shows the cross-entropy loss and its gradient (p โ 1), with a curve of the loss falling at each gradient-descent step.
Some parts are simplified for teaching:
- Vectors have 2โ16 dimensions instead of thousands.
- The attention-head weights are hand-designed so each headโs job is easy to see.
- Next-token prediction uses a small n-gram model built from about 60 sentences instead of a neural network.
์์๋ฅผ ์ฐพ๋ ๋ค ๊ฐ์ง ๋ฐฉ๋ฒ์ ๊ณ์ฐ์๊ณผ ํจ๊ป ํ ๋จ๊ณ์ฉ ๋ณด์ฌ์ค๋๋ค. ๋ชจ๋ ๋ฐฉ๋ฒ์์ ์ฌ์ยท์ด์ ยท๋ค์ยท๊ฒฐ๊ณผ๊น์ง ํ ๋ฒ์ ๋ฒํผ๊ณผ ์๋ ์กฐ์ (โ/โ, Space)์ ์ธ ์ ์์ต๋๋ค.
- ์ํ ๋๋์
n รท d = ๋ชซ โฆ ๋๋จธ์ง์์ ์ฐจ๋ก๋ก ๋ณด์ฌ์ฃผ๊ณ , ๋๋จธ์ง๊ฐ 0์ด ๋๋ ์๊ฐ ํฉ์ฑ์๋ก ํ์ ํฉ๋๋ค. - ์ โn๊น์ง๋ง ๋๋๋ฉด ๋๋์ง ์์ง์ ์ผ๋ก ๋ณด์ฌ์ค๋๋ค.
- ๋ชจ๋ ์๋ฅผ ์ํํ๋ ๋ฐฉ์๊ณผ 6kยฑ1 ์ต์ ํ๋ฅผ ๋น๊ตํ ์ ์์ต๋๋ค. ์ต๋ 12์๋ฆฌ๊น์ง ์ ๋ ฅํ ์ ์์ต๋๋ค.
- ์๋ผํ ์คํ ๋ค์ค์ ์ฒด1๋ถํฐ N(์ต๋ 600)๊น์ง ๊ฒฉ์์์ ์์ p๋ฅผ ์ฐพ๊ณ , pยฒ๋ถํฐ p์ฉ ๋ฐฐ์๋ฅผ ์ง์ ๋๊ฐ๋๋ค.
- ์ง๊ธ ์ง์ฐ๋ ์์ ์(์: 80 = 2 ร 40)์ ๋ณด์ฌ์ฃผ๊ณ , pยฒ > N์ด ๋๋ฉด ๋จ์ ์๊ฐ ๋ชจ๋ ์์๋ผ๋ ๊ฒ์ ํ์ธํฉ๋๋ค.
- ์์ ๊ฐ์ ฯ(N)๊ณผ ๊ทผ์ฟ๊ฐ N/ln N์ ๋น๊ตํฉ๋๋ค.
- ์์ธ์๋ถํด์งง์ ๋๋์ ๊ณผ ์์ธ์ ๋๋ฌด๋ฅผ ํจ๊ป ๊ทธ๋ฆฝ๋๋ค.
- ๊ฒฐ๊ณผ๋ฅผ
360 = 2ยณ ร 3ยฒ ร 5์ฒ๋ผ ์ฐ๊ณ , ์ฝ์ ๊ฐ์(3+1)ร(2+1)ร(1+1) = 24๋ ๊ณ์ฐํฉ๋๋ค. ์ต๋ 13์๋ฆฌ๊น์ง ์ ๋ ฅํ ์ ์์ต๋๋ค. - ๋ฐ๋ฌโ๋ผ๋น ํ์ nโ1 = 2หขยทd๋ก ๋ถํดํ ๋ค, ์ ๊ณฑ-๊ณฑ์ ํ๋ก a^d mod n์ ๊ณ์ฐํ๊ณ ์ ๊ณฑํ๋ฉฐ โ1์ด ๋์ค๋์ง ํ์ธํฉ๋๋ค.
- ํ๋ฅด๋ง ์ํ๊ณผ ๋น๊ตํ๊ณ , ๋ฐ 12๊ฐ๋ก ๋ฐ๋ณต ํ์ ํฉ๋๋ค.
- ์นด๋ง์ดํด ์ 561, ๋ฐ 2๋ฅผ ์์ด๋ 2047, 19์๋ฆฌ ์์ 2โถยนโ1 ๊ฐ์ ์์ ๊ฐ ๋ค์ด ์์ต๋๋ค.
ํค๋๋ฆฌ์ค ๋ธ๋ผ์ฐ์ ๋ก ์๋ ค์ง ๊ฒฐ๊ณผ์ ๋ง์ถฐ ํ์ธํ์ต๋๋ค.
- 91 = 7 ร 13, 1,000,001 = 101 ร 9901, 2ยณยนโ1์ ์์๋ก ๋์ต๋๋ค.
- ฯ(120) = 30, ฯ(600) = 109์ ๋๋ค.
- 600,851,475,143 = 71 ร 839 ร 1471 ร 6857์ ๋๋ค.
- 2047์ ๋ฐ 2์ 11๋ง ํต๊ณผํ๋ ๊ฑฐ์ง ์ฆ์ธ ์ฌ๋ก๋ก ๋์ค๊ณ , 2โถยนโ1์ 12๊ฐ ๋ฐ์ ๋ชจ๋ ํต๊ณผํด ์์๋ก ํ์ ๋ฉ๋๋ค.
์ ๋ ฅ ์๋ฆฟ์์๋ ์ํ์ ๋์์ต๋๋ค. ์ํ ๋๋์ ๊ณผ ์์ธ์๋ถํด๊ฐ โn๊น์ง ๋น ์ง์์ด ๊ณ์ฐ์ ๋๋ผ ์ ์๋ ๋ฒ์์์๋ง ํ์ ํ๋๋ก ํ๊ธฐ ์ํด์์ ๋๋ค. ๊ทธ๋ณด๋ค ํฐ ์๋ ๋ฐ๋ฌโ๋ผ๋น ํ์ ์ผ๋ก ํ์ธํ๋ฉด ๋ฉ๋๋ค.
Wireless Charging is an interactive simulator that explains wireless phone charging (the Qi standard) in four lessons.
- Induction: alternating current in the padโs coil creates a magnetic field, which induces a voltage in the phoneโs coil. Dragging the phone changes the coupling factor k and the induced voltage, and the transmitter current and induced voltage are plotted side by side. Switch to DC and a voltage appears only while the current is rising, then drops to zero.
- Alignment: a top view of the pad shows a heat map of efficiency at each phone position, with a ring marking the 50% boundary. You can change case thickness and coil quality Q and see how much power is wasted as heat at each position. You can also turn on magnets that pull the phone to the centre, as MagSafe and Qi2 do.
- Resonance: a seriesโseries LC circuit is computed with complex impedance. A frequency sweep from 110 to 205 kHz plots power and efficiency, and removing the capacitors drops the delivered power to almost zero. With strong coupling and a light load, the resonance peak splits in two (the Split! button).
- Charging Session:
- The handshake between pad and phone (ping โ identification โ power transfer), with the control packets the phone sends back.
- Bars showing how many watts enter each stage (wall โ inverter โ coil โ rectifier โ battery) and how many are lost along the way.
- The CC/CV charging curve and temperature for a 4500 mAh battery. Charging slows when the phone gets warm.
- Dropping a coin on the pad triggers foreign-object detection (FOD), which stops power transfer.
Coil dimensions and loss values are simplified approximations of real products, for illustration.
Snow Formation Lab is an interactive simulator that follows one snowflake from rising air to the ground in four stages.
Stage 1 ยท Rising Air
- Set surface temperature, dew point, environmental lapse rate and lift height, and watch an air parcel rise and turn into cloud.
- Below the cloud base the parcel cools at the dry adiabatic rate (9.8 ยฐC/km); inside the cloud it cools at the moist adiabatic rate, computed from the full formula.
- The scene marks the cloud base, 0 ยฐC, โ10 ยฐC (ice nuclei become active), the dendritic growth zone (โ12 to โ18 ยฐC) and โ38 ยฐC (droplets freeze on their own).
- Based on cloud-top temperature, the cloud is classed as warm, supercooled or mixed-phase (snow-producing).
- Presets: winter front, summer storm, dry day.
Stage 2 ยท Ice vs Droplets (Bergeron process)
- A microscope view shows vapor moving from supercooled droplets onto ice crystals. The droplets shrink, and the crystals grow until they are heavy enough to fall.
- A chart plots saturation vapor pressure over water and over ice, and marks where the gap between them peaks, near โ11.8 ยฐC.
- You can seed the cloud by clicking or with silver iodide (AgI). Below โ38 ยฐC every droplet freezes spontaneously.
Stage 3 ยท Crystal Growth
- Click a temperature and supersaturation on the Nakaya diagram and that crystal grows live.
- Plate crystals grow on Reiterโs (2005) hexagonal diffusion model. As conditions change they progress from hexagonal plates to sectored plates, broad-branched stars, stellar dendrites and fern-like dendrites, and you can see vapor being used up around the crystal.
- Needles and columns, including hollow columns, are drawn as 3D prisms.
- Presets: dendrite, plate, needle, sector, column, fern.
Stage 4 ยท The Fall
- Drag points on the temperature profile from the 3 km cloud base down to the ground. Humidity sets the wet-bulb temperature, which decides whether flakes melt or refreeze.
- The ground result is classified as snow, wet snow, sleet (ice pellets), freezing rain or rain, and shown as accumulated snow, icicles or puddles.
- Each of the five presets (snow, rain, sleet, freezing rain, and snow at +2 ยฐC in dry air) gives its expected result 100% of the time.
Verified: all four stages ran in a headless browser with no script errors and no horizontal scroll at phone width.
Limitations
- Crystal shapes come from mapping Reiter-model parameters onto regions of the Nakaya diagram, not from an empirical growth formula.
- Melting and refreezing in the fall stage are simplified for teaching.
- Rounding in the step-by-step calculation can make crystals slightly asymmetric.
SHA ํด์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ๋ฌธ์ ํด์๋ฌธ์ผ๋ก ๋ณํํ๋ ๊ณผ์ ์ ์๊ฐํํด์ ๋ณด์ฌ์ฃผ๋ ๊ต์ก ์๋ฃ์ ๋๋ค.
๊ตฌ์ฑ (7๋จ๊ณ)
- ํจ๋ฉ๊ณผ ๋ธ๋ก ๋ถํ : ๋ฉ์์ง, 0x80, 0 ์ฑ์, 64๋นํธ ๊ธธ์ด๋ฅผ ์์ผ๋ก ๊ตฌ๋ถํด 512๋นํธ ๋ธ๋ก ์์ ๋ณด์ฌ์ค๋๋ค. ๋ธ๋ก์ด ์ฌ๋ฌ ๊ฐ๋ฉด ์นฉ์ ๋๋ฌ ๋ธ๋ก์ ๊ณ ๋ฆ ๋๋ค.
- ์์ถ ํจ์ ์งํ: 64๋ผ์ด๋์ ๋ง์ง๋ง ํฉ์ฐ ๋จ๊ณ๋ฅผ ํ์๋ผ์ธ์ผ๋ก ๋ณด์ฌ์ค๋๋ค. ์ฌ์/์ด์ /๋ค์ ๋ฒํผ์ด๋ โ/โ, Space๋ก ์ด๋ํฉ๋๋ค.
- ์์ ๋ณ์ aโh: ๋ผ์ด๋ ์ ํ ๊ฐ์ ๋ณด์ฌ์ค๋๋ค. ์๋ก ๊ณ์ฐ๋๋ a์ e๋ฅผ ๊ฐ์กฐํ๊ณ , ฮฃ1, Ch, K, W, T1, ฮฃ0, Maj, T2 ๊ณ์ฐ์์ ์ค์ ๊ฐ๊ณผ ํจ๊ป ํ์ํฉ๋๋ค.
- ๋ฉ์์ง ์ค์ผ์ค: WโโWโโ ํ์์ ํ์ฌ ์๋์ ๊ทธ ์๋๊ฐ ์์กดํ๋ 4๊ฐ ์๋(ฯ0, ฯ1 ๊ณ์ฐ)๋ฅผ ๊ฐ์กฐํฉ๋๋ค.
- ๋นํธ ๋จ์ ๋ ผ๋ฆฌ: Ch(e์ ๋นํธ๋ก f/g ์ ํ), Maj(๋ค์๊ฒฐ), ฮฃ1(ํ์ ํ XOR)์ 32๋นํธ ๋จ์๋ก ์๊ฐํํฉ๋๋ค.
- ๋์ฌํ ํจ๊ณผ: ์ ๋ ฅ 1๋นํธ๋ฅผ ๋ฐ๊พผ ๊ฒฝ์ฐ์ ๋น๊ตํด, ๋ผ์ด๋๋ณ๋ก aโh์์ ๋ฌ๋ผ์ง ๋นํธ ์๋ฅผ ๊ทธ๋ํ๋ก ๋ณด์ฌ์ค๋๋ค. ์ฝ 128๋นํธ๋ก ์๋ ดํฉ๋๋ค.
- ํด์๊ฐ: ์ต์ข ๋ค์ด์ ์คํธ์ 1๋นํธ ๋ณ๊ฒฝ ์์ ๋ค์ด์ ์คํธ๋ฅผ ๋๋ํ ๋๊ณ , ๋ฌ๋ผ์ง ๊ธ์๋ฅผ ๊ฐ์กฐํฉ๋๋ค. ๋ณต์ฌ ๋ฒํผ์ด ์์ต๋๋ค.
์ ๋ ฅ๊ณผ ์์
- ํ ์คํธ(UTF-8) ๋๋ HEX๋ก ์ ๋ ฅํ๊ณ , SHA-256๊ณผ SHA-224 ์ค ์ ํํ ์ ์์ต๋๋ค.
- ์์ : โabcโ, ๋น ๋ฌธ์์ด, ํ๊ธ ๋ฌธ์ฅ, 2๋ธ๋ก ์์ , HEX ๋ฐ์ดํธ ์ง์ ์ ๋ ฅ.
๊ฒ์ฆ: Node ํ์ค crypto ๊ฒฐ๊ณผ์ 316๊ฐ ์ฌ๋ก(๋ฌด์์ ์ ๋ ฅ 300๊ฐ ํฌํจ)๊ฐ ๋ชจ๋ ์ผ์นํ๋ ๊ฒ์ ํ์ธํ์ต๋๋ค. ํ์ด์ง์์๋ ๋ธ๋ผ์ฐ์ WebCrypto ๊ฒฐ๊ณผ์ ๋น๊ตํด ์ผ์น ๋ฐฐ์ง๋ฅผ ํ์ํฉ๋๋ค.
AES ์ํธ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ๋ฌธ์ ์ํธ๋ฌธ์ผ๋ก ๋ณํํ๋ ๊ณผ์ ์ ์๊ฐํํด์ ๋ณด์ฌ์ฃผ๋ ์ธํฐ๋ํฐ๋ธ ์๋ฎฌ๋ ์ดํฐ ์ ๋๋ค.
๊ตฌ์ฑ
- ๋ผ์ด๋ ํ์๋ผ์ธ: ์ด๊ธฐ AddRoundKey๋ถํฐ ๋ง์ง๋ง ๋ผ์ด๋๊น์ง ๋ชจ๋ ์ฐ์ฐ์ ์นธ์ผ๋ก ํ์ํฉ๋๋ค. AES-128 ๊ธฐ์ค 40๋จ๊ณ์ด๊ณ , ํด๋ฆญํ๊ฑฐ๋ ์ฌ์/์ด์ /๋ค์ ๋ฒํผ(๋๋ โ/โ, Space)์ผ๋ก ์ด๋ํฉ๋๋ค.
- ์ด์ ์ํ โ ์ฐ์ฐ โ ์ดํ ์ํ: 4ร4 ์ํ ํ๋ ฌ์์ ์นธ์ ํด๋ฆญํ๋ฉด ๊ทธ ๋ฐ์ดํธ์ ๊ณ์ฐ ๊ณผ์ ์ด ๋์ต๋๋ค.
- SubBytes: 16ร16 S-box์์ ํยท์ด๋ก ๊ฐ์ ์ฐพ๋ ๊ณผ์ ์ ๊ฐ์กฐํฉ๋๋ค.
- ShiftRows: ํ ๋๋ฆฌ ์์ผ๋ก ๋ฐ์ดํธ๊ฐ ์๋ ์ํ๋ ์ด์ ํ์ํด ์ด๋์ ๋ณด์ฌ์ค๋๋ค.
- MixColumns: ๊ณ ์ ํ๋ ฌ ร ์ด ๋ฒกํฐ์ GF(2โธ) ๊ณฑ์ ๊ณผ XOR ๊ณ์ฐ์์ ๋ณด์ฌ์ค๋๋ค.
- AddRoundKey: ๋ผ์ด๋ ํค์์ XOR์ ๋นํธ ๋จ์๋ก ๋ณด์ฌ์ค๋๋ค.
- ํค ํ์ฅ: ์ ์ฒด ๋ผ์ด๋ ํค ๋ชฉ๋ก์์ ํ์ฌ ์ฌ์ฉํ๋ ํค๋ฅผ ๊ฐ์กฐํ๊ณ , RotWord, SubWord, Rcon ๊ณ์ฐ ๊ณผ์ ์ ๋ณด์ฌ์ค๋๋ค.
- ๋์ฌํ ํจ๊ณผ: ํ๋ฌธ 1๋นํธ๋ฅผ ๋ค์ง์ ๋ธ๋ก๊ณผ ๋น๊ตํด, ๋จ๊ณ๋ณ๋ก ๋ฌ๋ผ์ง ๋นํธ ์๋ฅผ ๊ทธ๋ํ๋ก ๋ณด์ฌ์ค๋๋ค. ๋ช ๋ผ์ด๋ ๋ง์ ์ฝ 64๋นํธ๋ก ์๋ ดํฉ๋๋ค. ์ํ ํ๋ ฌ์ ๋นจ๊ฐ ์ ์ ๋ ๋ธ๋ก์์ ๊ฐ์ด ๋ค๋ฅธ ๋ฐ์ดํธ์ ๋๋ค.
- ๊ฒฐ๊ณผ: ์ํธ๋ฌธ์ HEX์ Base64๋ก ๋ณด์ฌ์ฃผ๊ณ ๋ณต์ฌํ ์ ์์ต๋๋ค.
์ ๋ ฅ
- ํ๋ฌธ๊ณผ ํค๋ ํ ์คํธ ๋๋ HEX๋ก ์ ๋ ฅํฉ๋๋ค. ํ ์คํธ๋ UTF-8๋ก ๋ณํ๋๋ฉฐ, ํ๋ฌธ์ด 16๋ฐ์ดํธ๋ณด๋ค ์งง์ผ๋ฉด PKCS#7 ํจ๋ฉ์ ๋ถ์ ๋๋ค.
- ํค ๊ธธ์ด๋ 128, 192, 256๋นํธ ์ค ์ ํํ ์ ์์ต๋๋ค.
- ์์ ๋ก '๋ด ํ ์คํธ'์ FIPS-197 ๋ถ๋ก B, C.1, C.2, C.3์ด ๋ค์ด ์์ต๋๋ค.
FIPS-197 ์ํ ๋ฒกํฐ 4์ข (AES-128, 192, 256)์ผ๋ก ๊ฒฐ๊ณผ๊ฐ ์ ํํ ์ผ์นํ๋ ๊ฒ์ ํ์ธํ๊ณ , ํด๋น ์์ ๋ฅผ ์ ํํ๋ฉด ํ๋ฉด์ "๊ธฐ๋๊ฐ๊ณผ ์ผ์น โ" ๋ฐฐ์ง๊ฐ ํ์๋ฉ๋๋ค.
AES ํค ๊ณต๊ฐ ํ์ด์ง๋ฅผ ๋ง๋ค์์ต๋๋ค. ํค ๊ธธ์ด(128/192/256), ์ฅ๋น ์๋, ์ฅ๋น ๋์, ์์(๊ทธ๋ก๋ฒ) ๊ฐ์ ์ ๋ฐ๊พธ๋ฉด ์๋ ํญ๋ชฉ์ด ๋ฐ๋ก ๋ค์ ๊ณ์ฐ๋ฉ๋๋ค.
- ํค ๊ฐ์: ๊ณผํ์ ํ๊ธฐ, ํ๊ตญ์ด ๋จ์ ์ฝ๊ธฐ(์: 2ยนยฒโธ โ 340๊ฐ), 2โฟ์ ์ ์ฒด ์๋ฆฟ์
- ์๊ฐ: ํ๊ท ยท์ต์ ์์ ์๊ฐ๊ณผ ์ฐ์ฃผ ๋์ด ๋๋น ๋ฐฐ์, ๊ทธ๋ฆฌ๊ณ ์์ /์ํ ํ์
- ํ์ ๋น์จ: 1์ด, 1์ผ, 1๋ , ์ฐ์ฃผ ๋์ด ๋์ ํ์ธํ ์ ์๋ ๋น์จ์ ๋ก๊ทธ ๋ง๋๋ก ํ์
- ๊ท๋ชจ ๋น๊ต: DES, ๋ชจ๋์, ๋ณ, ์์ ์์ ๋น๊ตํ๋ ๋ก๊ทธ ์ฐจํธ
- ๊ฐ์ง ํ๋ณด ํค ์: ์๊ณ ์๋ ํ๋ฌธยท์ํธ๋ฌธ ๋ธ๋ก ์์ ๋ฐ๋ผ ํจ๊ป ๊ฑธ๋ฌ์ง๋ ํค์ ๊ธฐ๋๊ฐ. ์๋ฅผ ๋ค์ด AES-256์ ๋ธ๋ก 1๊ฐ๋ง ์๋ฉด ์ผ์นํ๋ ํค๊ฐ ์ฝ 2ยนยฒโธ๊ฐ ๋จ์ต๋๋ค.
Git์ ํต์ฌ ๊ฐ๋ (์์ ๋๋ ํฐ๋ฆฌ โ ์คํ ์ด์ง โ ์ปค๋ฐ, ๋ธ๋์น, ๋ณํฉ, ์๊ฒฉ ์ ์ฅ์)์ ๊ทธ๋ฆผ์ผ๋ก ์ค๋ช ํ๊ณ , ์ง์ ๋ช ๋ น์ด๋ฅผ ๋๋ฌ๋ณด๋ฉฐ ๋ฐ๋ผ ํ ์ ์๋ ์๋ฎฌ๋ ์ดํฐ๊ฐ ๋ค์ด๊ฐ ํ๊ธ ํ์ด์ง์ ๋๋ค.
Cisco ๋ผ์ฐํฐ ๊ธฐ์ด ์ค์ ๊ฐ์ด๋๋ฅผ ๋ํํ CLI ํฐ๋ฏธ๋ ์๋ฎฌ๋ ์ดํฐ๋ก ์์ฑํ ํ์ต ์๋ฃ์ ๋๋ค.
TCP vs UDP ๋ํํ ์๋ฎฌ๋ ์ดํฐ
- TCP 3-Way Handshake (SYN, SYN-ACK, ACK ๋ฐ Sequence/Ack ๋ฒํธ ๋ณํ) & 4-Way Teardown (FIN, ACK) ๋จ๊ณ๋ณ ํจํท ์๋ฎฌ๋ ์ด์
- TCP ์ ๋ขฐ์ฑ ๋ฉ์ปค๋์ฆ (ํ๋ฆ ์ ์ด, ์ฌ๋ผ์ด๋ฉ ์๋์ฐ, ํผ์ก ์ ์ด) ์ค๋ช
- TCP vs UDP ํค๋ ๊ตฌ์กฐ ๋น๊ต (20๋ฐ์ดํธ vs 8๋ฐ์ดํธ) ๋ฐ ์ฐ๊ฒฐํ/๋น์ฐ๊ฒฐํ ํน์ง ๋ถ์
ARP (์ฃผ์ ๊ฒฐ์ ํ๋กํ ์ฝ) ํ๋ฆ ์๋ฎฌ๋ ์ดํฐ
- ๋ก์ปฌ ๋คํธ์ํฌ์์ IP๋ ์์ง๋ง MAC์ ๋ชจ๋ฅผ ๋ ์ผ์ด๋๋ ์ ์ฒด ๊ณผ์ ์๋ฎฌ๋ ์ด์
- ARP Cache ํ์ธ โ Broadcast Request(FF:FF:FF:FF:FF:FF) โ ์ค์์น ํ๋ฌ๋ฉ โ Unicast Reply โ ํธ์คํธ ARP ์บ์ ํ ์ด๋ธ ์ ๋ฐ์ดํธ ๊ณผ์ ์ ๋ํํ ๊ทธ๋ํฝ์ผ๋ก ๊ตฌํ
DNS (๋๋ฉ์ธ ๋ค์ ์์คํ ) ์ฌ๊ท/๋ฐ๋ณต ์กฐํ ์๋ฎฌ๋ ์ดํฐ
- ์น์ฌ์ดํธ ์ฃผ์ ์
๋ ฅ ์ ๋ธ๋ผ์ฐ์ /๋ก์ปฌ ์บ์ โ ๋ฆฌ์ปฌ์๋ธ DNS(Resolver) โ Root Server(
.) โ TLD Server(.com) โ Authoritative Server(example.com) ๋ก ์ด์ด์ง๋ ๋ฐ๋ณต ์กฐํ ํ๋ฆ ์๋ฎฌ๋ ์ด์ - ์ฃผ์ DNS ๋ ์ฝ๋ ์ข ๋ฅ (A, AAAA, CNAME, MX, NS, TXT) ์ ๋ฐ ์์ฝ
ํตํฉ ์๋ํฌ์๋(End-to-End) ํจํท ์๋ฎฌ๋ ์ดํฐ
- "์น ๋ธ๋ผ์ฐ์ ์
[https://www.google.com](https://www.google.com)์ ์ ๋ ฅํ๋ฉด ์ผ์ด๋๋ ์ผ" ์ ์ฒด ๊ณผ์ ์ [DNS ์กฐํ โ ARP ์์ฒญ โ TCP Handshake โ HTTP/HTTPS ์์ฒญ/์๋ต]์ ์ฌ์ธ์ ํจํท ํ๋ฆ ํ์๋ผ์ธ์ผ๋ก ์ฌ์/์ผ์์ ์ง/๋จ๊ณ๋ณ ํ์
ํ๋กํ ์ฝ ์ข ํฉ ํด์ฆ
- TCP/UDP, ARP, DNS์ ๊ด๋ จ๋ ๋ฌดํ ํด์ฆ ํ์ด ๋ฐ ์ฆ์ ์ฑ์ /ํด์ค ์ ๊ณต
Planck Time โ Number Length Visualizer
An interactive visualization designed to make the extraordinarily small scale of Planck time easier to understand.
Planck time is approximately 5.39 ร 10โปโดโด seconds, which can be written in decimal form with 43 zeros before the significant digits 539.
Explore its numerical length, travel through nearly 44 orders of magnitude below one second, compare it with nanoseconds and attoseconds, and discover its relationship to the Planck length and the speed of light.
The visualization uses logarithmic scales and animated comparisons to provide an intuitive perspective on one of the smallest meaningful time scales used in fundamental physics.
Interactive microscopic defense & immune-response visualizer
An interactive educational visualizer that explains how an electric fan works.
Explore how electrical energy powers the motor, how rotating blades transfer momentum to the air, and how airflow creates a cooling effect.
Switch between Airflow, Electric Motor, Blade Pitch, Pressure & Wake, and Cooling Effect to understand the physics behind an everyday electric fan.
DNA Replication โ 3D Visualizer
An interactive 3D educational simulator that visualizes how DNA copies itself before cell division.
Explore the replication process from DNA unwinding and RNA priming to strand synthesis and fragment joining, while observing the roles of helicase, primase, DNA polymerase, and ligase.
The simulator also demonstrates 5โฒ โ 3โฒ synthesis, leading and lagging strands, Okazaki fragments, and semiconservative replication through an interactive 3D model.
Element 119 โ 3D Visualizer
An interactive 3D educational simulator that explains why scientists have not yet created Element 119.
Explore the major challenges of superheavy-element synthesis, including strong nuclear repulsion, extremely rare fusion events, unstable compound nuclei, nuclear fission, and difficult detection.
Simulate nuclear collisions and follow the process from Ion Beam โ Collision โ Fusion โ Cooling โ Survival โ Detection.
Designed to make the physics behind superheavy elements easy to understand through interactive visualization.