Şcoala de vară, 12-15 iulie 2016, Sinaia

În cadrul proiectului Horizon 2020 se va organiza la Sinaia o şcoală de vară, EBSIS Summer School on Distributed Event Based Systems and Related Topics 2016,  între 12-15 iulie a.c. ce va avea ca tematică sisteme distribuite şi securitate. Evenimentul va fi organizat de Univ. „Al. I. Cuza” Iaşi, Univ. Neuchatel, Elveţia şi Univ. Tehnică din Desden, Germania.

Câteva dintre tematicile ce vor fi atinse pot fi găsite aici, legate de securitate, scalabilitate şi sisteme distribuite.

Studenţii doctoranzi sunt invitaţi să prezinte tematica tezei la care lucrează în cadrul unor sesiuni dedicate.

Împrejurimile sunt deosebit de frumoase, fiind situată în Carpaţii Meridionali. Costurile pentru cazare şi masă, pentru un număr limitat de participanţi afiliaţi uneia din universităţile ce organizează evenimentul va fi suportat în întregime de proiectul EBSIS (cazarea se va face în acest caz în aceeaşi locaţie în care se va ţine această şcoală de vară).

Vă aşteptăm cu drag să participaţi alături de noi!

Criptanaliza sistemului de criptare Vigenère

Blaise de Vigenere În cadrul criptosistemului Vigenère am putea face maparea între literele alfabetului şi numerele de la 0 la 25. Cuvintele peste această mulţime le vom putea forma folosi aceste numere. Vom avea nevoie şi de o cheie de criptare de lungime l minimum 1, peste mulţimea aceeaşi mulţime.

Criptând un text în clar m cu cheia k, vom obţine un text criptat pe care îl vom nota cu c.

Algoritmul de obţinere a criptotextului c presupune criptarea literă cu literă a textului iniţial astfel: se ia litera din textul clar (adică numărul corespunzător literei) de pe poziţia i şi se adună cu litera din cheie de pe poziţia (i-1) mod (l+1) iar după adunare se reduce totul modulo 26, câte litere avem în alfabet. Şi se aplică acest algoritm cu fiecare literă din mesajul iniţial, de la 1 la l.

Dacă citim caracterele din textul criptat din n în n, vom obţine un şir care va avea proprietăţile unui criptotext obţinut prin metoda substituţiei având ca pas de shiftare litera din cheia k de pe poziţia de pe care am început extragerea literelor din criptotext.

De exemplu:

n = 6; k = 8; iar poziţia de început în acest exemplu este tot 6.

aksiwnrh|cztpwjql|curntivm|gjtustwg|elgozpza|qbdhriym|duekflfi|otozshft|cbrrswks|ztcrbbo

şirul obţinut este njitpilhwb.

Pornind de la această observaţie, pentru a face criptanaliza acestui criptosistem ne vom putea folosi de câteva tehnici aplicabile pe criptotext criptate prin substituţie monoalfabetică, cum ar fi frecvenţa literelor, a digramelor, a trigramelor dar acest pas îl putem face după ce cunoaştem lungimea cheii de criptare k. Pentru a depista această lungime vom putea folosi un alt parametru statistic, care de asemenea are o valoare diferită şi specifică de la o limbă la alta, iar acest parametru se numeşte indice de coincidenţă.

Ce reprezintă şi cum ne poate fi de folos?

Îl vom nota IC(m) şi cuantifică probabilitatea ca două caractere extrase la întâmplare dintr-un text să coincidă. Calculul se face pornind de la numărul de apariţii ale simbolului respectiv în textul (limba) în cauză.

Ceea ce este demn de remarcat este faptul că acest indice de coincidenţă nu se modifică în urma criptării prin substituţie. Astfel, procedeul de aflare a lungimii cheii se foloseşte de calcularea indicelui de coincidenţă pentru şiruri de caractere construite din criptotext ca mai sus. Se începe de la n = 1, se calculează IC(şir), se compară valoarea rezultată cu valoarea standard pentru limba în care este scris textul în clar. Dacă diferenţa este semnificativă, se continuă incrementarea lui n până când valoarea indicelui de coincidenţă pentru şirul obţinut este foarte apropiată de valoarea standard a limbii respective.

După ce am aflat lungimea cheii urmează procesul de decriptare utilizând frecvenţa literelor. Vom folosi acelaşi procedeu de creare a şirurilor pe care le putem considera acum ca fiind criptate prin substituţie monoalfabetică şi, ca urmare, vom afla literele din cheie rând pe rând folosind statisticile limbii în care a fost scris mesajul original.

Mult succes la criptanaliză!

P.S. Vă voi da un text criptat cu criptosistemul Viegenère pentru a creşte interesul studierii acestui subiect. J

Detaliated agenda – 24 sept. 2015

Summer School on Secure and Trustworthy Computing
9.30 – 10.30 Virgil Gligor, CMU: Establishing and Maintaining Root of Trust on Commodity Computer Systems

Suppose that a trustworthy program must be booted on a commodity system that may contain persistent malware. For example, a formally verified micro-kernel, micro-hypervisor, or a subsystem obtained from a trustworthy provider must be booted on a computer system that runs Windows, Linux, or Android applications. Establishing root of trust in a commodity system assures the user that either the system is in a malware-free state in which the trustworthy-program boot takes place or the presence of malware is discovered, with high probability. Obtaining such assurance is challenging because persistent malware can survive in system state across repeated secure- and trusted-boot operations. These operations do not have malware-unmediated access to device memories that are not directly addressable by CPU instructions or trusted platform modules (TPMs); e.g., local memories of peripherals (e.g., keyboards, printers), network interface cards, disk controllers. To date, concrete assurance for root-of-trust establishment has not been obtained on real systems that scale to large configurations.

Establishing root of trust makes all persistent malware ephemeral and forces the adversary to repeat the malware-insertion attack, perhaps at some added cost. Nevertheless, some malware-controlled software can always be assumed to exist in commodity operating systems and applications. The inherent size and complexity of their operating systems and applications (aka the “giants”) render them vulnerable to successful adversary attacks. In contrast, small and simple software components with rather limited function and high-assurance layered security properties (aka the “wimps”) can be resistant to adversary attacks.

Maintaining root of trust assures a user that a commodity computer’s wimps are isolated from, and safely co-exist with, adversary-controlled giants. To demonstrate wimp isolation, accurate and complete adversary definitions must be provided. Without such definitions, (in)security cannot be measured, risks of use cannot be accurately quantified, and system recovery from penetration events cannot have lasting value. However, isolation cannot guarantee wimps’ survival in commodity markets, since wimps trade basic system services to achieve small attack surfaces, diminish adversary capabilities, and weaken attack strategies. To survive, secure wimps must use services of, or compose with, insecure giants. This appears to be “paradoxical:” wimps can counter all adversary attacks but survive only if they use giants’ adversary-controlled services from which they have to defend themselves.

I this seminar, I will first illustrate mechanisms that support root-of-trust establishment via “verifiable boot” operations that can be repeated by a user at any time without having to detect never-seen-before malware. Verifiable boot does not need to use and manage any secrets or TPMs to protect chains of software measurements. Second, I will present a method to define a wimp’s adversary accurately and completely using a structure found in cryptographic protocols. A consequence of such definitions is the ability to produce partial orders on adversary attacks. Third, I will present secure wimp composition with giants, via examples of experimental systems designed and implemented at CMU CyLab.

10.30 -11.00 Coffee break

11.00 – 12.30 VN. Asokan, Aalto University: Challenges in Realizing Secure Cloud Storage Services

Cloud storage services are ubiquitous and widely used. To date, no popular cloud-storage service offers client-side encryption of stored data as a default functionality. One reason for this is that while client-side encryption improves privacy of user data, doing so naively will conflict with other objectives. In this lecture, I will discuss two such conflicts: (a) with the storage provider’s business requirement for cross-user deduplication (storing only one copy when many users uplaod the same file); and (b) with the end user usability requirement of accessing cloud storage from multiple devices. I will discuss our recent work on a secure deduplication scheme which does not require the presence of independent third parties as a solution to ‘a’ and OmniShare as a solution to ‘b’.

12.30 – 13.30 Lunch

13.30 – 15.00 Lucas Davi and Ahmad-Reza Sadeghi, TU Darmstadt: Modern Runtime Exploitation Techniques and Defenses

Memory corruption attacks exploit program bugs in modern software programs to compromise computing platforms. Although these attacks are known for several decades, they still pose a severe threat today’s software programs. These attacks can be applied to a variety of architectures starting from Desktop PCs and mobile devices to tiny embedded devices employed in sensors. In particular, code-reuse attacks such as return-oriented programming have significantly raised the sophistication of memory corruption attacks since they induce malicious actions based on only existing benign code. Fortunately, the security community including industrial efforts by Google and Microsoft have recently introduced a variety of defenses. On the other hand, attackers quickly adapted and proposed new attack techniques leading to a continuing arms race. In this lecture, we will provide an overview on state-of-the-art exploitation techniques and defenses against these attacks. In addition, the students will learn the practical concepts of runtime exploitation based on a hands-on lab.

15.00 – 15.30 Coffee break

15.30 – 17.00 Radu Sion, Stony Brook University: Security, Energy, and Karma in Modern Clouds

  • PART I

In this talk we explore the economics of cloud computing in general
and outsourcing your virtual machines in particular. We identify cost
trade-offs and postulate the key principles of outsourcing that define
when cloud deployment is appropriate and why. We also briefly touch on
several main cyber-security aspects that impact the appeal of clouds.
The results may surprise and are especially interesting from a cost
and energy point of view.

  • PART II

“Green” and its “low power” cousin are the new hot spots in computing.
In cloud data centers, at scale, ideas of deploying low-power ARM
architectures or even large numbers of extremely “wimpy” nodes [5, 33]
seem increasingly appealing. Skeptics on the other hand maintain that we
cannot get more than what we pay for and no free lunches can be had. In
this white paper we explore these theses and provide insights into the
power-performance tradeoff at scale for ARM architectures. We quantify
the cost/performance ratio precisely-enough to allow for a broader
conclusion. We then offer an intuition as to why this may still hold in
2030.

Summer School on Secure and Trustworthy Computing

Program 24 sept. 2015
9.30 – 10.30 Virgil Gligor, CMU: Establishing and Maintaining Root of Trust on Commodity Computer Systems

10.30 -11.00 Coffee break

11.00 – 12.30 VN. Asokan, Aalto University: Challenges in Realizing Secure Cloud Storage Services

12.30 – 13.30 Lunch

13.30 – 15.00 Lucas Davi and Ahmad-Reza Sadeghi, TU Darmstadt: Modern Runtime Exploitation Techniques and Defenses

15.00 – 15.30 Coffee break

15.30 – 17.00 
Radu Sion, Stony Brook University: Security, Energy, and Karma in Modern Clouds

Evenimente speciale

Luna aceasta vor avea loc două evenimente deosebite, în domeniul Criptografiei, la Bucureşti.

Primul, un eveniment bianual, ajuns la a treia ediţie, 21-23 septembrie, RCD2105, iar al doilea, o şcoala de vară, cu profesori de renume, Summer School on Secure and Trustworthy Computing.

Vă vom ţine la curent cu noutăţile. Până atunci, Toate bune şi spor în activitate!

TFG

Criptografia şi surâsul soarelui de dimineaţă…

E foarte interesant…  Cum poţi să ajuţi oamenii prin criptografie? 🙂

Vă invit să interveniţi cu sugestii… mult aşteptate de mine pentru că mă frământă acest subiect.

E interesant ce am tot auzit dintr-o parte şi din alta, că, dacă vrei atingi obiectivul pe care ţi l-ai propus, mai întâi trebuie să ajuţi suficienţi oameni să-şi atingă obiectivele lor.

Vrând-nevrând, sunt pusă în situaţia de a ajuta şi eu pe alţii să înveţe criptografia 🙂 şi e puţin ciudat că abia o învăţ şi eu acum… Dar am mai auzit ceva, şi anume că cea mai puternică metodă de a învăţa, este să explici altora 🙂

Nu pot decât să spun MULŢUMESC!!! şi să mă pun pe treabă 🙂

Aşa că de cum, din când în când, vă puteţi aştepta să vă explic, în câteva cuvinte, care îmi doresc să fie clare şi la obiect, subiectul de criptografie pe care îl studiez.

Sper să fie o călătorie frumoasă de pe urma căreia să avem cu toţii de câştigat şi să rămânem cu amintiri frumoase ale creşterii noastre împreună! 🙂

Până la următorul articol vă doresc toate cele bune şi spor la studiu!

TFG

Noțiuni introductive

Criptografia este unul dintre domeniile pe care, pentru a le aprofunda până la a deveni un bun criptolog, trebuie sa te dezvolți multilateral, în sensul că vei avea nevoie de cunoștințe dintre multitudine de domenii.

Și sa începem prin a defini câțiva termeni de bază cu care ne vom întâlni frecvent:

  • Criptologie. Este domeniul ce cuprinde două mari ramuri:

Criptografia și Criptanaliza.

  • Criptografia se ocupă cu cifrarea textelor. Deci având un text inteligibil, il codifică cu scopul de a păstra confidențialitatea mesajului, astfel încât doar destinatarul acelui mesaj să îl poată descifra.
  • Criptanaliza este complementară Criptografiei și se ocupă de analiza sistemelor criptografice, tocmai pentru a asigura securitatea folosirii sistemelor de criptare  (pe care le vom numi de-aici înainte criptosisteme. Cu alte cuvinte Criptanaliza caută dacă există sau nu „portițe” prin care un eventual „intrus” (cu îi vom numi pe cei ce doresc să obțină informația care circulă criptat, fără ca aceștia să fie destinatarii acelor mesaje) să poată avea acces la informație, ne fiind autorizat.

ABE – Criptare Bazată pe Atribute

Attribute-based Encription este un concept relativ nou în domeniul criptografiei (2014) ce permite decriptarea unui mesaj doar acelor entităţi care sunt „autorizate”. De exemplu, într-o instituţie există diverse funcţii pe care le deţin angajaţii: contabil, secretar, manager, director general etc.

În funcţie de „gradele” pe care le deţine un angajat, poate sau nu avea acces la datele criptate.

Mai matematic vorbind, dacă am o mulţime de atribute {1,2,3,4}, din această mulţime pot crea submulţimi pe care să le desemnez ca fiind autorizate, pe care le vom numi „structuri de acces„. Să zicem că avem ca structuri de acces {1,2}, {1,3} şi {3,4}. Oricare dintre aceste submulţimi vor putea reface mesajul iniţial prin decriptare, dar, de exemplu submulţimea {2,4} sau {1,4} nu vor putea decripta mesajul.

Astfel, de exemplu dacă deţii funcţia x şi ai şi anumite atribuţiuni: a, b, c, să zicem că acestea sunt codificate în atributele 1 şi 2, şi astfel, tu deţinând 2 atribute care formează o structură de acces, înseamnă că poţi avea acces la decriptarea mesajului.

Vom continua în viitorul articol cu descrierea celor două tipuri de ABE: cel bazat pe politica cheilor, key-policy ABE, şi cel care are la bază politica criptotextului, ciphertext-policy ABE.

Până atunci, toate cele bune!

🙂