🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.programming
12 messages
12 total messages Started by Maciej Sobczak Tue, 14 Jan 2020 20:44
Lekka biblioteka krypto?
#216774
Author: Maciej Sobczak
Date: Tue, 14 Jan 2020 20:44
9 lines
1671 bytes
Zna ktoś jakąś lekką bibliotekę kryptograficzną dla C lub C++?
Czyli taką, która pozwala np. wyliczyć hash albo zaszyfrować/odszyfrować coś znanym algorytmem albo może też wygenerować klucze do tegoż.

Istotnymi parametrami są ilość kodu, jego szeroko rozumiana "hackowalność" i brak zależności od innych bibliotek.

Znam i używałem BeeCrypt. Poza licencją jest OK. Czy są jakieś alternatywy?

-- 
Maciej Sobczak * http://www.inspirel.com
Re: Lekka biblioteka krypto?
#216773
Author: godek.maciek
Date: Tue, 14 Jan 2020 21:45
21 lines
2488 bytes
W dniu wtorek, 14 stycznia 2020 21:44:34 UTC+1 użytkownik Maciej Sobczak napisał:
> Zna ktoś jakąś lekką bibliotekę kryptograficzną dla C lub C++?
> Czyli taką, która pozwala np. wyliczyć hash albo zaszyfrować/odszyfrować coś znanym algorytmem albo może też wygenerować klucze do tegoż.
> 
> Istotnymi parametrami są ilość kodu, jego szeroko rozumiana "hackowalność" i brak zależności od innych bibliotek.
> 
> Znam i używałem BeeCrypt. Poza licencją jest OK. Czy są jakieś alternatywy?

Ja zawsze wygugliwałem sobie w sieci poszczególne algorytmy, i z reguły udawało się coś znaleźć.

Jeżeli idzie o bardziej systematyczny zbiór bibliotek, to swego czasu znalazłem gościa, który utrzymuje coś takiego dla języka Scheme:

https://github.com/weinholt/industria
https://github.com/weinholt/hashing

kod jest raczej czytelny, a w razie czego można pojechać jakimś kompilatorem Scheme->C (np. Chicken albo Gambit) i zobaczyć, czy efekt będzie zadowalający.

Szybkie zapytanie na GitHubie zwróciło mi też np. coś takiego (w C++):
https://github.com/JamisHoo/Cryptographic-Algorithms

ale nie używałem.
Re: Lekka biblioteka krypto?
#216790
Author: Borneq
Date: Tue, 14 Jan 2020 21:52
13 lines
1709 bytes
W dniu 2020-01-14 o 21:44, Maciej Sobczak pisze:
> Zna ktoś jakąś lekką bibliotekę kryptograficzną dla C lub C++?
> Czyli taką, która pozwala np. wyliczyć hash albo zaszyfrować/odszyfrować coś znanym algorytmem albo może też wygenerować klucze do tegoż.
> 
> Istotnymi parametrami są ilość kodu, jego szeroko rozumiana "hackowalność" i brak zależności od innych bibliotek.
> 
> Znam i używałem BeeCrypt. Poza licencją jest OK. Czy są jakieś alternatywy?
> 
Choćby moje tłumaczenie z Pascala: https://github.com/borneq/DCPCryptCpp
powinna działać, przy czym ma dodaną jeszcze funkcję sha3 w 
implementacji , która
- jest czytelna
- działa szybko
Re: Lekka biblioteka krypto?
#216776
Author: M.M.
Date: Wed, 15 Jan 2020 01:11
14 lines
2063 bytes
On Tuesday, January 14, 2020 at 9:44:34 PM UTC+1, Maciej Sobczak wrote:
> Zna ktoś jakąś lekką bibliotekę kryptograficzną dla C lub C++?
> Czyli taką, która pozwala np. wyliczyć hash albo zaszyfrować/odszyfrować coś znanym algorytmem albo może też wygenerować klucze do tegoż.
> 
> Istotnymi parametrami są ilość kodu, jego szeroko rozumiana "hackowalność" i brak zależności od innych bibliotek.
> 
> Znam i używałem BeeCrypt. Poza licencją jest OK. Czy są jakieś alternatywy?
> 
> -- 
> Maciej Sobczak * http://www.inspirel.com

A po prostu openssl?

Pozdrawiam
Re: Lekka biblioteka krypto?
#216789
Author: M.M.
Date: Wed, 15 Jan 2020 01:15
11 lines
1809 bytes
On Tuesday, January 14, 2020 at 9:44:34 PM UTC+1, Maciej Sobczak wrote:
> Zna ktoś jakąś lekką bibliotekę kryptograficzną dla C lub C++?
> Czyli taką, która pozwala np. wyliczyć hash 

Do samych hashy qt się nadaje:

https://doc.qt.io/qt-5/qcryptographichash.html

Szyfrowania w qt nie widziałem.

Pozdrawiam
Re: Lekka biblioteka krypto?
#216775
Author: Maciej Sobczak
Date: Wed, 15 Jan 2020 08:17
12 lines
2086 bytes
> kod jest raczej czytelny, a w razie czego można pojechać jakimś kompilatorem Scheme->C

