1,353 research outputs found

    Linear cryptanalysis of pseudorandom functions

    Get PDF
    RelatĂłrio de projeto de pesquisa.In this paper, we study linear relations propagating across block ciphers from the key input to the ciphertext (for a fixed plaintext block). This is a usual setting of a one-way function, used for instance in modes of operation such as KFB (key feedback). We instantiate the block cipher with the full 16-round DES and s2s^2-DES, 10-round LOKI91 and 24-round Khufu, for which linear relations with high bias are well known. Other interesting targets include the full 8.5-round IDEA and PES ciphers for which high bias linear relations exist under the assumption of weak keys. Consequences of these findings impact the security of modes of operation such as KFB and of pseudorandom number/bit generators. These analyses were possible due to the linear structure and the poor diffusion of the key schedule algorithms. These findings shall motivate carefull (re)design of current and future key schedule algorithms

    Communication-Efficient Probabilistic Algorithms: Selection, Sampling, and Checking

    Get PDF
    Diese Dissertation behandelt drei grundlegende Klassen von Problemen in Big-Data-Systemen, fĂŒr die wir kommunikationseffiziente probabilistische Algorithmen entwickeln. Im ersten Teil betrachten wir verschiedene Selektionsprobleme, im zweiten Teil das Ziehen gewichteter Stichproben (Weighted Sampling) und im dritten Teil die probabilistische KorrektheitsprĂŒfung von Basisoperationen in Big-Data-Frameworks (Checking). Diese Arbeit ist durch einen wachsenden Bedarf an Kommunikationseffizienz motiviert, der daher rĂŒhrt, dass der auf das Netzwerk und seine Nutzung zurĂŒckzufĂŒhrende Anteil sowohl der Anschaffungskosten als auch des Energieverbrauchs von Supercomputern und der Laufzeit verteilter Anwendungen immer weiter wĂ€chst. Überraschend wenige kommunikationseffiziente Algorithmen sind fĂŒr grundlegende Big-Data-Probleme bekannt. In dieser Arbeit schließen wir einige dieser LĂŒcken. ZunĂ€chst betrachten wir verschiedene Selektionsprobleme, beginnend mit der verteilten Version des klassischen Selektionsproblems, d. h. dem Auffinden des Elements von Rang kk in einer großen verteilten Eingabe. Wir zeigen, wie dieses Problem kommunikationseffizient gelöst werden kann, ohne anzunehmen, dass die Elemente der Eingabe zufĂ€llig verteilt seien. Hierzu ersetzen wir die Methode zur Pivotwahl in einem schon lange bekannten Algorithmus und zeigen, dass dies hinreichend ist. Anschließend zeigen wir, dass die Selektion aus lokal sortierten Folgen – multisequence selection – wesentlich schneller lösbar ist, wenn der genaue Rang des Ausgabeelements in einem gewissen Bereich variieren darf. Dies benutzen wir anschließend, um eine verteilte PrioritĂ€tswarteschlange mit Bulk-Operationen zu konstruieren. SpĂ€ter werden wir diese verwenden, um gewichtete Stichproben aus Datenströmen zu ziehen (Reservoir Sampling). Schließlich betrachten wir das Problem, die global hĂ€ufigsten Objekte sowie die, deren zugehörige Werte die grĂ¶ĂŸten Summen ergeben, mit einem stichprobenbasierten Ansatz zu identifizieren. Im Kapitel ĂŒber gewichtete Stichproben werden zunĂ€chst neue Konstruktionsalgorithmen fĂŒr eine klassische Datenstruktur fĂŒr dieses Problem, sogenannte Alias-Tabellen, vorgestellt. Zu Beginn stellen wir den ersten Linearzeit-Konstruktionsalgorithmus fĂŒr diese Datenstruktur vor, der mit konstant viel Zusatzspeicher auskommt. Anschließend parallelisieren wir diesen Algorithmus fĂŒr Shared Memory und erhalten so den ersten parallelen Konstruktionsalgorithmus fĂŒr Aliastabellen. Hiernach zeigen wir, wie das Problem fĂŒr verteilte Systeme mit einem zweistufigen Algorithmus angegangen werden kann. Anschließend stellen wir einen ausgabesensitiven Algorithmus fĂŒr gewichtete Stichproben mit ZurĂŒcklegen vor. Ausgabesensitiv bedeutet, dass die Laufzeit des Algorithmus sich auf die Anzahl der eindeutigen Elemente in der Ausgabe bezieht und nicht auf die GrĂ¶ĂŸe der Stichprobe. Dieser Algorithmus kann sowohl sequentiell als auch auf Shared-Memory-Maschinen und verteilten Systemen eingesetzt werden und ist der erste derartige Algorithmus in allen drei Kategorien. Wir passen ihn anschließend an das Ziehen gewichteter Stichproben ohne ZurĂŒcklegen an, indem wir ihn mit einem SchĂ€tzer fĂŒr die Anzahl der eindeutigen Elemente in einer Stichprobe mit ZurĂŒcklegen kombinieren. Poisson-Sampling, eine Verallgemeinerung des Bernoulli-Sampling auf gewichtete Elemente, kann auf ganzzahlige Sortierung zurĂŒckgefĂŒhrt werden, und wir zeigen, wie ein bestehender Ansatz parallelisiert werden kann. FĂŒr das Sampling aus Datenströmen passen wir einen sequentiellen Algorithmus an und zeigen, wie er in einem Mini-Batch-Modell unter Verwendung unserer im Selektionskapitel eingefĂŒhrten Bulk-PrioritĂ€tswarteschlange parallelisiert werden kann. Das Kapitel endet mit einer ausfĂŒhrlichen Evaluierung unserer Aliastabellen-Konstruktionsalgorithmen, unseres ausgabesensitiven Algorithmus fĂŒr gewichtete Stichproben mit ZurĂŒcklegen und unseres Algorithmus fĂŒr gewichtetes Reservoir-Sampling. Um die Korrektheit verteilter Algorithmen probabilistisch zu verifizieren, schlagen wir Checker fĂŒr grundlegende Operationen von Big-Data-Frameworks vor. Wir zeigen, dass die ÜberprĂŒfung zahlreicher Operationen auf zwei „Kern“-Checker reduziert werden kann, nĂ€mlich die PrĂŒfung von Aggregationen und ob eine Folge eine Permutation einer anderen Folge ist. WĂ€hrend mehrere AnsĂ€tze fĂŒr letzteres Problem seit geraumer Zeit bekannt sind und sich auch einfach parallelisieren lassen, ist unser Summenaggregations-Checker eine neuartige Anwendung der gleichen Datenstruktur, die auch zĂ€hlenden Bloom-Filtern und dem Count-Min-Sketch zugrunde liegt. Wir haben beide Checker in Thrill, einem Big-Data-Framework, implementiert. Experimente mit absichtlich herbeigefĂŒhrten Fehlern bestĂ€tigen die von unserer theoretischen Analyse vorhergesagte Erkennungsgenauigkeit. Dies gilt selbst dann, wenn wir hĂ€ufig verwendete schnelle Hash-Funktionen mit in der Theorie suboptimalen Eigenschaften verwenden. Skalierungsexperimente auf einem Supercomputer zeigen, dass unsere Checker nur sehr geringen Laufzeit-Overhead haben, welcher im Bereich von 2 %2\,\% liegt und dabei die Korrektheit des Ergebnisses nahezu garantiert wird

    Distributed String Sorting Algorithms

    Get PDF

    \u3ci\u3eDyslexia\u3c/i\u3e, a new remarkable genus of pleasing fungus beetles (Coleoptera: Erotylidae: Erotylinae) from the Andes

    Get PDF
    Dyslexia Skelley and Gasca-Álvarez, new genus (Coleoptera: Erotylidae: Erotylinae: Erotylini), is described and illustrated. The genus is comprised of four new species, all described by Skelley and Gasca-Álvarez: D. belamyi, D. dathomirria, D. pulcricolor, and D. tomasi. The unique broad head structures of this genus are characterized and compared with other genera. Problems associated with the taxonomy of Erotylini are discussed. Resumen. Se describe y se ilustra a Dyslexia Skelley y Gasca-Álvarez, nuevo gĂ©nero (Coleoptera: Erotyli­dae: Erotylinae: Erotylini). El gĂ©nero estĂĄ formado por cuatro especies nuevas, todas descritas por Skelley y Gasca-Álvarez: D. belamyi, D. dathomirria, D. pulcricolor, y D. tomasi. Las estructuras Ășnicas de la cabeza ancha de este gĂ©nero son caracterizadas y comparadas con otros gĂ©neros. Se discuten problemas relacionados con la taxonomĂ­a de Erotylini

    Robust Scalable Sorting

    Get PDF
    Sortieren ist eines der wichtigsten algorithmischen Grundlagenprobleme. Es ist daher nicht verwunderlich, dass Sortieralgorithmen in einer Vielzahl von Anwendungen benötigt werden. Diese Anwendungen werden auf den unterschiedlichsten GerĂ€ten ausgefĂŒhrt -- angefangen bei Smartphones mit leistungseffizienten Multi-Core-Prozessoren bis hin zu Supercomputern mit Tausenden von Maschinen, die ĂŒber ein Hochleistungsnetzwerk miteinander verbunden sind. SpĂ€testens seitdem die Single-Core-Leistung nicht mehr signifikant steigt, sind parallele Anwendungen in unserem Alltag nicht mehr wegzudenken. Daher sind effiziente und skalierbare Algorithmen essentiell, um diese immense VerfĂŒgbarkeit von (paralleler) Rechenleistung auszunutzen. Diese Arbeit befasst sich damit, wie sequentielle und parallele Sortieralgorithmen auf möglichst robuste Art maximale Leistung erzielen können. Dabei betrachten wir einen großen Parameterbereich von EingabegrĂ¶ĂŸen, Eingabeverteilungen, Maschinen sowie Datentypen. Im ersten Teil dieser Arbeit untersuchen wir sowohl sequentielles Sortieren als auch paralleles Sortieren auf Shared-Memory-Maschinen. Wir prĂ€sentieren In-place Parallel Super Scalar Samplesort (IPS⁎o), einen neuen vergleichsbasierten Algorithmus, der mit beschrĂ€nkt viel Zusatzspeicher auskommt (die sogenannte „in-place” Eigenschaft). Eine wesentliche Erkenntnis ist, dass unsere in-place-Technik die Sortiergeschwindigkeit von IPS⁎o im Vergleich zu Ă€hnlichen Algorithmen ohne in-place-Eigenschaft verbessert. Bisher wurde die Eigenschaft, mit beschrĂ€nkt viel Zusatzspeicher auszukommen, eher mit Leistungseinbußen verbunden. IPS⁎o ist außerdem cache-effizient und fĂŒhrt O(n/tlog⁥n)O(n/t\log n) Arbeitsschritte pro Thread aus, um ein Array der GrĂ¶ĂŸe nn mit tt Threads zu sortieren. ZusĂ€tzlich berĂŒcksichtigt IPS⁎o SpeicherlokalitĂ€t, nutzt einen Entscheidungsbaum ohne Sprungvorhersagen und verwendet spezielle Partitionen fĂŒr Elemente mit gleichem SchlĂŒssel. FĂŒr den Spezialfall, dass ausschließlich ganzzahlige SchlĂŒssel sortiert werden sollen, haben wir das algorithmische Konzept von IPS⁎o wiederverwendet, um In-place Parallel Super Scalar Radix Sort (IPSÂČRa) zu implementieren. Wir bestĂ€tigen die Performance unserer Algorithmen in einer umfangreichen experimentellen Studie mit 21 State-of-the-Art-Sortieralgorithmen, sechs Datentypen, zehn Eingabeverteilungen, vier Maschinen, vier Speicherzuordnungsstrategien und EingabegrĂ¶ĂŸen, die ĂŒber sieben GrĂ¶ĂŸenordnungen variieren. Einerseits zeigt die Studie die robuste LeistungsfĂ€higkeit unserer Algorithmen. Andererseits deckt sie auf, dass viele konkurrierende Algorithmen Performance-Probleme haben: Mit IPS⁎o erhalten wir einen robusten vergleichsbasierten Sortieralgorithmus, der andere parallele in-place vergleichsbasierte Sortieralgorithmen fast um den Faktor drei ĂŒbertrifft. In der ĂŒberwiegenden Mehrheit der FĂ€lle ist IPS⁎o der schnellste vergleichsbasierte Algorithmus. Dabei ist es nicht von Bedeutung, ob wir IPS⁎o mit Algorithmen vergleichen, die mit beschrĂ€nkt viel Zusatzspeicher auskommen, Zusatzspeicher in der GrĂ¶ĂŸenordnung der Eingabe benötigen, und parallel oder sequentiell ausgefĂŒhrt werden. IPS⁎o ĂŒbertrifft in vielen FĂ€llen sogar konkurrierende Implementierungen von Integer-Sortieralgorithmen. Die verbleibenden FĂ€lle umfassen hauptsĂ€chlich gleichmĂ€ĂŸig verteilte Eingaben und Eingaben mit SchlĂŒsseln, die nur wenige Bits enthalten. Diese Eingaben sind in der Regel „einfach” fĂŒr Integer-Sortieralgorithmen. Unser Integer-Sorter IPSÂČRa ĂŒbertrifft andere Integer-Sortieralgorithmen fĂŒr diese Eingaben in der ĂŒberwiegenden Mehrheit der FĂ€lle. Ausnahmen sind einige sehr kleine Eingaben, fĂŒr die die meisten Algorithmen sehr ineffizient sind. Allerdings sind Algorithmen, die auf diese EingabegrĂ¶ĂŸen abzielen, in der Regel fĂŒr alle anderen Eingaben deutlich langsamer. Im zweiten Teil dieser Arbeit untersuchen wir skalierbare Sortieralgorithmen fĂŒr verteilte Systeme, welche robust in Hinblick auf die EingabegrĂ¶ĂŸe, hĂ€ufig vorkommende SortierschlĂŒssel, die Verteilung der SortierschlĂŒssel auf die Prozessoren und die Anzahl an Prozessoren sind. Das Resultat unserer Arbeit sind im Wesentlichen vier robuste skalierbare Sortieralgorithmen, mit denen wir den gesamten Bereich an EingabegrĂ¶ĂŸen abdecken können. Drei dieser vier Algorithmen sind neue, schnelle Algorithmen, welche so implementiert sind, dass sie nur einen geringen Zusatzaufwand benötigen und gleichzeitig unabhĂ€ngig von „schwierigen” Eingaben robust skalieren. Es handelt sich z.B. um „schwierige” Eingaben, wenn viele gleiche Elemente vorkommen oder die Eingabeelemente in Hinblick auf ihre SortierschlĂŒssel ungĂŒnstig auf die Prozessoren verteilt sind. Bisherige Algorithmen fĂŒr mittlere und grĂ¶ĂŸere EingabegrĂ¶ĂŸen weisen ein unzumutbar großes Kommunikationsvolumen auf oder tauschen unverhĂ€ltnismĂ€ĂŸig oft Nachrichten aus. FĂŒr diese EingabegrĂ¶ĂŸen beschreiben wir eine robuste, mehrstufige Verallgemeinerung von Samplesort, die einen brauchbaren Kompromiss zwischen dem Kommunikationsvolumen und der Anzahl ausgetauschter Nachrichten darstellt. Wir ĂŒberwinden diese bisher unvereinbaren Ziele mittels einer skalierbaren approximativen Splitterauswahl sowie eines neuen Datenumverteilungsalgorithmus. Als eine Alternative stellen wir eine Verallgemeinerung von Mergesort vor, welche den Vorteil von perfekt ausbalancierter Ausgabe hat. FĂŒr kleine Eingaben entwerfen wir eine Variante von Quicksort. Mit wenig Zusatzaufwand vermeidet sie das Problem ungĂŒnstiger Elementverteilungen und hĂ€ufig vorkommender SortierschlĂŒssel, indem sie schnell qualitativ hochwertige Splitter auswĂ€hlt, die Elemente zufĂ€llig den Prozessoren zuweist und einer Duplikat-Behandlung unterzieht. Bisherige praktische AnsĂ€tze mit polylogarithmischer Latenz haben entweder einen logarithmischen Faktor mehr Kommunikationsvolumen oder berĂŒcksichtigen nur gleichverteilte Eingaben ohne mehrfach vorkommende SortierschlĂŒssel. FĂŒr sehr kleine Eingaben schlagen wir einen einfachen sowie schnellen, jedoch arbeitsineffizienten Algorithmus mit logarithmischer Latenzzeit vor. FĂŒr diese Eingaben sind bisherige effiziente AnsĂ€tze nur theoretische Algorithmen, die meist unverhĂ€ltnismĂ€ĂŸig große konstante Faktoren haben. FĂŒr die kleinsten Eingaben empfehlen wir die Daten zu sortieren, wĂ€hrend sie an einen einzelnen Prozessor geschickt werden. Ein wichtiger Beitrag dieser Arbeit zu der praktischen Seite von Algorithm Engineering ist die Kommunikationsbibliothek RangeBasedComm (RBC). Mit RBC ermöglichen wir eine effiziente Umsetzung von rekursiven Algorithmen mit sublinearer Laufzeit, indem sie skalierbare und effiziente Kommunikationsfunktionen fĂŒr Teilmengen von Prozessoren bereitstellt. Zuletzt prĂ€sentieren wir eine umfangreiche experimentelle Studie auf zwei Supercomputern mit bis zu 262144 Prozessorkernen, elf Algorithmen, zehn Eingabeverteilungen und EingabegrĂ¶ĂŸen variierend ĂŒber neun GrĂ¶ĂŸenordnungen. Mit Ausnahme von den grĂ¶ĂŸten EingabegrĂ¶ĂŸen ist diese Arbeit die einzige, die ĂŒberhaupt Sortierexperimente auf Maschinen dieser GrĂ¶ĂŸe durchfĂŒhrt. Die RBC-Bibliothek beschleunigt die Algorithmen teilweise drastisch – einen konkurrierenden Algorithmus sogar um mehr als zwei GrĂ¶ĂŸenordnungen. Die Studie legt dar, dass unsere Algorithmen robust sind und gleichzeitig konkurrierende Implementierungen leistungsmĂ€ĂŸig deutlich ĂŒbertreffen. Die Konkurrenten, die man normalerweise betrachtet hĂ€tte, stĂŒrzen bei „schwierigen” Eingaben sogar ab

    Parallel text index construction

    Get PDF
    In dieser Dissertation betrachten wir die parallele Konstruktion von Text-Indizes. Text-Indizes stellen Zusatzinformationen ĂŒber Texte bereit, die Anfragen hinsichtlich dieser Texte beschleunigen können. Ein Beispiel hierfĂŒr sind Volltext-Indizes, welche fĂŒr eine effiziente Phrasensuche genutzt werden, also etwa fĂŒr die Frage, ob eine Phrase in einem Text vorkommt oder nicht. Diese Dissertation befasst sich hauptsĂ€chlich, aber nicht ausschließlich mit der parallelen Konstruktion von Text-Indizes im geteilten und verteilten Speicher. Im ersten Teil der Dissertation betrachten wir Wavelet-Trees. Dabei handelt es sich um kompakte Indizes, welche Rank- und Select-Anfragen von binĂ€ren Alphabeten auf Alphabete beliebiger GrĂ¶ĂŸe verallgemeinern. Im zweiten Teil der Dissertation betrachten wir das Suffix-Array, den am besten erforschten Text-Index ĂŒberhaupt. Das Suffix-Array enthĂ€lt die Startpositionen aller lexikografisch sortierten Suffixe eines Textes, d.h., wir möchten alle Suffixe eines Textes sortieren. Oft wird das Suffix-Array um das Longest-Common-Prefix-Array (LCP-Array) erweitert. Das LCP-Array enthĂ€lt die LĂ€nge der lĂ€ngsten gemeinsamen PrĂ€fixe zweier lexikografisch konsekutiven Suffixe. Abschließend nutzen wir verteilte Suffix- und LCP-Arrays, um den Distributed-Patricia-Trie zu konstruieren. Dieser erlaubt es uns, verschiedene Phrase-Anfragen effizienter zu beantworten, als wenn wir nur das Suffix-Array nutzen.The focus of this dissertation is the parallel construction of text indices. Text indices provide additional information about a text that allow to answer queries faster. Full-text indices for example are used to efficiently answer phrase queries, i.e., if and where a phrase occurs in a text. The research in this dissertation is focused on but not limited to parallel construction algorithms for text indices in both shared and distributed memory. In the first part, we look at wavelet trees: a compact index that generalizes rank and select queries from binary alphabets to alphabets of arbitrary size. In the second part of this dissertation, we consider the suffix array---one of the most researched text indices.The suffix array of a text contains the starting positions of the text's lexicographically sorted suffixes, i.e., we want to sort all its suffixes. Finally, we use the distributed suffix arrays (and LCP arrays) to compute distributed Patricia tries. This allows us to answer different phrase queries more efficiently than using only the suffix array

    SoK: Security Evaluation of SBox-Based Block Ciphers

    Get PDF
    Cryptanalysis of block ciphers is an active and important research area with an extensive volume of literature. For this work, we focus on SBox-based ciphers, as they are widely used and cover a large class of block ciphers. While there have been prior works that have consolidated attacks on block ciphers, they usually focus on describing and listing the attacks. Moreover, the methods for evaluating a cipher\u27s security are often ad hoc, differing from cipher to cipher, as attacks and evaluation techniques are developed along the way. As such, we aim to organise the attack literature, as well as the work on security evaluation. In this work, we present a systematization of cryptanalysis of SBox-based block ciphers focusing on three main areas: (1) Evaluation of block ciphers against standard cryptanalytic attacks; (2) Organisation and relationships between various attacks; (3) Comparison of the evaluation and attacks on existing ciphers

    Block Ciphers: Analysis, Design and Applications

    Get PDF
    In this thesis we study cryptanalysis, applications and design of secret key block ciphers. In particular, the important class of Feistel ciphers is studied, which has a number of rounds, where in each round one applies a cryptographically weak function
    • 

    corecore