Skip to content

Commit

Permalink
update TOC generation to oneliner, remove leading raw 123,abc)
Browse files Browse the repository at this point in the history
  • Loading branch information
simlei committed Aug 13, 2020
1 parent af77301 commit ee60f5a
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 36 deletions.
18 changes: 11 additions & 7 deletions org.jcryptool.visual.rsa/nl/de/help/content/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,22 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RSA-Verschlüsselung</title>
<script src="${JCTJS_HOST}/javascript/jquery.js"></script>
<script>TOC_generate_default("h2, h3")</script>
</head>

<body>
<h1>RSA-Kryptosystem (verschlüsseln, entschlüsseln, signieren und verifizieren)</h1>
<div class="TOC"></div>
<hr />

<p>Diese Hilfe beschreibt zwei Punkte:<br/>
1) <a href="#term">Das RSA-Schema</a><br/>
2) <a href="#plugin">Benutzerinstruktionen für diese Visualisierung</a></p>
<a href="#term">Das RSA-Schema</a><br/>
<a href="#plugin">Benutzerinstruktionen für diese Visualisierung</a></p>

<p> <b>Bitte beachten</b> Sie, dass diese Visualisierung die Operationen auf einzelnen Zeichen durchführt. In der Praxis werden die Operationen auf Zeichenblöcken oder der gesamten Nachricht durchgeführt. RSA wird normalerweise nicht verwendet, um große Datenmengen zu verschlüsseln, sondern um einen Sessionkey zu verschlüsseln (mit diesem werden dann die Daten mit einem symmetrischen Verfahren wie AES oder 3DES verschlüsselt) oder um einen Hashwert der Nachricht zu signieren.</p>

<h2 id="term">1) Das RSA-Schema</h2>
<h2 id="term">Das RSA-Schema</h2>

<p> Die bekannteste asymmetrische Verschlüsselung, die RSA-Verschlüsselung, wurde 1977 von Ronald Rivest, Adi Shamir und Leonard Adleman entwickelt. Die privaten und öffentlichen Schlüssel werden mit Hilfe von zwei zufälligen, großen Primzahlen, p und q, konstruiert, die vom Nutzer gewählt werden.</p>

Expand All @@ -32,7 +36,7 @@ <h2 id="term">1) Das RSA-Schema</h2>
<p>Die Sicherheit des RSA Schemas basiert auf zwei mathematischen Problemen: Erstens ist es schwierig, für große Zahlen eine Wurzel modulo N zu berechnen (RSA-Problem). Zweitens ist die Faktorisierung von N = p*q schwierig, wenn die Faktoren ausreichend groß gewählt werden (RSA-Schlüsselproblem).</p>


<h3 id="KeyGen">a) RSA-Schlüsselgenerierung</h3>
<h3 id="KeyGen">RSA-Schlüsselgenerierung</h3>
<p> Eine besondere Charakteristik von Public-Key-Kryptosystemen wie RSA ist, dass umfangreiche Berechnungen nötig sind, um einen Schlüssel zu generieren. Erst danach kann die Ver- und Entschlüsselung durchgeführt werden.</p>

<p>Als erstes werden die RSA-Parameter p, q, N und die Eulersche Zahl phi(N) mit Hilfe von zwei zufälligen Primzahlen p und q berechnet. Der sogenannte RSA-Modulus N wird als Produkt von p und q berechnet, N = p*q. Die Eulersche Zahl phi(N) ergibt sich als Produkt (p-1)*(q-1). Im Standardfall werden hiernach p und q gelöscht (somit kennt sie auch der Schlüsselerzeuger nicht mehr und braucht sie auch nicht geheim zu halten).</p>
Expand All @@ -43,19 +47,19 @@ <h3 id="KeyGen">a) RSA-Schlüsselgenerierung</h3>

<p>Nach der Schlüsselerzeugung können N und e öffentlich gemacht werden. Anschließend kann jeder eine Nachricht für den Besitzer des zugehörigen privaten Schlüssels d verschlüsseln oder eine digitale Signatur überprüfen &nbsp;&ndash; einzig und allein durch die Verwendung des öffentlichen Schlüssels. </p>

