Enkel tvåvägskrypering över nätverk i C++

Permalänk
Medlem

Enkel tvåvägskrypering över nätverk i C++

Goddag!
Jag håller på med ett nätverksprogram och jag skulle vilja kryptera datan som skickas.
Man vill ju inte att bodström ska läsa allt
Språket jag använder är då C++ och det behöver inte vara någon hightech-kryptering utan det främsta med det är att det ska vara simpelt.

Så, vad ska jag använda mig av?

Visa signatur

Into the Web Browser for iPhone, http://www.intothewebbrowser.com/

Permalänk
Medlem
Permalänk
Medlem

snabbt och väldigt enkelt http://en.wikipedia.org/wiki/RC4

Visa signatur

"Sleep is one of those funny things about being a human being" - Marshall Brain
"Mike broke the hubble, Mike broke the hubble" - Mystery Science Theater 3000
"Det finns inget som kan kallas skrot!" säger Mulle Meck, "bara gamla saker som går att använda på nya sätt. Rulla ut och rulla på."

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Power
snabbt och väldigt enkelt http://en.wikipedia.org/wiki/RC4

Väldigt osäkert också ..

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av MagnusL
Väldigt osäkert också ..

"och det behöver inte vara någon hightech-kryptering utan det främsta med det är att det ska vara simpelt."

Visa signatur

"Sleep is one of those funny things about being a human being" - Marshall Brain
"Mike broke the hubble, Mike broke the hubble" - Mystery Science Theater 3000
"Det finns inget som kan kallas skrot!" säger Mulle Meck, "bara gamla saker som går att använda på nya sätt. Rulla ut och rulla på."

Permalänk
Medlem

Den här kanske, eller varianten XTEA. Den sägs ju vara ganska hyffsad också.

http://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm

//C

Permalänk
Medlem

Jag skulle föreslå TEA http://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm eller XTEA http://en.wikipedia.org/wiki/XTEA
Lätt att implementera och funkar riktigt bra.

EDIT: Aldrig får man vara först

Visa signatur

There is no end to the infinite number of stupid things that could be done on a Turing complete system.

Permalänk
Medlem

oggee: Använd OpenSSL eller Crypto++ och skit i att implementera en egen version av någon algorithm.

Permalänk
Medlem

Varför ska han inte implementera en egen version av en algorithm? Han kommar troligen att lära sig en massa på det!

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av nystan
Varför ska han inte implementera en egen version av en algorithm? Han kommar troligen att lära sig en massa på det!

Det ska vara simpelt och jag vill hålla ett visst tempo på arbetet annars kan det bli rätt tråkigt och då brukar det dö ut för mig. Jag vill inte "hänga upp mig" på en sådan sak som en krypteringsalgoritm.

Vet ni några tutorials etc som handlar om hur man använder openssl i C++?

Jag kör linux och har openssl inne och då är frågan om det är inbyggt i G++?

Visa signatur

Into the Web Browser for iPhone, http://www.intothewebbrowser.com/

Permalänk
Medlem

Tja jag har enbart jobbat med matrixSSL och openssl. openssl dokumentationen suger så jag skulle rekomendera matrixssl, de har även färdiga exempel man kan titta på.

Om du skall ha multiplex i/o så kan dock openssl vara o föredra, då den delen ej var så bra dokumenterat i matrixssl.

Linuxjournal har en bra guide för programmering med openssl du kan titta på, har för mig de även har exmepel med multiplex i/o.

Sen vad jag vet så finns det enbart C bibliotek för openssl/matrixssl.

Sen så svårighetsgraden är väll vad man gör det till, om man enbart rippar koden rakt av från exemplen så är det ju ej så svårt, men om man skall sätta sig in i hur allt fungerar så blir det MYCKET svårare.

Visa signatur

sega arkad maskin med 2 analoga joyar 16 knappar, 30" monitor. Neo geo 6 slotars som dunkar ski**n ur din PC!

Permalänk
Medlem

Jag skulle egentligen bara vilja ha två funktioner, en encrypt(key, string) och en decrypt(key, string) typ.

Jag hittade inte så mycket om C-biblioteket på openssls hemsida. Det finns alltså inga riktiga kanske oberoende tutorials?

Visa signatur

Into the Web Browser for iPhone, http://www.intothewebbrowser.com/

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av oggee
Jag skulle egentligen bara vilja ha två funktioner, en encrypt(key, string) och en decrypt(key, string) typ.

Jag hittade inte så mycket om C-biblioteket på openssls hemsida. Det finns alltså inga riktiga kanske oberoende tutorials?

Ett exempel med Blowfish-CBC

http://www.faqs.org/docs/gazette/encryption.html

Permalänk
Glömsk

Blowfish, RC4, (X)TEA etc tror jag är en dålig idé om du inte använder dessa tillsammans med någon form av public-key-baserad key exchange. Annars faller hela systemet med nyckeln. OpenSSL kanske är träligt att använda, men det är nog lika bra att bita i det sura äpplet och lära sig.

Visst, om du enbart kommer använda programmet tillsammans med några vänner som i förväg kommer överrens om en nyckel så kanske du kan köra enbart Blowfish eller nån annan symetrisk algoritm. Hade du däremot tänkt automatisera nyckelöverföringen så duger inte detta.

Visa signatur

...man is not free unless government is limited. There's a clear cause and effect here that is as neat and predictable as a law of physics: As government expands, liberty contracts.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Psionicist
Blowfish, RC4, (X)TEA etc tror jag är en dålig idé om du inte använder dessa tillsammans med någon form av public-key-baserad key exchange. Annars faller hela systemet med nyckeln. OpenSSL kanske är träligt att använda, men det är nog lika bra att bita i det sura äpplet och lära sig.

Visst, om du enbart kommer använda programmet tillsammans med några vänner som i förväg kommer överrens om en nyckel så kanske du kan köra enbart Blowfish eller nån annan symetrisk algoritm. Hade du däremot tänkt automatisera nyckelöverföringen så duger inte detta.

Därför använder man Diffie-Hellman som finns inbyggt i OpenSSL.

Permalänk
Medlem

Här finns massa mat nyttig info och exempel kod som kan hjälpa till en bit med openssl.

http://www.linuxjournal.com/article/4822

Visa signatur

sega arkad maskin med 2 analoga joyar 16 knappar, 30" monitor. Neo geo 6 slotars som dunkar ski**n ur din PC!