To jest w ogóle ciekawe zagadnienie, bo nie jest jasne, co się ma wtedy stać z licencją.

Tak czy inaczej, po pierwszym rzucie oka wygląda jakby Scheme miał wbudowaną arytmetykę dużych liczb a ta biblioteka już na tym polega. Co zrobi translator?

> Szybkie zapytanie na GitHubie

Tylko widzisz - zapytanie na GitHubie to ja też umiem. Natomiast nie wiem, co o takim znalezisku myśleć. Dlatego pytam na grupie, bo opinia na podstawie doświadczenia jest cenniejsza, niż wynik z indeksu.

-- 
Maciej Sobczak * http://www.inspirel.com
Re: Lekka biblioteka krypto?
#216791
Author: Maciej Sobczak
Date: Wed, 15 Jan 2020 08:38
9 lines
1679 bytes
> Choćby moje tłumaczenie z Pascala: https://github.com/borneq/DCPCryptCpp

Kod wygląda na fajny, czytelny i ogólnie przyjazny.
Ale widzę, że są tylko symetryczne algorytmy. Zgadza się?

A jak generować klucze? Jakimś zewnętrznym narzędziem?

-- 
Maciej Sobczak * http://www.inspirel.com
Re: Lekka biblioteka krypto?
#216785
Author: Maciej Sobczak
Date: Wed, 15 Jan 2020 08:48
9 lines
2166 bytes
> A po prostu openssl?

Nie kojarzy mi się z określeniem "lekka". :-)
To ma chodzić na mikrokontrolerze i ma tam nie dominować nad właściwą aplikacją. O ile w ogóle da się ją tak użyć.

Bo w szczególności to, co autor (jakiejkolwiek) biblioteki wyobrażał sobie na temat środowiska kompilacji to jest ogólnie nieprawda. Dlatego zależy mi na tym, żeby była "hackowalna", czyli jak najprostsza w rozszarpywaniu jej na kawałki i przeszczepianiu w inne miejsce. W tej kategorii najfajniej wyglądają BeeCrypt (ale ma trudną licencję) i właśnie Andrzejowe DCPCryptCpp (ale nie ma asymetrycznych algorytmów).

-- 
Maciej Sobczak * http://www.inspirel.com
Re: Lekka biblioteka krypto?
#216786
Author: M.M.
Date: Wed, 15 Jan 2020 10:30
28 lines
2921 bytes
On Wednesday, January 15, 2020 at 9:48:50 AM UTC+1, Maciej Sobczak wrote:
> > A po prostu openssl?
> 
> Nie kojarzy mi się z określeniem "lekka". :-)
> To ma chodzić na mikrokontrolerze i ma tam nie dominować nad właściwą aplikacją. O ile w ogóle da się ją tak użyć.
> 
> Bo w szczególności to, co autor (jakiejkolwiek) biblioteki wyobrażał sobie na temat środowiska kompilacji to jest ogólnie nieprawda. Dlatego zależy mi na tym, żeby była "hackowalna", czyli jak najprostsza w rozszarpywaniu jej na kawałki i przeszczepianiu w inne miejsce. W tej kategorii najfajniej wyglądają BeeCrypt (ale ma trudną licencję) i właśnie Andrzejowe DCPCryptCpp (ale nie ma asymetrycznych algorytmów).
> 
> -- 
> Maciej Sobczak * http://www.inspirel.com

Nie wiem, ale może nie odpuszczaj tak szybko OpenSSL.

https://www.avrfreaks.net/forum/openssl

Cytat:

[
Have a quick eye-over http://avr32linux.org/twiki/bin/...

Porting OpenSSL across hopefully is as easy as adding a --host=avr32-linux on the configure command but often that isn't the case.

Once it's compiled, install it to your AVR32 root fs (SD card, NFS etc.). This is most easily done my mounting your AVR32 root fs on your build machine and specifying the prefixes for make install as being in there.

Once that's all done, you're good to go! Code using OpenSSL shouldn't be different under the AVR32 so any example code you find around will be applicable.
]

