CINXE.COM

Blowfish – Wikipedia

<!DOCTYPE html> <html class="client-nojs" lang="de" dir="ltr"> <head> <meta charset="UTF-8"> <title>Blowfish – Wikipedia</title> <script>(function(){var className="client-js";var cookie=document.cookie.match(/(?:^|; )dewikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":[",\t.",".\t,"],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],"wgRequestId":"783a65de-ddd3-473b-9bc4-98319f9ad7d7","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Blowfish","wgTitle":"Blowfish","wgCurRevisionId":243926024,"wgRevisionId":243926024,"wgArticleId":159541,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Blockverschlüsselung"],"wgPageViewLanguage":"de","wgPageContentLanguage":"de","wgPageContentModel":"wikitext","wgRelevantPageName":"Blowfish","wgRelevantArticleId":159541,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":true,"wgFlaggedRevsParams":{"tags":{"accuracy":{"levels":1}}},"wgStableRevisionId":243926024,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"de","pageLanguageDir":"ltr","pageVariantFallbacks":"de"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":10000,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":true,"wgVector2022LanguageInHeader":false,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q815853","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false}; RLSTATE={"ext.gadget.citeRef":"ready","ext.gadget.defaultPlainlinks":"ready","ext.gadget.dewikiCommonHide":"ready","ext.gadget.dewikiCommonLayout":"ready","ext.gadget.dewikiCommonStyle":"ready","ext.gadget.NavFrame":"ready","ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.math.styles":"ready","ext.pygments":"ready","skins.vector.styles.legacy":"ready","ext.flaggedRevs.basic":"ready","mediawiki.codex.messagebox.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","codex-search-styles":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","site","mediawiki.page.ready","mediawiki.toc","skins.vector.legacy.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.flaggedRevs.advanced","ext.gadget.createNewSection","ext.gadget.WikiMiniAtlas","ext.gadget.OpenStreetMap","ext.gadget.CommonsDirekt","ext.gadget.donateLink","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.compactlinks","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=de&amp;modules=codex-search-styles%7Cext.cite.styles%7Cext.flaggedRevs.basic%7Cext.math.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cmediawiki.codex.messagebox.styles%7Cskins.vector.styles.legacy%7Cwikibase.client.init&amp;only=styles&amp;skin=vector"> <script async="" src="/w/load.php?lang=de&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=de&amp;modules=ext.gadget.NavFrame%2CciteRef%2CdefaultPlainlinks%2CdewikiCommonHide%2CdewikiCommonLayout%2CdewikiCommonStyle&amp;only=styles&amp;skin=vector"> <link rel="stylesheet" href="/w/load.php?lang=de&amp;modules=site.styles&amp;only=styles&amp;skin=vector"> <meta name="generator" content="MediaWiki 1.44.0-wmf.20"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/1/17/Blowfish_structure.svg/1200px-Blowfish_structure.svg.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="2914"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/1/17/Blowfish_structure.svg/800px-Blowfish_structure.svg.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="1943"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/1/17/Blowfish_structure.svg/640px-Blowfish_structure.svg.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="1554"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Blowfish – Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//de.m.wikipedia.org/wiki/Blowfish"> <link rel="alternate" type="application/x-wiki" title="Seite bearbeiten" href="/w/index.php?title=Blowfish&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (de)"> <link rel="EditURI" type="application/rsd+xml" href="//de.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://de.wikipedia.org/wiki/Blowfish"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de"> <link rel="alternate" type="application/atom+xml" title="Atom-Feed für „Wikipedia“" href="/w/index.php?title=Spezial:Letzte_%C3%84nderungen&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="login.wikimedia.org"> </head> <body class="skin-vector-legacy mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Blowfish rootpage-Blowfish skin-vector action-view"><div id="mw-page-base" class="noprint"></div> <div id="mw-head-base" class="noprint"></div> <div id="content" class="mw-body" role="main"> <a id="top"></a> <div id="siteNotice"><!-- CentralNotice --></div> <div class="mw-indicators"> </div> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Blowfish</span></h1> <div id="bodyContent" class="vector-body"> <div id="siteSub" class="noprint">aus Wikipedia, der freien Enzyklopädie</div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="contentSub2"></div> <div id="jump-to-nav"></div> <a class="mw-jump-link" href="#mw-head">Zur Navigation springen</a> <a class="mw-jump-link" href="#searchInput">Zur Suche springen</a> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><table class="float-right infobox wikitable" style="font-size:90%; margin-top:0; width:23em;"> <tbody><tr> <th colspan="2" class="hintergrundfarbe6" style="font-size:105%;">Blowfish </th></tr> <tr> <td colspan="2" style="text-align:center;"><figure class="mw-halign-center" typeof="mw:File"><a href="/wiki/Datei:Blowfish_structure.svg" class="mw-file-description" title="Blowfish"><img alt="Blowfish" src="//upload.wikimedia.org/wikipedia/commons/thumb/1/17/Blowfish_structure.svg/langde-82px-Blowfish_structure.svg.png" decoding="async" width="82" height="200" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/1/17/Blowfish_structure.svg/langde-123px-Blowfish_structure.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/1/17/Blowfish_structure.svg/langde-164px-Blowfish_structure.svg.png 2x" data-file-width="210" data-file-height="510" /></a><figcaption>Blowfish</figcaption></figure><small>Feistelnetzwerk von Blowfish</small> </td></tr> <tr> <td>Entwickler </td> <td><a href="/wiki/Bruce_Schneier" title="Bruce Schneier">Bruce Schneier</a> </td></tr> <tr> <td>Veröffentlicht </td> <td>1993 </td></tr> <tr> <td>Schlüssellänge </td> <td>32–448 Bit (Standard 128 Bit) </td></tr> <tr> <td>Blockgröße </td> <td>64 Bit </td></tr> <tr> <td>Struktur </td> <td><a href="/wiki/Feistelchiffre" title="Feistelchiffre">Feistelchiffre</a> </td></tr> <tr> <td>Runden </td> <td>16 </td></tr> <tr> <th colspan="2" class="hintergrundfarbe6">Beste bekannte Kryptoanalyse </th></tr> <tr> <td colspan="2" style="text-align:center;"><div style="text-align:left"> <ul><li>vier Runden von Blowfish sind anfällig für eine <a href="/wiki/Differentielle_Kryptoanalyse" class="mw-redirect" title="Differentielle Kryptoanalyse">Differentielle Kryptoanalyse</a></li> <li>14 Runden sind, für eine Klasse von schwachen Schlüsseln, anfällig für eine <a href="/wiki/Zuf%C3%A4llige_Permutation" title="Zufällige Permutation">Pseudozufalls-Permutation</a></li></ul></div> </td></tr></tbody></table> <p><b>Blowfish</b> (<span style="font-style:normal;font-weight:normal"><a href="/wiki/Deutsche_Sprache" title="Deutsche Sprache">deutsch</a></span> <span lang="de-Latn"><a href="/wiki/Kugelfisch" class="mw-redirect" title="Kugelfisch">Kugelfisch</a></span>) ist ein symmetrischer <a href="/wiki/Blockverschl%C3%BCsselung" title="Blockverschlüsselung">Blockverschlüsselungsalgorithmus</a>, der 1993 von <a href="/wiki/Bruce_Schneier" title="Bruce Schneier">Bruce Schneier</a> entworfen und erstmals im April 1994 in <i><a href="/wiki/Dr._Dobb%E2%80%99s_Journal" title="Dr. Dobb’s Journal">Dr.&#160;Dobb’s Journal</a></i> publiziert wurde. Er wurde <a href="/wiki/Gemeinfreiheit" title="Gemeinfreiheit">gemeinfrei</a> veröffentlicht und nicht patentiert.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup> </p><p>Blowfish hat eine feste Blocklänge von 64&#160;<a href="/wiki/Bit" title="Bit">Bit</a>, basiert auf einem <a href="/wiki/Feistelnetzwerk" class="mw-redirect" title="Feistelnetzwerk">Feistelnetzwerk</a> und besitzt schlüsselabhängige <a href="/wiki/S-Box" title="S-Box">S-Boxen</a>. Die <a href="/wiki/Schl%C3%BCssell%C3%A4nge" title="Schlüssellänge">Schlüssellänge</a> kann 32&#160;Bit bis 448&#160;Bit betragen. Aus diesen Schlüsselbits werden vor Beginn der Ver- oder Entschlüsselung die so genannten Rundenschlüssel P<sub>1</sub> bis P<sub>18</sub> und die Einträge in den S-Boxen erzeugt, insgesamt 4168&#160;Byte. </p> <div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="de" dir="ltr"><h2 id="mw-toc-heading">Inhaltsverzeichnis</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#Funktionsweise"><span class="tocnumber">1</span> <span class="toctext">Funktionsweise</span></a> <ul> <li class="toclevel-2 tocsection-2"><a href="#Schlüsseleinteilung"><span class="tocnumber">1.1</span> <span class="toctext">Schlüsseleinteilung</span></a></li> </ul> </li> <li class="toclevel-1 tocsection-3"><a href="#Kryptoanalyse_und_Sicherheit"><span class="tocnumber">2</span> <span class="toctext">Kryptoanalyse und Sicherheit</span></a></li> <li class="toclevel-1 tocsection-4"><a href="#Beispiele"><span class="tocnumber">3</span> <span class="toctext">Beispiele</span></a></li> <li class="toclevel-1 tocsection-5"><a href="#Siehe_auch"><span class="tocnumber">4</span> <span class="toctext">Siehe auch</span></a></li> <li class="toclevel-1 tocsection-6"><a href="#Literatur"><span class="tocnumber">5</span> <span class="toctext">Literatur</span></a></li> <li class="toclevel-1 tocsection-7"><a href="#Weblinks"><span class="tocnumber">6</span> <span class="toctext">Weblinks</span></a></li> <li class="toclevel-1 tocsection-8"><a href="#Einzelnachweise"><span class="tocnumber">7</span> <span class="toctext">Einzelnachweise</span></a></li> </ul> </div> <div class="mw-heading mw-heading2"><h2 id="Funktionsweise">Funktionsweise</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Blowfish&amp;veaction=edit&amp;section=1" title="Abschnitt bearbeiten: Funktionsweise" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Blowfish&amp;action=edit&amp;section=1" title="Quellcode des Abschnitts bearbeiten: Funktionsweise"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Die Abbildung zeigt den internen Aufbau von Blowfish. Der 64&#160;Bit breite Klartextblock wird in zwei Hälften <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle L_{1}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>L</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>1</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle L_{1}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/0e79dc1b001f8b923df475ed14de023cbc456013" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.637ex; height:2.509ex;" alt="{\displaystyle L_{1}}" /></span> und <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle R_{1}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>R</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>1</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle R_{1}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/c1d63c96f59d98589d923c4f0b04222feaa7283e" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.818ex; height:2.509ex;" alt="{\displaystyle R_{1}}" /></span> geteilt. In jeder sogenannten Runde, von denen insgesamt 16 durchlaufen werden, wird die linke Hälfte des Datenblocks mit einem vorab berechneten 32&#160;Bit breiten Rundenschlüssel P<sub>1</sub> bis P<sub>16</sub> <a href="/wiki/XOR-Verkn%C3%BCpfung" class="mw-redirect" title="XOR-Verknüpfung">XOR</a>-verknüpft, dann das Ergebnis in die Rundenfunktion <i>F</i> eingegeben und deren Ausgabe mit der rechten Hälfte XOR-verknüpft und die Hälften anschließend vertauscht. Am Ende werden noch die beiden Hälften mit den Rundenschlüsseln P<sub>17</sub> und P<sub>18</sub> XOR-verknüpft: </p> <dl><dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle R_{i+1}=L_{i}\oplus P_{i},}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>R</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>i</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>L</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>i</mi> </mrow> </msub> <mo>&#x2295;<!-- ⊕ --></mo> <msub> <mi>P</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>i</mi> </mrow> </msub> <mo>,</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle R_{i+1}=L_{i}\oplus P_{i},}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/2dac4ba96fd468130f6f990385acb4a7d7e2bd15" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:15.924ex; height:2.509ex;" alt="{\displaystyle R_{i+1}=L_{i}\oplus P_{i},}" /></span></dd> <dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle L_{i+1}=R_{i}\oplus F(R_{i+1})\quad (i\;{\text{von}}\;1\;{\text{bis}}\;16)}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>L</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>i</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>R</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>i</mi> </mrow> </msub> <mo>&#x2295;<!-- ⊕ --></mo> <mi>F</mi> <mo stretchy="false">(</mo> <msub> <mi>R</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>i</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo stretchy="false">)</mo> <mspace width="1em"></mspace> <mo stretchy="false">(</mo> <mi>i</mi> <mspace width="thickmathspace"></mspace> <mrow class="MJX-TeXAtom-ORD"> <mtext>von</mtext> </mrow> <mspace width="thickmathspace"></mspace> <mn>1</mn> <mspace width="thickmathspace"></mspace> <mrow class="MJX-TeXAtom-ORD"> <mtext>bis</mtext> </mrow> <mspace width="thickmathspace"></mspace> <mn>16</mn> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle L_{i+1}=R_{i}\oplus F(R_{i+1})\quad (i\;{\text{von}}\;1\;{\text{bis}}\;16)}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/51bc939089e98f17b7a65c96f525171557543b8d" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:38.74ex; height:2.843ex;" alt="{\displaystyle L_{i+1}=R_{i}\oplus F(R_{i+1})\quad (i\;{\text{von}}\;1\;{\text{bis}}\;16)}" /></span></dd> <dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle R_{18}=L_{17}\oplus P_{17},\;L_{18}=R_{17}\oplus P_{18}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>R</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>18</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>L</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>17</mn> </mrow> </msub> <mo>&#x2295;<!-- ⊕ --></mo> <msub> <mi>P</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>17</mn> </mrow> </msub> <mo>,</mo> <mspace width="thickmathspace"></mspace> <msub> <mi>L</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>18</mn> </mrow> </msub> <mo>=</mo> <msub> <mi>R</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>17</mn> </mrow> </msub> <mo>&#x2295;<!-- ⊕ --></mo> <msub> <mi>P</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>18</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle R_{18}=L_{17}\oplus P_{17},\;L_{18}=R_{17}\oplus P_{18}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/c22dcbe4ff4065c9d04f9a3c5431e2538cd6047e" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:34.492ex; height:2.509ex;" alt="{\displaystyle R_{18}=L_{17}\oplus P_{17},\;L_{18}=R_{17}\oplus P_{18}}" /></span></dd></dl> <p><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle L_{18}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>L</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>18</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle L_{18}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/ae89fe773c31cfb35ec0afdc81d9c3fd4b6d567c" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.459ex; height:2.509ex;" alt="{\displaystyle L_{18}}" /></span> und <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle R_{18}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>R</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>18</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle R_{18}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/d54b3797df9f89ccb8c8a218b8be5a431eec759b" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.64ex; height:2.509ex;" alt="{\displaystyle R_{18}}" /></span> bilden dann den Schlüsseltextblock. Die Entschlüsselung läuft exakt gleich ab, nur werden dabei alle Rundenschlüssel P<sub>1</sub> bis P<sub>18</sub> in umgekehrter Reihenfolge verwendet. Das beruht auf der Vertauschbarkeit der XOR-Verknüpfungen. XOR ist sowohl <a href="/wiki/Kommutativgesetz" title="Kommutativgesetz">kommutativ</a> als auch <a href="/wiki/Assoziativgesetz" title="Assoziativgesetz">assoziativ</a>. Es ist gleich, ob man eine Hälfte des Datenblocks erst mit einem Rundenschlüssel und dann mit der Ausgabe der Funktion <i>F</i> verknüpft oder umgekehrt. </p><p>In der Funktion <i>F</i> kommen die schlüsselabhängigen S-Boxen zum Einsatz. Der Eingabewert wird in vier Byte geteilt, mit denen jeweils ein Wert aus einer von vier 8&#160;×&#160;32 Bit S-Boxen ausgelesen wird. Diese Werte werden mittels XOR und Addition modulo <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle 2^{32}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msup> <mn>2</mn> <mrow class="MJX-TeXAtom-ORD"> <mn>32</mn> </mrow> </msup> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle 2^{32}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/a8c222ea8e5f187a2bb499395b6f4a6f38b43633" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:3.039ex; height:2.676ex;" alt="{\displaystyle 2^{32}}" /></span> verknüpft: </p> <dl><dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle F(x)=\lbrace \lbrack \,S_{1}(x_{24..31})\;+\;S_{2}(x_{16..23})\,\rbrack \;\oplus \;S_{3}(x_{8..15})\,\rbrace \;+\;S_{4}(x_{0..7})}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>F</mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo stretchy="false">)</mo> <mo>=</mo> <mo fence="false" stretchy="false">{</mo> <mo fence="false" stretchy="false">[</mo> <mspace width="thinmathspace"></mspace> <msub> <mi>S</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>1</mn> </mrow> </msub> <mo stretchy="false">(</mo> <msub> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>24..31</mn> </mrow> </msub> <mo stretchy="false">)</mo> <mspace width="thickmathspace"></mspace> <mo>+</mo> <mspace width="thickmathspace"></mspace> <msub> <mi>S</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>2</mn> </mrow> </msub> <mo stretchy="false">(</mo> <msub> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>16..23</mn> </mrow> </msub> <mo stretchy="false">)</mo> <mspace width="thinmathspace"></mspace> <mo fence="false" stretchy="false">]</mo> <mspace width="thickmathspace"></mspace> <mo>&#x2295;<!-- ⊕ --></mo> <mspace width="thickmathspace"></mspace> <msub> <mi>S</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>3</mn> </mrow> </msub> <mo stretchy="false">(</mo> <msub> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>8..15</mn> </mrow> </msub> <mo stretchy="false">)</mo> <mspace width="thinmathspace"></mspace> <mo fence="false" stretchy="false">}</mo> <mspace width="thickmathspace"></mspace> <mo>+</mo> <mspace width="thickmathspace"></mspace> <msub> <mi>S</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>4</mn> </mrow> </msub> <mo stretchy="false">(</mo> <msub> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>0..7</mn> </mrow> </msub> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle F(x)=\lbrace \lbrack \,S_{1}(x_{24..31})\;+\;S_{2}(x_{16..23})\,\rbrack \;\oplus \;S_{3}(x_{8..15})\,\rbrace \;+\;S_{4}(x_{0..7})}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/02b2af6b82b3827d995d8e6823cd77670362c45a" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:62.897ex; height:2.843ex;" alt="{\displaystyle F(x)=\lbrace \lbrack \,S_{1}(x_{24..31})\;+\;S_{2}(x_{16..23})\,\rbrack \;\oplus \;S_{3}(x_{8..15})\,\rbrace \;+\;S_{4}(x_{0..7})}" /></span>.</dd></dl> <p>Dabei steht <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x_{a..b}\!\,}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>a</mi> <mo>.</mo> <mo>.</mo> <mi>b</mi> </mrow> </msub> <mspace width="negativethinmathspace"></mspace> <mspace width="thinmathspace"></mspace> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle x_{a..b}\!\,}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/84444f6fb61c70bf0a3f10e356e8d58477a05070" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:4.052ex; height:2.009ex;" alt="{\displaystyle x_{a..b}\!\,}" /></span> für die Bits an den Positionen <i>a</i> bis <i>b</i> aus der Binärdarstellung des Wertes <i>x</i>. </p> <div class="mw-heading mw-heading3"><h3 id="Schlüsseleinteilung"><span id="Schl.C3.BCsseleinteilung"></span>Schlüsseleinteilung</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Blowfish&amp;veaction=edit&amp;section=2" title="Abschnitt bearbeiten: Schlüsseleinteilung" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Blowfish&amp;action=edit&amp;section=2" title="Quellcode des Abschnitts bearbeiten: Schlüsseleinteilung"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Blowfish verwendet 18&#160;Rundenschlüssel <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle P_{1}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>P</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>1</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle P_{1}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/398f438d75434e6fbf48dc232c1ad7228a738568" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.547ex; height:2.509ex;" alt="{\displaystyle P_{1}}" /></span> bis <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle P_{18}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>P</mi> <mrow class="MJX-TeXAtom-ORD"> <mn>18</mn> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle P_{18}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/7c9c2c21334a2300d8c0468f14f2942fea086d3a" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.368ex; height:2.509ex;" alt="{\displaystyle P_{18}}" /></span> mit je 32&#160;Bit und vier S-Boxen mit je 256 = 2<sup>8</sup> Einträgen von je 32&#160;Bit. Die Initialisierung der <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle P_{i}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>P</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>i</mi> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle P_{i}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/3ba1396129f7be3c7f828a571b6649e6807d10d3" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.292ex; height:2.509ex;" alt="{\displaystyle P_{i}}" /></span> und der S-Boxen erfolgt mit einer fixen Zahlenfolge, die aus der Binärdarstellung der <a href="/wiki/Kreiszahl" title="Kreiszahl">Kreiszahl π</a> abgeleitet wird, um die Anforderungen an eine <a href="/wiki/Unverd%C3%A4chtige_Konstante" title="Unverdächtige Konstante">unverdächtige Konstante</a> zu erfüllen. Die Nachkommastellen von π sind <a href="/wiki/Pseudozufall" title="Pseudozufall">pseudozufällig</a> und unabhängig vom restlichen Blowfish-Algorithmus.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> Davon ausgehend werden sowohl die Rundenschlüssel als auch die S-Boxen S<sub>1</sub> bis S<sub>4</sub> schlüsselabhängig verändert. </p><p>Dazu wird zuerst der Schlüssel in 32-Bit-Blöcke aufgeteilt. Danach wird jeder Rundenschlüssel mit den 32-Bit-Blöcken des Schlüssels XOR-verknüpft. Dabei wechseln sich die Blöcke des Schlüssels nacheinander ab. Danach wird ein Block mit 64&#160;Nullbits verschlüsselt, unter Verwendung der aktuellen Rundenschlüssel und der wie oben initialisierten S-Boxen. Die linke und rechte Hälfte des entstandenen Schlüsseltextes ersetzen dann den ersten und zweiten Rundenschlüssel. Dann wird der obige Schlüsseltext mit den geänderten Rundenschlüsseln nochmals verschlüsselt, und der dritte und vierte Rundenschlüssel wird ersetzt usw. Nachdem auf diese Weise alle Rundenschlüssel ersetzt wurden, kommen die Einträge der S-Boxen an die Reihe, wobei auch wieder die jeweils nächste Verschlüsselung mit dem aktuellen Stand der S-Boxen gemacht wird. Es werden also insgesamt 521&#160;Verschlüsselungen durchgeführt, bis die 18&#160;Rundenschlüssel und die 1024&#160;S-Box-Einträge ersetzt sind. </p><p>Danach bleiben die Rundenschlüssel und die Werte in den S-Boxen so lange konstant, bis ein neuer Schlüssel gewählt wird. </p><p>Als <a href="/wiki/C%2B%2B" title="C++">C++</a>-Code: </p> <div class="mw-highlight mw-highlight-lang-cpp mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">P</span><span class="p">[</span><span class="mi">18</span><span class="p">];</span><span class="w"> </span><span class="c1">// Rundenschlüssel</span> <span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">S</span><span class="p">[</span><span class="mi">4</span><span class="p">][</span><span class="mh">0x100</span><span class="p">];</span><span class="w"> </span><span class="c1">// S-Boxen</span> <span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="nf">f</span><span class="w"> </span><span class="p">(</span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">h</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">S</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">x</span><span class="w"> </span><span class="o">&gt;&gt;</span><span class="w"> </span><span class="mi">24</span><span class="p">]</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">S</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="n">x</span><span class="w"> </span><span class="o">&gt;&gt;</span><span class="w"> </span><span class="mi">16</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="mh">0xff</span><span class="p">];</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">h</span><span class="w"> </span><span class="o">^</span><span class="w"> </span><span class="n">S</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="n">x</span><span class="w"> </span><span class="o">&gt;&gt;</span><span class="w"> </span><span class="mi">8</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="mh">0xff</span><span class="p">]</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">S</span><span class="p">[</span><span class="mi">3</span><span class="p">][</span><span class="n">x</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="mh">0xff</span><span class="p">];</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">encrypt</span><span class="w"> </span><span class="p">(</span><span class="kt">uint32_t</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">L</span><span class="p">,</span><span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">R</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">&lt;</span><span class="mi">16</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">L</span><span class="w"> </span><span class="o">^=</span><span class="w"> </span><span class="n">P</span><span class="p">[</span><span class="n">i</span><span class="p">];</span> <span class="w"> </span><span class="n">R</span><span class="w"> </span><span class="o">^=</span><span class="w"> </span><span class="n">f</span><span class="p">(</span><span class="n">L</span><span class="p">);</span> <span class="w"> </span><span class="n">R</span><span class="w"> </span><span class="o">^=</span><span class="w"> </span><span class="n">P</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">];</span> <span class="w"> </span><span class="n">L</span><span class="w"> </span><span class="o">^=</span><span class="w"> </span><span class="n">f</span><span class="p">(</span><span class="n">R</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">L</span><span class="w"> </span><span class="o">^=</span><span class="w"> </span><span class="n">P</span><span class="p">[</span><span class="mi">16</span><span class="p">];</span> <span class="w"> </span><span class="n">R</span><span class="w"> </span><span class="o">^=</span><span class="w"> </span><span class="n">P</span><span class="p">[</span><span class="mi">17</span><span class="p">];</span> <span class="w"> </span><span class="n">swap</span><span class="w"> </span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="w"> </span><span class="n">R</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">decrypt</span><span class="w"> </span><span class="p">(</span><span class="kt">uint32_t</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">L</span><span class="p">,</span><span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="n">R</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="o">=</span><span class="mi">16</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="err">−</span><span class="o">=</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">L</span><span class="w"> </span><span class="o">^=</span><span class="w"> </span><span class="n">P</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">];</span> <span class="w"> </span><span class="n">R</span><span class="w"> </span><span class="o">^=</span><span class="w"> </span><span class="n">f</span><span class="p">(</span><span class="n">L</span><span class="p">);</span> <span class="w"> </span><span class="n">R</span><span class="w"> </span><span class="o">^=</span><span class="w"> </span><span class="n">P</span><span class="p">[</span><span class="n">i</span><span class="p">];</span> <span class="w"> </span><span class="n">L</span><span class="w"> </span><span class="o">^=</span><span class="w"> </span><span class="n">f</span><span class="p">(</span><span class="n">R</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">L</span><span class="w"> </span><span class="o">^=</span><span class="w"> </span><span class="n">P</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span> <span class="w"> </span><span class="n">R</span><span class="w"> </span><span class="o">^=</span><span class="w"> </span><span class="n">P</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span> <span class="w"> </span><span class="n">swap</span><span class="w"> </span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="w"> </span><span class="n">R</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">key_schedule</span><span class="w"> </span><span class="p">(</span><span class="kt">uint8_t</span><span class="w"> </span><span class="n">key</span><span class="p">[],</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">keylen</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="c1">// ...</span> <span class="w"> </span><span class="c1">// Initialisiere P[] und S[][] mittels der Kreiszahl Pi; hier ausgelassen</span> <span class="w"> </span><span class="c1">// Es ist zu beachten, dass Pi in big-endian Reihenfolge eingelesen wird</span> <span class="w"> </span><span class="c1">// ...</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="p">;</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">k</span><span class="p">;</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">&lt;</span><span class="mi">18</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="cm">/* Der Schlüssel wird byteweise gelesen, und */</span> <span class="w"> </span><span class="cm">/* in big-endian Reihenfolge mit P[] verrechnet */</span> <span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">tmp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">k</span><span class="o">=</span><span class="mi">0</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">k</span><span class="o">&lt;</span><span class="mi">4</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">k</span><span class="o">++</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">tmp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tmp</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="mi">8</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">key</span><span class="p">[</span><span class="n">j</span><span class="p">];</span> <span class="w"> </span><span class="k">if</span><span class="p">(</span><span class="o">++</span><span class="n">j</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="n">keylen</span><span class="p">)</span><span class="w"> </span><span class="n">j</span><span class="o">=</span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">P</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">^=</span><span class="w"> </span><span class="n">tmp</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">L</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">R</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">&lt;</span><span class="mi">18</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">+=</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">encrypt</span><span class="w"> </span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="w"> </span><span class="n">R</span><span class="p">);</span> <span class="w"> </span><span class="n">P</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">L</span><span class="p">;</span><span class="w"> </span><span class="n">P</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">R</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="o">=</span><span class="mi">0</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">&lt;</span><span class="mi">4</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">j</span><span class="o">=</span><span class="mi">0</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">&lt;</span><span class="mh">0x100</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="n">j</span><span class="o">+=</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">encrypt</span><span class="w"> </span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="w"> </span><span class="n">R</span><span class="p">);</span> <span class="w"> </span><span class="n">S</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">L</span><span class="p">;</span><span class="w"> </span><span class="n">S</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="n">j</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">R</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> </pre></div> <div class="mw-heading mw-heading2"><h2 id="Kryptoanalyse_und_Sicherheit">Kryptoanalyse und Sicherheit</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Blowfish&amp;veaction=edit&amp;section=3" title="Abschnitt bearbeiten: Kryptoanalyse und Sicherheit" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Blowfish&amp;action=edit&amp;section=3" title="Quellcode des Abschnitts bearbeiten: Kryptoanalyse und Sicherheit"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Es ist kein effizienter Angriff auf die Blowfish-Verschlüsselung mit voller Rundenzahl bekannt. Ein so genannter Sign-Extension-Bug wurde in einer Veröffentlichung des C-Codes gefunden.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup> </p><p>Serge Vaudenay fand 1996 einen <a href="/wiki/Kryptoanalyse#Angriffsszenarien" title="Kryptoanalyse">Known-Plaintext-Angriff</a>, der zum Brechen der Verschlüsselung 2<sup>8<i>r</i> + 1</sup> bekannte Paare von Klartext und Schlüsseltext benötigt. Der Parameter <i>r</i> bezeichnet die Anzahl der Runden. Zudem entdeckte er eine Klasse von schwachen Schlüsseln, die erkannt und mit nur 2<sup>4<i>r</i> + 1</sup> Klartext-Paaren gebrochen werden können. Dieser Angriff kann jedoch nicht gegen regulären Blowfish eingesetzt werden, da er die Kenntnis der schlüsselabhängigen S-Boxen voraussetzt. </p><p><a href="/wiki/Vincent_Rijmen" title="Vincent Rijmen">Vincent Rijmen</a> stellt in seiner Doktorarbeit einen differenziellen Angriff zweiter Ordnung vor, der Blowfish mit höchstens 4 Runden brechen kann. Außer der <a href="/wiki/Brute-Force-Methode" title="Brute-Force-Methode">Brute-Force-Methode</a> ist kein Weg bekannt, den Algorithmus mit 16 Runden zu brechen.<sup id="cite_ref-vaudenay-weak-keys_4-0" class="reference"><a href="#cite_note-vaudenay-weak-keys-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup> </p><p><a href="/wiki/Bruce_Schneier" title="Bruce Schneier">Bruce Schneier</a> merkt an, dass er den neueren <a href="/wiki/Twofish" title="Twofish">Twofish</a>-Algorithmus empfiehlt, obwohl Blowfish noch in breiter Verwendung ist.<sup id="cite_ref-schneier-interview-dec-2007_5-0" class="reference"><a href="#cite_note-schneier-interview-dec-2007-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> </p><p>Da Blowfish eine Blockgröße von 64 Bit verwendet (AES verwendet 128 Bit Blöcke), ist ein <a href="/wiki/Geburtstagsangriff" class="mw-redirect" title="Geburtstagsangriff">Geburtstagsangriff</a> – vor allem im <a href="/wiki/HTTPS" class="mw-redirect" title="HTTPS">HTTPS</a>- oder <a href="/wiki/OpenVPN" title="OpenVPN">OpenVPN</a>-Kontext – möglich. Im Jahr 2016 zeigte der SWEET32-Angriff, wie ein Geburtstagsangriff genutzt werden kann, um den Klartext wiederherzustellen. Der SWEET32-Angriff funktioniert bei Verschlüsselungsverfahren wie Blowfish, die mit einer Blockgröße von 64 Bit arbeiten.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Beispiele">Beispiele</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Blowfish&amp;veaction=edit&amp;section=4" title="Abschnitt bearbeiten: Beispiele" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Blowfish&amp;action=edit&amp;section=4" title="Quellcode des Abschnitts bearbeiten: Beispiele"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Im <a href="/wiki/GNU_Privacy_Guard" title="GNU Privacy Guard">GNU Privacy Guard</a> sind Blowfish und <a href="/wiki/Twofish" title="Twofish">Twofish</a> implementiert und können auf Wunsch aktiviert werden. Das <a href="/wiki/Cryptographic_File_System" title="Cryptographic File System">Cryptographic File System</a> (CFS) ist ein auf <a href="/wiki/Network_File_System" title="Network File System">NFS</a> aufsetzendes verschlüsseltes Dateisystem für UNIX und unterstützt ebenfalls Blowfish. Ein quelloffenes Windows-Programm zum Verschlüsseln von Dateien mittels Blowfish, Twofish und weiteren Algorithmen wie z.&#160;B. AES ist Blowfish Advanced CS. Auch im <a href="/wiki/OpenDocument" title="OpenDocument">OpenDocument</a>-Datenformat ist Blowfish als Verschlüsselungsmethode aufgeführt. Ab <a href="/wiki/PHP" title="PHP">PHP</a>&#160;5.3 ist Blowfish Bestandteil der crypt-Funktion. Blowfish ist ebenfalls in der freien Krypto-Bibliothek <a href="/wiki/OpenSSL" title="OpenSSL">OpenSSL</a> implementiert.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup> Die <a href="/wiki/Virtual_Private_Network" title="Virtual Private Network">VPN</a>-Software <a href="/wiki/OpenVPN" title="OpenVPN">OpenVPN</a> nutzt als symmetrische Komponente standardmäßig ebenfalls Blowfish.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup> </p><p>OpenSSH hat in dem Ende 2016 veröffentlichten Release&#160;7.4 die Blowfish-Unterstützung, wie auch viele andere schwache Chiffren, entfernt.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">&#91;</span>9<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Blowfish&amp;veaction=edit&amp;section=5" title="Abschnitt bearbeiten: Siehe auch" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Blowfish&amp;action=edit&amp;section=5" title="Quellcode des Abschnitts bearbeiten: Siehe auch"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Twofish" title="Twofish">Twofish</a>, Nachfolger von Blowfish</li> <li><a href="/wiki/Puffy_(Maskottchen)" title="Puffy (Maskottchen)">Puffy, the blowfish</a>, Maskottchen der <a href="/wiki/OpenSSH" title="OpenSSH">OpenSSH</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="Literatur">Literatur</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Blowfish&amp;veaction=edit&amp;section=6" title="Abschnitt bearbeiten: Literatur" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Blowfish&amp;action=edit&amp;section=6" title="Quellcode des Abschnitts bearbeiten: Literatur"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>Vincent Rijmen: <i>Cryptanalysis and design of iterated block ciphers</i>. doctoral dissertation, Oktober 1997.</li> <li>Bruce Schneier: <i>Description of a New Variable-Length Key, 64-bit Block Cipher (Blowfish)</i>. Fast Software Encryption 1993, S.&#160;191–204, <a rel="nofollow" class="external text" href="http://www.schneier.com/paper-blowfish-fse.html">schneier.com</a>.</li> <li>Bruce Schneier: <i>The Blowfish Encryption Algorithm – One Year Later</i>. In: <i><a href="/wiki/Dr._Dobb%E2%80%99s_Journal" title="Dr. Dobb’s Journal">Dr. Dobb’s Journal</a></i>, 20(9), S. 137, September 1995, <a rel="nofollow" class="external text" href="http://www.schneier.com/paper-blowfish-oneyear.html">schneier.com</a>.</li> <li>Serge Vaudenay: <i>On the weak keys of Blowfish</i>. In: D. Gollmann (Ed.): <i>Fast Software Encryption (FSE’96)</i>, LNCS 1039. Springer-Verlag, 1996, S. 27–32.</li></ul> <div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Blowfish&amp;veaction=edit&amp;section=7" title="Abschnitt bearbeiten: Weblinks" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Blowfish&amp;action=edit&amp;section=7" title="Quellcode des Abschnitts bearbeiten: Weblinks"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a rel="nofollow" class="external text" href="http://www.schneier.com/blowfish.html">Bruce Schneiers Beschreibung des Algorithmus</a> <a rel="nofollow" class="external text" href="http://www.schneier.com/blowfish-download.html">incl etlicher Sourcecodes</a></li> <li><a rel="nofollow" class="external text" href="http://www.schneier.com/code/constants.txt">S-Box und P-Box</a></li> <li><a rel="nofollow" class="external text" href="http://www.php-einfach.de/sonstiges_generator_blowfish.php">Online Blowfish-Verschlüsselung (PHP oder JavaScript)</a></li> <li><a rel="nofollow" class="external text" href="http://www.users.zetnet.co.uk/hopwood/crypto/scan/cs.html#Blowfish">Standard Cryptographic Algorithm Naming zu Blowfish</a></li> <li><style data-mw-deduplicate="TemplateStyles:r254095491">.mw-parser-output .webarchiv-memento a{color:inherit}</style><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130219032000/http://www.lassekolb.info/bfacs.htm">Blowfish Advanced CS</a> (<span class="webarchiv-memento"><a href="/wiki/Web-Archivierung#Begrifflichkeiten" title="Web-Archivierung">Memento</a></span> vom 19. Februar 2013 im <i><a href="/wiki/Internet_Archive" title="Internet Archive">Internet Archive</a></i>)</li></ul> <div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Blowfish&amp;veaction=edit&amp;section=8" title="Abschnitt bearbeiten: Einzelnachweise" class="mw-editsection-visualeditor"><span>Bearbeiten</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Blowfish&amp;action=edit&amp;section=8" title="Quellcode des Abschnitts bearbeiten: Einzelnachweise"><span>Quelltext bearbeiten</span></a><span class="mw-editsection-bracket">]</span></span></div> <ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://www.schneier.com/academic/blowfish/"><i>Schneier on Security: The Blowfish Encryption Algorithm.</i></a><span class="Abrufdatum">&#32;Abgerufen am 23.&#160;Februar 2018</span>.</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ABlowfish&amp;rft.title=Schneier+on+Security%3A+The+Blowfish+Encryption+Algorithm&amp;rft.description=Schneier+on+Security%3A+The+Blowfish+Encryption+Algorithm&amp;rft.identifier=https%3A%2F%2Fwww.schneier.com%2Facademic%2Fblowfish%2F">&#160;</span></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">Bruce Schneier&#58; <cite style="font-style:italic">Description of a new variable-length key, 64-bit block cipher (Blowfish)</cite>. In: <cite style="font-style:italic">FSE 1993</cite> (=&#160;<cite style="font-style:italic">Lecture Notes in Computer Science</cite>). <span style="white-space:nowrap">Band<span style="display:inline-block;width:.2em">&#160;</span>809</span>. Springer, 1994, <span style="white-space:nowrap">S.<span style="display:inline-block;width:.2em">&#160;</span>201</span> (<a rel="nofollow" class="external text" href="http://www.schneier.com/paper-blowfish-fse.html">schneier.com</a>).<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info:sid/de.wikipedia.org:Blowfish&amp;rft.atitle=Description+of+a+new+variable-length+key%2C+64-bit+block+cipher+%28Blowfish%29&amp;rft.au=Bruce+Schneier&amp;rft.btitle=FSE+1993&amp;rft.date=1994&amp;rft.genre=book&amp;rft.pages=201&amp;rft.pub=Springer&amp;rft.series=Lecture+Notes+in+Computer+Science&amp;rft.volume=809" style="display:none">&#160;</span> <div class="Vorlage_Zitat" style="margin:1em 40px;"> <div style="margin:1em 0;"><blockquote lang="en" style="margin:0;"> <p>“I chose the digits of pi as the initial subkey table for two reasons: because it is a random sequence not related to the algorithm, and because it could either be stored as part of the algorithm or derived when needed.” </p> </blockquote> <blockquote style="margin:.5em 0 0 0;" lang="de-Latn"> <p>„Ich habe die Ziffern von Pi als Initialisierung der Unterschlüssel aus zwei Gründen gewählt: weil es eine zufällige Folge ohne Bezug zum Algorithmus ist, und weil sie entweder als Teil des Algorithmus gespeichert, oder bei Bedarf berechnet werden kann.“ </p> </blockquote></div></div></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text">Mike Morgan: <a rel="nofollow" class="external text" href="http://www.schneier.com/blowfish-bug.txt"><i>Blowfish can be cracked! (Fix included…)</i>.</a> Newsgroup sci.crypt</span> </li> <li id="cite_note-vaudenay-weak-keys-4"><span class="mw-cite-backlink"><a href="#cite_ref-vaudenay-weak-keys_4-0">↑</a></span> <span class="reference-text"><span class="cite">Serge&#32;Vaudenay:&#32;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20071104154101/http://lasecwww.epfl.ch/php_code/publications/search.php?ref=Vau96a"><i>On the Weak Keys of Blowfish.</i></a>&#32;(<a href="/wiki/PostScript" title="PostScript">PostScript</a>)&#32;23.&#160;August 2006,&#32;archiviert&#32;vom&#32;<style data-mw-deduplicate="TemplateStyles:r250917974">.mw-parser-output .dewiki-iconexternal>a{background-position:center right!important;background-repeat:no-repeat!important}body.skin-minerva .mw-parser-output .dewiki-iconexternal>a{background-image:url("https://upload.wikimedia.org/wikipedia/commons/a/a4/OOjs_UI_icon_external-link-ltr-progressive.svg")!important;background-size:10px!important;padding-right:13px!important}body.skin-timeless .mw-parser-output .dewiki-iconexternal>a,body.skin-monobook .mw-parser-output .dewiki-iconexternal>a{background-image:url("https://upload.wikimedia.org/wikipedia/commons/3/30/MediaWiki_external_link_icon.svg")!important;padding-right:13px!important}body.skin-vector .mw-parser-output .dewiki-iconexternal>a{background-image:url("https://upload.wikimedia.org/wikipedia/commons/9/96/Link-external-small-ltr-progressive.svg")!important;background-size:0.857em!important;padding-right:1em!important}</style><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Flasecwww.epfl.ch%2Fphp_code%2Fpublications%2Fsearch.php%3Fref%3DVau96a">Original</a></span>&#32;am&#32;<span style="white-space:nowrap;">4.&#160;November 2007</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 31.&#160;Dezember 2007</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ABlowfish&amp;rft.title=On+the+Weak+Keys+of+Blowfish&amp;rft.description=On+the+Weak+Keys+of+Blowfish&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20071104154101%2Fhttp%3A%2F%2Flasecwww.epfl.ch%2Fphp_code%2Fpublications%2Fsearch.php%3Fref%3DVau96a&amp;rft.creator=Serge%26%2332%3BVaudenay&amp;rft.date=2006-08-23&amp;rft.source=http&#58;//lasecwww.epfl.ch/php_code/publications/search.php?ref=Vau96a&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-schneier-interview-dec-2007-5"><span class="mw-cite-backlink"><a href="#cite_ref-schneier-interview-dec-2007_5-0">↑</a></span> <span class="reference-text"><span class="cite">Dahna&#32;McConnachie:&#32;<a rel="nofollow" class="external text" href="https://web.archive.org/web/20081005014100/http://www.computerworld.com.au/index.php/id;1891124482;pp;1;fp;4194304;fpid;1"><i>Bruce Almighty: Schneier preaches security to Linux faithful.</i></a>&#32;In:&#32;<i>Computerworld.</i>&#32;27.&#160;Dezember 2007,&#32;<span style="white-space:nowrap;">S.&#32;3</span>,&#32;archiviert&#32;vom&#32;<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r250917974" /><span class="dewiki-iconexternal"><a class="external text" href="https://redirecter.toolforge.org/?url=http%3A%2F%2Fwww.computerworld.com.au%2Findex.php%2Fid%3B1891124482%3Bpp%3B1%3Bfp%3B4194304%3Bfpid%3B1">Original</a></span>&#32;am&#32;<span style="white-space:nowrap;">5.&#160;Oktober 2008</span><span>;</span><span class="Abrufdatum">&#32;abgerufen am 31.&#160;Dezember 2007</span>&#32;(englisch)&#58;&#32;„At this point, though, I’m amazed it’s still being used. If people ask, I recommend Twofish instead.“</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ABlowfish&amp;rft.title=Bruce+Almighty%3A+Schneier+preaches+security+to+Linux+faithful&amp;rft.description=Bruce+Almighty%3A+Schneier+preaches+security+to+Linux+faithful&amp;rft.identifier=https%3A%2F%2Fweb.archive.org%2Fweb%2F20081005014100%2Fhttp%3A%2F%2Fwww.computerworld.com.au%2Findex.php%2Fid%3B1891124482%3Bpp%3B1%3Bfp%3B4194304%3Bfpid%3B1&amp;rft.creator=Dahna%26%2332%3BMcConnachie&amp;rft.date=2007-12-27&amp;rft.source=http&#58;//www.computerworld.com.au/index.php/id;1891124482;pp;1;fp;4194304;fpid;1&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text"><span class="cite">Karthikeyan Bhargavan, Gaëtan Leurent:&#32;<a rel="nofollow" class="external text" href="https://sweet32.info/"><i>On the Practical (In-)Security of 64-bit Block Ciphers – Collision Attacks on HTTP over TLS and OpenVPN.</i></a>&#32;ACM CCS 2016,&#32;August 2016<span style="display:none">;</span><span class="Abrufdatum" style="display:none">&#32;abgerufen im 1.&#160;Januar 1</span>&#32;(englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Fde.wikipedia.org%3ABlowfish&amp;rft.title=On+the+Practical+%28In-%29Security+of+64-bit+Block+Ciphers+%E2%80%93+Collision+Attacks+on+HTTP+over+TLS+and+OpenVPN&amp;rft.description=On+the+Practical+%28In-%29Security+of+64-bit+Block+Ciphers+%E2%80%93+Collision+Attacks+on+HTTP+over+TLS+and+OpenVPN&amp;rft.identifier=&amp;rft.creator=Karthikeyan+Bhargavan%2C+Ga%C3%ABtan+Leurent&amp;rft.publisher=ACM+CCS+2016&amp;rft.date=2016-08&amp;rft.language=en">&#160;</span></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a></span> <span class="reference-text">Offizielle OpenSSL-Dokumentation: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r254095491" /><a rel="nofollow" class="external text" href="https://web.archive.org/web/20140214081002/https://www.openssl.org/docs/crypto/blowfish.html">Blowfish</a> (<span class="webarchiv-memento"><a href="/wiki/Web-Archivierung#Begrifflichkeiten" title="Web-Archivierung">Memento</a></span> vom 14. Februar 2014 im <i><a href="/wiki/Internet_Archive" title="Internet Archive">Internet Archive</a></i>)</span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r254095491" /><a rel="nofollow" class="external text" href="https://web.archive.org/web/20150209011916/http://www.imped.net/oss/misc/openvpn-2.0-howto-edit.html#security">Offizielle OpenVPN-Dokumentation</a> (<span class="webarchiv-memento"><a href="/wiki/Web-Archivierung#Begrifflichkeiten" title="Web-Archivierung">Memento</a></span> vom 9. Februar 2015 im <i><a href="/wiki/Internet_Archive" title="Internet Archive">Internet Archive</a></i>)</span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.openssh.com/txt/release-7.4">OpenSSH 7.4 Release Notes</a></span> </li> </ol></div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?useformat=desktop&amp;type=1x1&amp;usesul3=0" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Abgerufen von „<a dir="ltr" href="https://de.wikipedia.org/w/index.php?title=Blowfish&amp;oldid=243926024">https://de.wikipedia.org/w/index.php?title=Blowfish&amp;oldid=243926024</a>“</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Wikipedia:Kategorien" title="Wikipedia:Kategorien">Kategorie</a>: <ul><li><a href="/wiki/Kategorie:Blockverschl%C3%BCsselung" title="Kategorie:Blockverschlüsselung">Blockverschlüsselung</a></li></ul></div></div> </div> </div> <div id="mw-navigation"> <h2>Navigationsmenü</h2> <div id="mw-head"> <nav id="p-personal" class="mw-portlet mw-portlet-personal vector-user-menu-legacy vector-menu" aria-labelledby="p-personal-label" > <h3 id="p-personal-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Meine Werkzeuge</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anonuserpage" class="mw-list-item"><span title="Benutzerseite der IP-Adresse, von der aus du Änderungen durchführst">Nicht angemeldet</span></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Spezial:Meine_Diskussionsseite" title="Diskussion über Änderungen von dieser IP-Adresse [n]" accesskey="n"><span>Diskussionsseite</span></a></li><li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Spezial:Meine_Beitr%C3%A4ge" title="Eine Liste der Bearbeitungen, die von dieser IP-Adresse gemacht wurden [y]" accesskey="y"><span>Beiträge</span></a></li><li id="pt-createaccount" class="mw-list-item"><a href="/w/index.php?title=Spezial:Benutzerkonto_anlegen&amp;returnto=Blowfish" title="Wir ermutigen dich dazu, ein Benutzerkonto zu erstellen und dich anzumelden. Es ist jedoch nicht zwingend erforderlich."><span>Benutzerkonto erstellen</span></a></li><li id="pt-login" class="mw-list-item"><a href="/w/index.php?title=Spezial:Anmelden&amp;returnto=Blowfish" title="Anmelden ist zwar keine Pflicht, wird aber gerne gesehen. [o]" accesskey="o"><span>Anmelden</span></a></li> </ul> </div> </nav> <div id="left-navigation"> <nav id="p-namespaces" class="mw-portlet mw-portlet-namespaces vector-menu-tabs vector-menu-tabs-legacy vector-menu" aria-labelledby="p-namespaces-label" > <h3 id="p-namespaces-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Namensräume</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected mw-list-item"><a href="/wiki/Blowfish" title="Seiteninhalt anzeigen [c]" accesskey="c"><span>Artikel</span></a></li><li id="ca-talk" class="mw-list-item"><a href="/wiki/Diskussion:Blowfish" rel="discussion" title="Diskussion zum Seiteninhalt [t]" accesskey="t"><span>Diskussion</span></a></li> </ul> </div> </nav> <nav id="p-variants" class="mw-portlet mw-portlet-variants emptyPortlet vector-menu-dropdown vector-menu" aria-labelledby="p-variants-label" > <input type="checkbox" id="p-variants-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-variants" class="vector-menu-checkbox" aria-labelledby="p-variants-label" > <label id="p-variants-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Deutsch</span> </label> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </nav> </div> <div id="right-navigation"> <nav id="p-views" class="mw-portlet mw-portlet-views vector-menu-tabs vector-menu-tabs-legacy vector-menu" aria-labelledby="p-views-label" > <h3 id="p-views-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Ansichten</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected mw-list-item"><a href="/wiki/Blowfish"><span>Lesen</span></a></li><li id="ca-ve-edit" class="mw-list-item"><a href="/w/index.php?title=Blowfish&amp;veaction=edit" title="Diese Seite mit dem VisualEditor bearbeiten [v]" accesskey="v"><span>Bearbeiten</span></a></li><li id="ca-edit" class="collapsible mw-list-item"><a href="/w/index.php?title=Blowfish&amp;action=edit" title="Den Quelltext dieser Seite bearbeiten [e]" accesskey="e"><span>Quelltext bearbeiten</span></a></li><li id="ca-history" class="mw-list-item"><a href="/w/index.php?title=Blowfish&amp;action=history" title="Frühere Versionen dieser Seite [h]" accesskey="h"><span>Versionsgeschichte</span></a></li> </ul> </div> </nav> <nav id="p-cactions" class="mw-portlet mw-portlet-cactions emptyPortlet vector-menu-dropdown vector-menu" aria-labelledby="p-cactions-label" title="Weitere Optionen" > <input type="checkbox" id="p-cactions-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-cactions" class="vector-menu-checkbox" aria-labelledby="p-cactions-label" > <label id="p-cactions-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Weitere</span> </label> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </nav> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <h3 >Suche</h3> <form action="/w/index.php" id="searchform" class="vector-search-box-form"> <div id="simpleSearch" class="vector-search-box-inner" data-search-loc="header-navigation"> <input class="vector-search-box-input" type="search" name="search" placeholder="Wikipedia durchsuchen" aria-label="Wikipedia durchsuchen" autocapitalize="sentences" title="Durchsuche die Wikipedia [f]" accesskey="f" id="searchInput" > <input type="hidden" name="title" value="Spezial:Suche"> <input id="mw-searchButton" class="searchButton mw-fallbackSearchButton" type="submit" name="fulltext" title="Suche nach Seiten, die diesen Text enthalten" value="Suchen"> <input id="searchButton" class="searchButton" type="submit" name="go" title="Gehe direkt zu der Seite mit genau diesem Namen, falls sie vorhanden ist." value="Artikel"> </div> </form> </div> </div> </div> <div id="mw-panel" class="vector-legacy-sidebar"> <div id="p-logo" role="banner"> <a class="mw-wiki-logo" href="/wiki/Wikipedia:Hauptseite" title="Hauptseite"></a> </div> <nav id="p-navigation" class="mw-portlet mw-portlet-navigation vector-menu-portal portal vector-menu" aria-labelledby="p-navigation-label" > <h3 id="p-navigation-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Navigation</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Wikipedia:Hauptseite" title="Hauptseite besuchen [z]" accesskey="z"><span>Hauptseite</span></a></li><li id="n-topics" class="mw-list-item"><a href="/wiki/Portal:Wikipedia_nach_Themen"><span>Themenportale</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Spezial:Zuf%C3%A4llige_Seite" title="Zufällige Seite aufrufen [x]" accesskey="x"><span>Zufälliger Artikel</span></a></li><li id="n-specialpages" class="mw-list-item"><a href="/wiki/Spezial:Spezialseiten"><span>Spezialseiten</span></a></li> </ul> </div> </nav> <nav id="p-Mitmachen" class="mw-portlet mw-portlet-Mitmachen vector-menu-portal portal vector-menu" aria-labelledby="p-Mitmachen-label" > <h3 id="p-Mitmachen-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Mitmachen</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-Artikel-verbessern" class="mw-list-item"><a href="/wiki/Wikipedia:Beteiligen"><span>Artikel verbessern</span></a></li><li id="n-Neuerartikel" class="mw-list-item"><a href="/wiki/Hilfe:Neuen_Artikel_anlegen"><span>Neuen Artikel anlegen</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Autorenportal" title="Info-Zentrum über Beteiligungsmöglichkeiten"><span>Autorenportal</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/Hilfe:%C3%9Cbersicht" title="Übersicht über Hilfeseiten"><span>Hilfe</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Spezial:Letzte_%C3%84nderungen" title="Liste der letzten Änderungen in Wikipedia [r]" accesskey="r"><span>Letzte Änderungen</span></a></li><li id="n-contact" class="mw-list-item"><a href="/wiki/Wikipedia:Kontakt" title="Kontaktmöglichkeiten"><span>Kontakt</span></a></li><li id="n-sitesupport" class="mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&amp;wmf_medium=sidebar&amp;wmf_campaign=de.wikipedia.org&amp;uselang=de" title="Unterstütze uns"><span>Spenden</span></a></li> </ul> </div> </nav> <nav id="p-tb" class="mw-portlet mw-portlet-tb vector-menu-portal portal vector-menu" aria-labelledby="p-tb-label" > <h3 id="p-tb-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Werkzeuge</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Spezial:Linkliste/Blowfish" title="Liste aller Seiten, die hierher verlinken [j]" accesskey="j"><span>Links auf diese Seite</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Spezial:%C3%84nderungen_an_verlinkten_Seiten/Blowfish" rel="nofollow" title="Letzte Änderungen an Seiten, die von hier verlinkt sind [k]" accesskey="k"><span>Änderungen an verlinkten Seiten</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Blowfish&amp;oldid=243926024" title="Dauerhafter Link zu dieser Seitenversion"><span>Permanenter Link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Blowfish&amp;action=info" title="Weitere Informationen über diese Seite"><span>Seiten­­informationen</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Spezial:Zitierhilfe&amp;page=Blowfish&amp;id=243926024&amp;wpFormIdentifier=titleform" title="Hinweise, wie diese Seite zitiert werden kann"><span>Artikel zitieren</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Spezial:URL-K%C3%BCrzung&amp;url=https%3A%2F%2Fde.wikipedia.org%2Fwiki%2FBlowfish"><span>Kurzlink</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Spezial:QrCode&amp;url=https%3A%2F%2Fde.wikipedia.org%2Fwiki%2FBlowfish"><span>QR-Code herunterladen</span></a></li> </ul> </div> </nav> <nav id="p-coll-print_export" class="mw-portlet mw-portlet-coll-print_export vector-menu-portal portal vector-menu" aria-labelledby="p-coll-print_export-label" > <h3 id="p-coll-print_export-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Drucken/​exportieren</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Spezial:DownloadAsPdf&amp;page=Blowfish&amp;action=show-download-screen"><span>Als PDF herunterladen</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Blowfish&amp;printable=yes" title="Druckansicht dieser Seite [p]" accesskey="p"><span>Druckversion</span></a></li> </ul> </div> </nav> <nav id="p-wikibase-otherprojects" class="mw-portlet mw-portlet-wikibase-otherprojects vector-menu-portal portal vector-menu" aria-labelledby="p-wikibase-otherprojects-label" > <h3 id="p-wikibase-otherprojects-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">In anderen Projekten</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Blowfish_(cipher)" hreflang="en"><span>Commons</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q815853" title="Link zum verbundenen Objekt im Datenrepositorium [g]" accesskey="g"><span>Wikidata-Datenobjekt</span></a></li> </ul> </div> </nav> <nav id="p-lang" class="mw-portlet mw-portlet-lang vector-menu-portal portal vector-menu" aria-labelledby="p-lang-label" > <h3 id="p-lang-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">In anderen Sprachen</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/Blowfish" title="Blowfish – Bulgarisch" lang="bg" hreflang="bg" data-title="Blowfish" data-language-autonym="Български" data-language-local-name="Bulgarisch" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Blowfish" title="Blowfish – Katalanisch" lang="ca" hreflang="ca" data-title="Blowfish" data-language-autonym="Català" data-language-local-name="Katalanisch" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Blowfish" title="Blowfish – Tschechisch" lang="cs" hreflang="cs" data-title="Blowfish" data-language-autonym="Čeština" data-language-local-name="Tschechisch" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/Blowfish" title="Blowfish – Griechisch" lang="el" hreflang="el" data-title="Blowfish" data-language-autonym="Ελληνικά" data-language-local-name="Griechisch" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Blowfish_(cipher)" title="Blowfish (cipher) – Englisch" lang="en" hreflang="en" data-title="Blowfish (cipher)" data-language-autonym="English" data-language-local-name="Englisch" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Blowfish" title="Blowfish – Spanisch" lang="es" hreflang="es" data-title="Blowfish" data-language-autonym="Español" data-language-local-name="Spanisch" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%A8%D9%84%D9%88%D9%81%DB%8C%D8%B4" title="بلوفیش – Persisch" lang="fa" hreflang="fa" data-title="بلوفیش" data-language-autonym="فارسی" data-language-local-name="Persisch" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Blowfish" title="Blowfish – Finnisch" lang="fi" hreflang="fi" data-title="Blowfish" data-language-autonym="Suomi" data-language-local-name="Finnisch" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Blowfish" title="Blowfish – Französisch" lang="fr" hreflang="fr" data-title="Blowfish" data-language-autonym="Français" data-language-local-name="Französisch" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/Blowfish" title="Blowfish – Galicisch" lang="gl" hreflang="gl" data-title="Blowfish" data-language-autonym="Galego" data-language-local-name="Galicisch" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/Blowfish" title="Blowfish – Hebräisch" lang="he" hreflang="he" data-title="Blowfish" data-language-autonym="עברית" data-language-local-name="Hebräisch" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Blowfish_(penyandian)" title="Blowfish (penyandian) – Indonesisch" lang="id" hreflang="id" data-title="Blowfish (penyandian)" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesisch" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Blowfish" title="Blowfish – Italienisch" lang="it" hreflang="it" data-title="Blowfish" data-language-autonym="Italiano" data-language-local-name="Italienisch" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/Blowfish" title="Blowfish – Japanisch" lang="ja" hreflang="ja" data-title="Blowfish" data-language-autonym="日本語" data-language-local-name="Japanisch" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EB%B8%94%EB%A1%9C%ED%94%BC%EC%8B%9C" title="블로피시 – Koreanisch" lang="ko" hreflang="ko" data-title="블로피시" data-language-autonym="한국어" data-language-local-name="Koreanisch" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Blowfish-encryptiealgoritme" title="Blowfish-encryptiealgoritme – Niederländisch" lang="nl" hreflang="nl" data-title="Blowfish-encryptiealgoritme" data-language-autonym="Nederlands" data-language-local-name="Niederländisch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Blowfish" title="Blowfish – Polnisch" lang="pl" hreflang="pl" data-title="Blowfish" data-language-autonym="Polski" data-language-local-name="Polnisch" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Blowfish" title="Blowfish – Portugiesisch" lang="pt" hreflang="pt" data-title="Blowfish" data-language-autonym="Português" data-language-local-name="Portugiesisch" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru badge-Q17559452 badge-recommendedarticle mw-list-item" title="empfohlener Artikel"><a href="https://ru.wikipedia.org/wiki/Blowfish" title="Blowfish – Russisch" lang="ru" hreflang="ru" data-title="Blowfish" data-language-autonym="Русский" data-language-local-name="Russisch" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Blowfish_(cipher)" title="Blowfish (cipher) – einfaches Englisch" lang="en-simple" hreflang="en-simple" data-title="Blowfish (cipher)" data-language-autonym="Simple English" data-language-local-name="einfaches Englisch" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Blowfish" title="Blowfish – Schwedisch" lang="sv" hreflang="sv" data-title="Blowfish" data-language-autonym="Svenska" data-language-local-name="Schwedisch" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-tg mw-list-item"><a href="https://tg.wikipedia.org/wiki/Blowfish" title="Blowfish – Tadschikisch" lang="tg" hreflang="tg" data-title="Blowfish" data-language-autonym="Тоҷикӣ" data-language-local-name="Tadschikisch" class="interlanguage-link-target"><span>Тоҷикӣ</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B9%82%E0%B8%9A%E0%B8%A5%E0%B8%A7%E0%B9%8C%E0%B8%9F%E0%B8%B4%E0%B8%8A" title="โบลว์ฟิช – Thailändisch" lang="th" hreflang="th" data-title="โบลว์ฟิช" data-language-autonym="ไทย" data-language-local-name="Thailändisch" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Blowfish" title="Blowfish – Türkisch" lang="tr" hreflang="tr" data-title="Blowfish" data-language-autonym="Türkçe" data-language-local-name="Türkisch" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/Blowfish" title="Blowfish – Ukrainisch" lang="uk" hreflang="uk" data-title="Blowfish" data-language-autonym="Українська" data-language-local-name="Ukrainisch" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/Blowfish" title="Blowfish – Chinesisch" lang="zh" hreflang="zh" data-title="Blowfish" data-language-autonym="中文" data-language-local-name="Chinesisch" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q815853#sitelinks-wikipedia" title="Links auf Artikel in anderen Sprachen bearbeiten" class="wbc-editpage">Links bearbeiten</a></span></div> </div> </nav> </div> </div> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> Diese Seite wurde zuletzt am 10. April 2024 um 09:23 Uhr bearbeitet.</li> <li id="footer-info-copyright"><div id="footer-info-copyright-stats" class="noprint"><a rel="nofollow" class="external text" href="https://pageviews.wmcloud.org/?pages=Blowfish&amp;project=de.wikipedia.org">Abrufstatistik</a>&#160;· <a rel="nofollow" class="external text" href="https://xtools.wmcloud.org/authorship/de.wikipedia.org/Blowfish?uselang=de">Autoren</a> </div><div id="footer-info-copyright-separator"><br /></div><div id="footer-info-copyright-info"> <p>Der Text ist unter der Lizenz <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">„Creative-Commons Namensnennung – Weitergabe unter gleichen Bedingungen“</a> verfügbar; Informationen zu den Urhebern und zum Lizenzstatus eingebundener Mediendateien (etwa Bilder oder Videos) können im Regelfall durch Anklicken dieser abgerufen werden. Möglicherweise unterliegen die Inhalte jeweils zusätzlichen Bedingungen. Durch die Nutzung dieser Website erklären Sie sich mit den <span class="plainlinks"><a class="external text" href="https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use/de">Nutzungsbedingungen</a> und der <a class="external text" href="https://foundation.wikimedia.org/wiki/Policy:Privacy_policy/de">Datenschutzrichtlinie</a></span> einverstanden.<br /> </p> Wikipedia® ist eine eingetragene Marke der Wikimedia Foundation Inc.</div></li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/de">Datenschutz</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:%C3%9Cber_Wikipedia">Über Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:Impressum">Impressum</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Verhaltenskodex</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Entwickler</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/de.wikipedia.org">Statistiken</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Stellungnahme zu Cookies</a></li> <li id="footer-places-mobileview"><a href="//de.m.wikipedia.org/w/index.php?title=Blowfish&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile Ansicht</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/static/images/footer/wikimedia-button.svg" width="84" height="29"><img src="/static/images/footer/wikimedia.svg" width="25" height="25" alt="Wikimedia Foundation" lang="en" loading="lazy"></picture></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/w/resources/assets/poweredby_mediawiki.svg" width="88" height="31"><img src="/w/resources/assets/mediawiki_compact.svg" alt="Powered by MediaWiki" lang="en" width="25" height="25" loading="lazy"></picture></a></li> </ul> </footer> <div class="mw-portlet mw-portlet-dock-bottom emptyPortlet vector-menu-portal portal" id="p-dock-bottom"> <ul> </ul> </div> <script>(RLQ=window.RLQ||[]).push(function(){mw.log.warn("This page is using the deprecated ResourceLoader module \"codex-search-styles\".\n[1.43] Use a CodexModule with codexComponents to set your specific components used: https://www.mediawiki.org/wiki/Codex#Using_a_limited_subset_of_components");mw.config.set({"wgHostname":"mw-web.codfw.canary-7dcdc76d8-tc6f9","wgBackendResponseTime":171,"wgPageParseReport":{"limitreport":{"cputime":"0.303","walltime":"0.531","ppvisitednodes":{"value":4023,"limit":1000000},"postexpandincludesize":{"value":30891,"limit":2097152},"templateargumentsize":{"value":15987,"limit":2097152},"expansiondepth":{"value":17,"limit":100},"expensivefunctioncount":{"value":2,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":29799,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 418.743 1 -total"," 45.15% 189.077 3 Vorlage:Cite_web"," 38.01% 159.162 4 Vorlage:Internetquelle"," 11.00% 46.064 3 Vorlage:Webarchiv"," 7.34% 30.748 1 Vorlage:DeS"," 4.46% 18.690 1 Vorlage:Literatur"," 4.36% 18.248 15 Vorlage:Cite_book/ParamBool"," 4.25% 17.804 4 Vorlage:Str_len"," 2.96% 12.387 2 Vorlage:Referrer"," 2.57% 10.761 3 Vorlage:Webarchiv/Wayback"]},"scribunto":{"limitreport-timeusage":{"value":"0.123","limit":"10.000"},"limitreport-memusage":{"value":4634560,"limit":52428800}},"cachereport":{"origin":"mw-web.eqiad.main-695f88bf4b-pd8f9","timestamp":"20250311080034","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Blowfish","url":"https:\/\/de.wikipedia.org\/wiki\/Blowfish","sameAs":"http:\/\/www.wikidata.org\/entity\/Q815853","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q815853","author":{"@type":"Organization","name":"Autoren der Wikimedia-Projekte"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2004-03-24T15:01:49Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/1\/17\/Blowfish_structure.svg","headline":"modernes Chiffrierverfahren"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10