Hill Cipher {{ lang === 'id' ? 'oleh' : 'by' }} Manisha Arie

{{ t.portalSubtitle }}

{{ mode === 'encrypt' ? t.plaintext : t.ciphertext }}

{{ t.result }}

{{ t.keyNotInvertible }} {{ t.typePreviewPlaceholder }} {{ staticOutput }} {{ t.processingResult }}

{{ t.selectMatrixSize }}

{{ t.selectMatrixSizeDesc }}

{{ t.keyMatrixSetup }}

{{ t.keyMatrixSetupDesc.replace('{val}', matrixSize) }}

{{ isInvertible ? t.invertibleKey : t.notInvertible }}

{{ t.matrixEditorDesc }}

{{ isInvertible && calculatedInverse ? calculatedInverse[rIdx][cIdx] : '?' }}

{{ t.inverseMatrixDesc }}

{{ isInvertible ? t.keyReady : t.keyNotReady }}

{{ t.detWarningTitle }}

{{ t.mathStatusTitle }}

{{ t.detLabel }} {{ determinant }}
{{ t.gcdLabel }} 1
{{ t.modularInverseLabel }} {{ modularInverse }}

{{ t.simTraceTitle }}

{{ t.simTraceDesc }}

{{ t.activeBlocks.replace('{val}', totalBlocks) }} {{ t.blockProgress.replace('{current}', activeBlockIndex + 1).replace('{total}', totalBlocks) }} {{ mode.toUpperCase() }}
{{ t.vectorMultiplicationLayout }}
{{ mode === 'encrypt' ? t.keyMatrixLabel : t.inverseMatrixLabel }}
{{ val }}
×
{{ t.inputVectorLabel }}
{{ char }} {{ currentInputVector[idx] }}
=
{{ t.outputVectorLabel }}
{{ activeSubStep >= 4 ? currentOutputBlockChars[idx] : '_' }} {{ activeSubStep >= 3 ? currentOutputVector[idx] : '?' }}
{{ t.calcTraceTitle }}
{{ t.rowMultiplication.replace('{val}', idx + 1) }} {{ t.calculating }} {{ t.computed }}
Y{{ idx + 1 }} = ({{ val }} × {{ currentInputVector[cIdx] }}) + = {{ getProductSumTerm(idx) }} = {{ getProductSum(idx) }}
{{ t.playbackCenter }} {{ t.playbackSpeed.replace('{val}', animationSpeed) }}
{{ t.readBlockLabel }} {{ t.mapNumLabel }} {{ t.matrixMultLabel }} {{ t.modulo26Label }} {{ t.outCharLabel }}
{{ t.speedSliderLabel }} {{ animationSpeed }}ms

{{ t.accumulatedStreamResult }}

{{ t.realtimeAssembly }}

{{ finalOutput }} {{ t.pendingAnimation }}

{{ t.howHillWorks }}

{{ t.hillWorksDesc }}

{{ t.encEquationTitle }}

C = (K × P) mod 26

{{ t.encEquationDesc }}

{{ t.decEquationTitle }}

P = (K-1 × C) mod 26

{{ t.decEquationDesc }}

{{ t.invertibilityTitle }}

{{ t.invertibilityDesc }}

{{ t.referenceChartTitle }}

{{ String.fromCharCode(64 + n) }}
{{ n - 1 }}

{{ t.cryptanalysisLabTitle }}

{{ t.cryptanalysisLabDesc.replace('{method}', 'hill' + matrixSize + 'x' + matrixSize).replace('{cipher}', staticOutput.substring(0, 10) + (staticOutput.length > 10 ? '...' : '')).replace('{plain}', paddedInput.substring(0, 10) + (paddedInput.length > 10 ? '...' : '')) }}

{{ t.cryptanalysisLabError }}

{{ t.hackAttackButton }}