Pozdrawiam
Re: Lekka biblioteka krypto?
#216792
Author: Borneq
Date: Wed, 15 Jan 2020 12:52
12 lines
1710 bytes
W dniu 2020-01-15 o 09:38, Maciej Sobczak pisze:
>> Choćby moje tłumaczenie z Pascala: https://github.com/borneq/DCPCryptCpp
> 
> Kod wygląda na fajny, czytelny i ogólnie przyjazny.
> Ale widzę, że są tylko symetryczne algorytmy. Zgadza się?
> 
> A jak generować klucze? Jakimś zewnętrznym narzędziem?
> 
To bardziej skomplikowana sprawa. Może użyć bibliotek (do tej pory nie 
używałem ich) SSL jak libeay32.dll czy ssleay32.dll pod Windows?
Bo tu trzeba by mieć i generator pseudolosowy i to mocny 
kryptograficznie i zgodność ze standardami.
Re: Lekka biblioteka krypto?
#216787
Author: Borneq
Date: Wed, 15 Jan 2020 13:00
24 lines
2887 bytes
W dniu 2020-01-15 o 09:48, Maciej Sobczak pisze:
>> A po prostu openssl?
> 
> Nie kojarzy mi się z określeniem "lekka". :-)
> To ma chodzić na mikrokontrolerze i ma tam nie dominować nad właściwą aplikacją. O ile w ogóle da się ją tak użyć.
> 
> Bo w szczególności to, co autor (jakiejkolwiek) biblioteki wyobrażał sobie na temat środowiska kompilacji to jest ogólnie nieprawda. Dlatego zależy mi na tym, żeby była "hackowalna", czyli jak najprostsza w rozszarpywaniu jej na kawałki i przeszczepianiu w inne miejsce. W tej kategorii najfajniej wyglądają BeeCrypt (ale ma trudną licencję) i właśnie Andrzejowe DCPCryptCpp (ale nie ma asymetrycznych algorytmów).
> 
Trzeba by jeszcze sprawdzić dokładnie licencje:
Tłumaczyłem z https://wiki.freepascal.org/DCPcrypt które ma właśnie 
licencję MIT, do tego włączyłem fajną obsługę sha3 (kiedyś miałem inną, 
powolną i mniej czytelną) z innego projektu i Argon2.
Może kiedyś jeszcze wezmę się aby napisać inną część biblioteki 
rozbudowaną o podpisy, ale tu:
- potrzeba źródła entropii
- musi być random bezpieczne kryptograficznie
- operacje na dużych liczbach, wykonuje to Boost, ale może dla prędkości 
trzeba by włączyć trochę kodu GMP, zarówno dla random jak i dla kluczy.
Dla RSA trzeba by sporo mieć kodu działąjącego na dużych liczbach, bo tu 
byłoby wiele typów operacji gdy szukamy liczb pierwszych.
Nie wiem za bardzo czy kryptografia krzywych eliptycznych nie powoduje, 
że kryptografia liczb pierwszych przestaje być potrzebna? Dla krzywych 
eliptycznych możemy działać na o wiele krótszych liczbach i chyba ma 
wszystkie właściwości asymetryczne?
Re: Lekka biblioteka krypto?
#216788
Author: M.M.
Date: Wed, 15 Jan 2020 13:12
32 lines
3630 bytes
On Wednesday, January 15, 2020 at 2:00:40 PM UTC+1, Borneq wrote:
> W dniu 2020-01-15 o 09:48, Maciej Sobczak pisze:
> >> A po prostu openssl?
> > 
> > Nie kojarzy mi się z określeniem "lekka". :-)
> > To ma chodzić na mikrokontrolerze i ma tam nie dominować nad właściwą aplikacją. O ile w ogóle da się ją tak użyć.
> > 
> > Bo w szczególności to, co autor (jakiejkolwiek) biblioteki wyobrażał sobie na temat środowiska kompilacji to jest ogólnie nieprawda. Dlatego zależy mi na tym, żeby była "hackowalna", czyli jak najprostsza w rozszarpywaniu jej na kawałki i przeszczepianiu w inne miejsce. W tej kategorii najfajniej wyglądają BeeCrypt (ale ma trudną licencję) i właśnie Andrzejowe DCPCryptCpp (ale nie ma asymetrycznych algorytmów).
> > 
> Trzeba by jeszcze sprawdzić dokładnie licencje:
> Tłumaczyłem z https://wiki.freepascal.org/DCPcrypt które ma właśnie 
> licencję MIT, do tego włączyłem fajną obsługę sha3 (kiedyś miałem inną, 
> powolną i mniej czytelną) z innego projektu i Argon2.
> Może kiedyś jeszcze wezmę się aby napisać inną część biblioteki 
> rozbudowaną o podpisy, ale tu:
> - potrzeba źródła entropii
> - musi być random bezpieczne kryptograficznie
> - operacje na dużych liczbach, wykonuje to Boost, ale może dla prędkości 
> trzeba by włączyć trochę kodu GMP, zarówno dla random jak i dla kluczy.
> Dla RSA trzeba by sporo mieć kodu działąjącego na dużych liczbach, bo tu 
> byłoby wiele typów operacji gdy szukamy liczb pierwszych.
> Nie wiem za bardzo czy kryptografia krzywych eliptycznych nie powoduje, 
> że kryptografia liczb pierwszych przestaje być potrzebna? Dla krzywych 
> eliptycznych możemy działać na o wiele krótszych liczbach i chyba ma 
> wszystkie właściwości asymetryczne?

I nie mogą to być byle jakie liczby pierwsze, poza oczywistym faktem że
muszą być duże, musi być  też miedzy nimi duży odstęp (są metody łamania
gdy między liczbami jest mały odstęp) i jeszcze kilka wymogów. Jakaś
pomyłka w tych szczegółach i algorytm szyfrujący jest podatny na łamanie.

Pozdrawiam
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads