bereits seit einigen Monaten erklärt mir ein Teilnehmer dieses Forums immer wieder gerne, daß die Programmiersprache C etwas habe, das er "Krypto-Hintergründe von C" nennt. Nun kenne ich C zwar bereits seit ungefähr vierzig Jahren zumindest brauchbar und nutze regelmäßig auch Kryptografie, jedoch ist mir nichts bekannt, das sich als "Krypto-Hintergund von C" bezeichnen ließe.
Die mir von dem Teilnehmer empfohlene Lektüre wie das C-Buch von Brian Kerninghan und Dennis Ritchie (K&R) [1] sowie die von ihm aufgeführte Website [2] (Achtung, viel blinkende Werbung) enthalten zu dem Thema Kryptografie zudem rein gar nichts. Am nächsten heran kommt noch das K&R-Buch, das zwar immerhin zweimal das Wort "cryptic" enthält, aber beide Male nicht im Zusammenhang mit Kryptografie.
Nun ist mir zwar bekannt, daß die meisten Kryptoalgorithmen und -Libs heute in der Sprache C implementiert sind, weil sie der kleinste gemeinsame Nenner ist und performanten Code möglich macht. Kann man deswegen aber schon von einem "Krypto-Hintergrund von C" reden? Wie seht Ihr das? Hat die Sprache C einen "Krypto-Hintergrund"?
Vielen Dank für Eure Beiträge zu einer hoffentlich informativen und interessanten Diskussion, viel Spaß! :-)
Wie seht Ihr das? Hat die Sprache C einen "Krypto-Hintergrund"?
Vielleicht meinte derjenige, dass er sich gerne kryptisch ausdrückt, damit niemand merkt, dass er keine Ahnung von C (oder überhaupt von irgendwas) hat.
bereits seit einigen Monaten erklärt mir ein Teilnehmer dieses Forums
immer wieder gerne, daß die Programmiersprache C etwas habe, das er
"Krypto-Hintergründe von C" nennt.
Solch eine Behauptung ist einfach nur völlig haltloses Störfeuer und du solltest das einfach ignorieren. Wir leben leider in einem Zeitalter wo jeder Tütenclown jeden Schwachsinn behaupten kann und durch das Internet auch noch eine größere Verbreitung erreicht.
Vielleicht ist es aber auch einfach nur der wiederauferstandene Kryptochef Detlef Granzow (persönlich), der seine fabelhafte Vollbit-Verschlüsselung mit dieser neu-entdeckten, modernen Programmiersprache ›C‹ umgestrickt hat. Dann will ich nichts gesagt haben.
Heut wird "Crypto" eigendlich meist mit den Cryptowährungen wie Bitcoin uä.in Verbindung gebracht. Da muß man aufpassen.
C (und C++ ) ist ja ein Hochspracheassembler, der "einigermaßen"
portable Programme auf verschiedenen Maschinen ermöglicht.
Als viele Cryptoalgorithmen in den 70'iger Jahren entwickelt wurden, war C eine hypermoderne Sprache. Bruce Scneier, Diffi Hellmann ( hab ich das richtig geschrieben?) und andere hatten damals ihre Hoch-zeit.
In Schneiers Büchern sind alle Algos in C implementiert, auch die Russen impementierten ihren Standard GOST in C.
Da man in C viele Freiheiten hat, sind fast alle Algos ic C implementiert, etwa Bibliotheken zum Verarbeiten riesengroßer Zahlen, zur Faktorisierung von Primzahlen und Anderes, die zum Beispiel in BASIC oder Fortran nur sehr schwer oder gar nicht implementierbar wären.
Vielleicht kommt das angesprochhene "Gerücht" daher?
Denis Ritchie war Co-Autor einer Studie im Jahre 1978, die eine "neue" Methode des Bruchs der US-Chiffrie-Maschine M-209 beschrieb. Dieses Paper wurde (angeblich) von der NSA unter Verschluss gehalten.
Die Russen und auch die Stasi der DDR haben sich natürlich mit Cryptografie beschäftigt.
Die DDR hatte da ne Niederlassung in Grünheide, wo Progs entwickelt wurden, die dann auf den Rechnern in der Köenicker Wuhlheide auf dem Großrechner dann die "Zahlenelse" befeuerten. Auch Dekodierproggys wurden dann da in C entwickelt.
Heut wird "Crypto" eigendlich meist mit den Cryptowährungen wie Bitcoin
uä.in Verbindung gebracht.
Ja, von Clowns. Der große Rest weiß, dass das nur ein winziger Teil des
großen Ganzen ist.
Lotta schrieb:
hab ich das richtig geschrieben?)
Noch nicht einmal Ansatzweise. Außerdem interessiert der mit KI-slop
angereicherte Sermon hier nicht im Geringsten.
Upps!!
Dann war also mein Urgroßvater, aus dessen Aufzeichnungen und Büchern aus unserer Bibliothek ich dieses Wissen hab eine KI? Man, das wußte ich ja gar nicht!
Woher weißt Du das mein Opa ne KI war?, Warst Du dabei? ;--)
Heut wird "Crypto" eigendlich meist mit den Cryptowährungen wie Bitcoin
uä.in Verbindung gebracht.
Die Dinger heißen so, weil kryptografische Algorithmen benutzt werden, übrigens in der Regel altbekannte wie SHA-256 und ECDSA. Und die meisten dieser Algorithmen sind heutzutage überwiegend in C implementiert -- wobei Rust mittlerweile deutlich aufzuholen scheint.
C (und C++ ) ist ja ein Hochspracheassembler,
Naja, hüstel...
der "einigermaßen"
portable Programme auf verschiedenen Maschinen ermöglicht.
Als viele Cryptoalgorithmen in den 70'iger Jahren entwickelt wurden, war
C eine hypermoderne Sprache. Bruce Scneier, Diffi Hellmann ( hab ich das
richtig geschrieben?) und andere hatten damals ihre Hoch-zeit.
Als C ca. 1972 veröffentlicht wurde, da war Bruce Schneier gerade 9 Jahre alt. Erst 1985 begann er sein Studium und 9 Jahre später, 1994, ist dann sein Standardwerk "Applied Cryptography" erschienen. Das trägt übrigens den Unterritel "Protocols, Algorithms and Source Code in C", daher wäre es doch verwunderlich, wenn er Code in Assembler, Pascal oder Algol zeigen würde. :-)
C ist fast überall verfüg- und einbindbar, und erlaubt die Erzeugung eines äußerst hardwarenahen, performanten Code. Zudem läßt sich auch optimierter Assemblercode leicht einbinden. Die meisten Betriebssystemkernels sind in C geschrieben, übrigens aus ähnlichen Gründen wie hoher Performance und einer hohen Kontrolle über die genutzten Hardwareressourcen. Außerdem bietet C bestimmte Features, die bei Kryptoalgorithmen nützlich oder gar notwendig sind: Bitmanipulationen und Integers ohne Vorzeichen, um zwei Beispiele zu nennen. C bietet sich für Kryptografie daher einfach besser an, und aus ganz ähnlichen Gründen heute auch Rust.
Aber, und das ist ja die in diesem Thread gestellte Frage: hat C einen "Krypto-Hintergrund", wie der andere Teilnehmer das so standhaft behauptet? Ich lese aus den bisherigen Antworten nicht, daß jemand diese Aussagen unterstützen würde. Daß der Siegeszug von C gleichzeitig mit der Entwicklung vieler Kryptoalgorithmen stattfand, und C gut zur Kryptografie paßt, kann die Aussage des Teilnehmers IMHO auch nicht seriös begründen.
die meisten dieser Algorithmen sind heutzutage überwiegend in C
implementiert
Die sind in so ziemlich allen Sprachen implementiert, die aktuell im Einsatz sind. Bei Java und Go weiß ich es mit Sicherheit. Vielleicht habe ich dich missverstanden und du meintest, dass sie initial in C implementiert wurden (?)
Daß der Siegeszug von C gleichzeitig mit der Entwicklung vieler
Kryptoalgorithmen stattfand, und C gut zur Kryptografie paßt, kann die
Aussage des Teilnehmers IMHO auch nicht seriös begründen.
bereits seit einigen Monaten erklärt mir ein Teilnehmer dieses Forums
immer wieder gerne, daß die Programmiersprache C etwas habe, das er
"Krypto-Hintergründe von C" nennt. Nun kenne ich C zwar bereits seit
ungefähr vierzig Jahren zumindest brauchbar und nutze regelmäßig auch
Kryptografie, jedoch ist mir nichts bekannt, das sich als
"Krypto-Hintergund von C" bezeichnen ließe.
Zum Beispiel die vielen Sicherheitsprogramme, die in C geschrieben sind?
Prinzipiell habe ich nichts gegen Bildungskratern bei Leuten. Dann aber gleich panisch werden und mit Beleidigungen um sich zu werfen - oder mit Empörungen - was versprichst du dir davon? oder noch anders: Wovor hast du überhaupt Angst?
die meisten dieser Algorithmen sind heutzutage überwiegend in C
implementiert
Die sind in so ziemlich allen Sprachen implementiert, die aktuell im
Einsatz sind. Bei Java und Go weiß ich es mit Sicherheit.
Stimmt, das sind überwiegend Nachimplementierungen dessen, was zuvor in OpenSSL und Co entwickelt worden ist. Neue Algorithmen sehe ich bisher (noch?) weder in Java noch in Go, oder weißt Du da mehr?
Letztlich sind die 68000er ja auch untergegangen, gerade weil sie nicht
so einfach auf Hardware-Ebene programmiert werden können, und weil die
Kompatibilität nicht so gut wie beim Intel funktionierte.
In C gibt es bei den in crypto algo's oft verwendeten zyklischen shifts ("circular shifts") "Fallstricke".
Da zur Zeit der Definition dieser Sprache die Prozessoren hinsichtlich der Rotationsbefehle uneinheitlich waren, hat man keinen speziellen Operator definiert (wie bspw '>>>'), Source-technisch muss man sich diese Bit-rotation aus mehreren bitwise Op's zusammenbasteln.
Es ist wohl auch von der -O Stufe abhängig, ob das so effizient wie möglich (also falls von der jeweiligen CPU unterstütz ROR oder ROL) kompiliert wird.
Eigentlich ist es schwer verständlich, warum dieser Thread überhaupt eröffnet wurde. Die Antworten dazu gibt ja schon die KI recht ausführlich, wenn genug nachgefragt wird.
Die Maschinennähe von C spielt durchaus eine Rolle, weil damit auch Schutzmechanismen realsiert werden können, die mit anderen Sprachen nicht möglich sind.
Eigentlich ist es schwer verständlich, warum dieser Thread überhaupt
eröffnet wurde. Die Antworten dazu gibt ja schon die KI recht
ausführlich, wenn genug nachgefragt wird.
Dann solltest Du Deine KI bedeutend mehr nachfragen, bevor Du den Mist hier ins Forum kopierst.