<h3 id="Enc">b) RSA-Ver- / Entschlüsselung</h3>
<h3 id="Enc">RSA-Ver- / Entschlüsselung</h3>
<p> Um Daten mit RSA zu <b>verschlüsseln</b>, wird das Chiffrat mit Hilfe des öffentlichen Schlüssels e des Empfängers und des Klartexts berechnet. Die Verschlüsselungsfunktion ist c = m^e mod N. Das heißt, dass jeder eine Nachricht mit Hilfe des öffentlichen Schlüssels verschlüsseln kann. Allerdings kann nur der Besitzer des zugehörigen privaten Schlüssels d die Nachricht wieder entschlüsseln.</p>

<p> Um ein Chiffrat mit RSA zu <b>entschlüsseln</b>, muss der private Schlüssel d bekannt sein. Die Entschlüsselungsfunktion, c^d = (m^e)^d = m^(e*d) = m mod N, berechnet den Klartext m.</p>


<h3 id="Sig">c) RSA-Signatur / Verifizierung</h3>
<h3 id="Sig">RSA-Signatur / Verifizierung</h3>
<p> Um eine Nachricht m mit RSA zu <b>signieren</b>, muss der private Schlüssel d bekannt sein. Die Signaturfunktion wird auf m oder auf einen Hashwert von m angewendet: m^d = sign(m) oder (hash(m))^d = sign(hash(m)). Dies erzeugt die Signatur.</p>

<p> Um eine RSA-Signatur zu <b>verifizieren</b>, wird der öffentliche Schlüssel e des Signierers wie folgt verwendet: (sign(m))^e = m' oder (sign(hash(m)))^e = hash(m)'. Das Ergebnis der RSA-Exponentiation ist m' oder hash(m)' und muss mit der Nachricht m oder dem Hashwert der Nachricht hash(m), berechnet aus dem erhaltenen (und entschlüsselten) Dokument, verglichen werden. Wenn beide Werte identisch sind, wird dies als Beweis gesehen, dass der echte Besitzer des zugehörigen privaten Schlüssels d das Dokument signiert hat.</p>


<h2 id="plugin">2) Benutzerinstruktionen für diese Visualisierung</h2>
<h2 id="plugin">Benutzerinstruktionen für diese Visualisierung</h2>

<p> Wenn die RSA-Visualisierung gestartet wird, kann man die gewünschte Operation (verschlüsseln, entschlüsseln, signieren oder verifizieren) auszuwählen &nbsp;&ndash; durch die Wahl des entsprechenden Tabs.</p>

Expand Down
39 changes: 10 additions & 29 deletions org.jcryptool.visual.rsa/nl/en/help/content/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,31 +6,12 @@
<title>RSA encryption</title>
<script id="MathJax-script" async src="${JCTJS_HOST}/javascript/MathJax-master/es5/tex-mml-svg.js"></script>
<script src="${JCTJS_HOST}/javascript/jquery.js"></script>

<!-- TOCbot: Table of Content generation, see https://github.com/tscanlin/tocbot -->
<script src="${JCTJS_HOST}/javascript/tocbot-4.11.2/dist/tocbot.min.js"></script>
<script>
// many more options available, see TOCbot documentation
$(document).ready(function() {
tocbot.init({
tocSelector: '.TOC', // Where to render the table of contents.
contentSelector: '.content', // Where to grab the headings to build the table of contents.
headingSelector: 'h2, h3', // Which headings to grab inside of the contentSelector element.
hasInnerContainers: true, // For headings inside relative or absolute positioned containers within content.
listClass: 'toc-list',
listItemClass: 'toc-list-item',
isCollapsedClass: 'is-collapsed',
collapsibleClass: 'is-collapsible',
collapseDepth: 0,
});
})
</script>
<script>TOC_generate_default("h2, h3")</script>

<!-- TODO: stop! before copying this, integrate this into the central stylesheet (left to the reader as exercise, let's say')-->
<style>
<!-- <style>
.toc-list-item {list-style-type: circle;}
</style>

-->
</head>

<body>
Expand All @@ -48,12 +29,12 @@ <h1>RSA Cryptosystem (Encrypt, Decrypt, Sign, and Verify)</h1>
</p> -->

<p>This help file describes two things:<br/>
1) <a href="#term">The RSA Scheme</a><br/>
2) <a href="#plugin">Handling Instructions: How to Use this Visualization</a></p>
<a href="#term">The RSA Scheme</a><br/>
<a href="#plugin">Handling Instructions: How to Use this Visualization</a></p>

<p> <b>Please note</b> that in this visualization the operations are performed on each single character. In practice, the operations are performed on blocks or even the whole message. Normally, RSA is not used to encrypt large amounts of data. Mostly, it is used to encrypt a session key, which later is used to encrypt the data with a symmetric cryptosystem (e.g. AES or 3DES), or to sign the hash value of a message. </p>

<h2 id="term">1) The RSA Scheme</h2>
<h2 id="term">The RSA Scheme</h2>

<p> The most well-known asymmetric cryptosystem, RSA, was developed in 1977 by Ronald Rivest, Adi Shamir, and Leonard Adleman. The private and public keys are constructed using two randomly selected big prime numbers p and q which the user can specify himself</p>

Expand All @@ -68,7 +49,7 @@ <h2 id="term">1) The RSA Scheme</h2>
<p>The security of the RSA scheme is based on two mathematical problems. First, it is hard to extract a root modulo N (RSA problem). Second, factorization of a number N = p*q is hard, if the factors are sufficiently large (RSA key problem).<br/></p>


<h3 id="KeyGen">a) RSA Key Generation</h3>
<h3 id="KeyGen">RSA Key Generation</h3>

<p> A special characteristic of public key cryptosystems like RSA is that extensive calculations are necessary to generate the key before en-/decryption or signing can take place.</p>

Expand All @@ -81,19 +62,19 @@ <h3 id="KeyGen">a) RSA Key Generation</h3>
<p>After the RSA key generation, N and e can be published. Then, anyone could encrypt a message for the owner of the according secret RSA key d or check a digital signature &nbsp;&ndash; using only the public key. </p>


<h3 id="Enc">b) RSA Encryption / Decryption</h3>
<h3 id="Enc">RSA Encryption / Decryption</h3>
<p> To <b>encrypt</b> data with the RSA scheme, the ciphertext is calculated using the public key e of the recipient and the plaintext. The encryption function is c = m^e mod N. This means that anyone can encrypt a message using the public key. But only the owner of the associated secret key d can then decrypt the message again. </p>

<p> To <b>decrypt</b> a ciphertext with the RSA scheme, one needs to know the private key d. The decryption function, c^d = (m^e)^d = m^(e*d) = m mod N, yields the plaintext m. </p>


<h3 id="Sig">c) RSA Signing / Verifying</h3>
<h3 id="Sig">RSA Signing / Verifying</h3>
<p> To <b>sign</b> a message m with the RSA scheme, you need to know the private key d. The signing function is applied to m or to a hash value of m: m^d = sign(m) or (hash(m))^d = sign(hash(m)). This yields the signature.</p>

<p> You can <b>verify</b> a digital RSA signature using the signer's public key e by computing (sign(m))^e = m' or (sign(hash(m)))^e = hash(m)'. The result of the RSA exponentiation is m' or hash(m)' which has to be compared with the message m or the hash of the message hash(m) computed from the received (and decrypted) document. If both hash values are identical this is considered as a proof that the real owner of the corresponding private RSA key has signed the document.</p>


<h2 id="plugin">2) Handling Instructions: How to Use this Visualization</h2>
<h2 id="plugin">Handling Instructions: How to Use this Visualization</h2>

<p> When the RSA visualization is started, you can select the desired operation, encrypt, decrypt, sign, or verify &nbsp;&ndash; by choosing the corresponding tab.</p>

Expand Down

0 comments on commit ee60f5a

Please sign in to comment.