9 research outputs found

    Short reachability networks

    Full text link
    We investigate a generalisation of permutation networks. We say a sequence T=(T1,,T)T=(T_1,\dots,T_\ell) of transpositions in SnS_n forms a tt-reachability network if for every choice of tt distinct points x1,,xt{1,,n}x_1, \dots, x_t\in \{1,\dots,n\}, there is a subsequence of TT whose composition maps jj to xjx_j for every 1jt1\leq j\leq t. When t=nt=n, any permutation in SnS_n can be created and TT is a permutation network. Waksman [JACM, 1968] showed that the shortest permutation networks have length about nlog2nn \log_2n. In this paper, we investigate the shortest tt-reachability networks. Our main result settles the case of t=2t=2: the shortest 22-reachability network has length 3n/22\lceil 3n/2\rceil-2 . For fixed tt, we give a simple randomised construction which shows there exist tt-reachability networks using (2+ot(n))n(2+o_t(n))n transpositions. We also study the case where all transpositions are of the form (1,)(1, \cdot), separating 2-reachability from the related probabilistic variant of 2-uniformity. Many interesting questions are left open.Comment: 13 pages, 1 figur

    Sampling and Certifying Symmetric Functions

    Get PDF

    Perfectly Oblivious (Parallel) RAM Revisited, and Improved Constructions

    Get PDF
    Oblivious RAM (ORAM) is a technique for compiling any RAM program to an oblivious counterpart, i.e., one whose access patterns do not leak information about the secret inputs. Similarly, Oblivious Parallel RAM (OPRAM) compiles a {\it parallel} RAM program to an oblivious counterpart. In this paper, we care about ORAM/OPRAM with {\it perfect security}, i.e., the access patterns must be {\it identically distributed} no matter what the program\u27s memory request sequence is. In the past, two types of perfect ORAMs/OPRAMs have been considered: constructions whose performance bounds hold {\it in expectation} (but may occasionally run more slowly); and constructions whose performance bounds hold {\it deterministically} (even though the algorithms themselves are randomized). In this paper, we revisit the performance metrics for perfect ORAM/OPRAM, and show novel constructions that achieve asymptotical improvements for all performance metrics. Our first result is a new perfectly secure OPRAM scheme with O(log3N/loglogN)O(\log^3 N/\log \log N) {\it expected} overhead. In comparison, prior literature has been stuck at O(log3N)O(\log^3 N) for more than a decade. Next, we show how to construct a perfect ORAM with O(log3N/loglogN)O(\log^3 N/\log \log N) {\it deterministic} simulation overhead. We further show how to make the scheme parallel, resulting in an perfect OPRAM with O(log4N/loglogN)O(\log^4 N/\log \log N) {\it deterministic} simulation overhead. For perfect ORAMs/OPRAMs with deterministic performance bounds, our results achieve {\it subexponential} improvement over the state-of-the-art. Specifically, the best known prior scheme incurs more than N\sqrt{N} deterministic simulation overhead (Raskin and Simkin, Asiacrypt\u2719); moreover, their scheme works only for the sequential setting and is {\it not} amenable to parallelization. Finally, we additionally consider perfect ORAMs/OPRAMs whose performance bounds hold with high probability. For this new performance metric, we show new constructions whose simulation overhead is upper bounded by O(log3/loglogN)O(\log^3 /\log\log N) except with negligible in NN probability, i.e., we prove high-probability performance bounds that match the expected bounds mentioned earlier

    Low-Memory Algorithms for Online and W-Streaming Edge Coloring

    Full text link
    For edge coloring, the online and the W-streaming models seem somewhat orthogonal: the former needs edges to be assigned colors immediately after insertion, typically without any space restrictions, while the latter limits memory to sublinear in the input size but allows an edge's color to be announced any time after its insertion. We aim for the best of both worlds by designing small-space online algorithms for edge-coloring. We study the problem under both (adversarial) edge arrivals and vertex arrivals. Our results significantly improve upon the memory used by prior online algorithms while achieving an O(1)O(1)-competitive ratio. In particular, for nn-node graphs with maximum vertex-degree Δ\Delta under edge arrivals, we obtain an online O(Δ)O(\Delta)-coloring in O~(nΔ)\tilde{O}(n\sqrt{\Delta}) space. This is also the first W-streaming edge-coloring algorithm for O(Δ)O(\Delta)-coloring in sublinear memory. All prior works either used linear memory or ω(Δ)\omega(\Delta) colors. We also achieve a smooth color-space tradeoff: for any t=O(Δ)t=O(\Delta), we get an O(Δ(logΔ)2t)O(\Delta (\log \Delta)^2 t)-coloring in O~(nΔ/t)\tilde{O}(n\sqrt{\Delta/t}) space, improving upon the state of the art that used O~(nΔ/t)\tilde{O}(n\Delta/t) space for the same number of colors. The improvements stem from extensive use of random permutations that enable us to avoid previously used colors. Most of our algorithms can be derandomized and extended to multigraphs, where edge coloring is known to be considerably harder than for simple graphs.Comment: 32 pages, 1 figur

    Reverse Cycle Walking and Its Applications

    Get PDF
    We study the problem of constructing a block-cipher on a possibly-strange set S\mathcal S using a block-cipher on a larger set T\mathcal T. Such constructions are useful in format-preserving encryption, where for example the set S\mathcal S might contain valid 9-digit social security numbers while T\mathcal T might be the set of 30-bit strings. Previous work has solved this problem using a technique called cycle walking, first formally analyzed by Black and Rogaway. Assuming the size of S\mathcal S is a constant fraction of the size of T\mathcal T, cycle walking allows one to encipher a point xSx \in \mathcal S by applying the block-cipher on T\mathcal T a small /expected/ number of times and O(N)O(N) times in the worst case, where N=TN = |\mathcal T|, without any degradation in security. We introduce an alternative to cycle walking that we call /reverse cycle walking/, which lowers the worst-case number of times we must apply the block-cipher on T\mathcal T from O(N)O(N) to O(logN)O(\log N). Additionally, when the underlying block-cipher on T\mathcal T is secure against q=(1ϵ)Nq = (1-\epsilon)N adversarial queries, we show that applying reverse cycle walking gives us a cipher on S\mathcal S secure even if the adversary is allowed to query all of the domain points. Such fully-secure ciphers have been the the target of numerous recent papers

    Distributed & Scalable Oblivious Sorting and Shuffling

    Get PDF
    Existing oblivious systems offer robust security by concealing memory access patterns, but they encounter significant scalability and performance challenges. Recent efforts to enhance the practicality of these systems involve embedding oblivious computation, e.g., oblivious sorting and shuffling, within Trusted Execution Environments (TEEs). For instance, oblivious sort has been heavily utilized: in Oblix (S&P\u2718), when oblivious indexes are created and accessed; in Snoopy\u27s high-throughput oblivious key-value (SOSP\u2721) during initialization and when the input requests are deduplicated and prepared for delivery; in Opaque (NSDI\u2717) for all the proposed oblivious SQL operators; in the state-of-the-art non-foreign key oblivious join approach (PVLDB\u2720). Additionally, oblivious sort/shuffle find applications in Signal\u27s commercial solution for contact discovery, anonymous Google\u27s Key Transparency, Searchable Encryption, software monitoring, and differentially private federated learning with user privacy. In this work, we address the scalability bottleneck of oblivious sort and shuffle by re-designing these approaches to achieve high efficiency in distributed multi-enclave environments. First, we propose a multi-threaded bitonic sort optimized for the distributed setting, making it the most performant oblivious sort for small number of enclaves (up to 4). For larger numbers of enclaves, we propose a novel oblivious bucket sort, which improves data locality and network consumption and outperforms our optimized distributed bitonic-sort by up to 5-6x. To the best of our knowledge, these are the first distributed oblivious TEE-based sorting solutions. For reference, we are able to sort 2 GiB of data in 1 second and 128 GiB in 53.4 seconds in a multi-enclave test. A fundamental building block of our oblivious bucket-sort is an oblivious shuffle that improves the prior state-of-the-art result (CCS\u2722) by up to 9.5x in the distributed multi-enclave setting---interestingly it is better by 10% even in the single-enclave/multi-thread setting

    Fast Fully Oblivious Compaction and Shuffling

    Get PDF
    Several privacy-preserving analytics frameworks have been proposed that use trusted execution environments (TEEs) like Intel SGX. Such frameworks often use compaction and shuffling as core primitives. However, due to advances in TEE side-channel attacks, these primitives, and the applications that use them, should be _fully oblivious_; that is, perform instruction sequences and memory accesses that do not depend on the secret inputs. Such obliviousness would eliminate the threat of leaking private information through memory or timing side channels, but achieving it naively can result in a significant performance cost. In this work, we present fast, fully oblivious algorithms for compaction and shuffling. We implement and evaluate our designs to show that they are practical and outperform the state of the art. Our oblivious compaction algorithm, ORCompact, is always faster than the best alternative and can yield up to a 5x performance improvement. For oblivious shuffling, we provide two novel algorithms: ORShuffle and BORPStream. ORShuffle outperforms prior fully oblivious shuffles in all experiments, and it provides the largest speed increases—up to 1.8x—when shuffling a large number of small items. BORPStream outperforms all other algorithms when shuffling a large number of large items, with a speedup of up to 1.4x in such cases. It can obtain even larger performance improvements in application settings where the items to shuffle arrive incrementally over time, obtaining a speedup of as much as 4.2x. We additionally give parallel versions of all of our algorithms, prove that they have low parallel step complexity, and experimentally show a 5–6x speedup on an 8-core processor. Finally, ours is the first work with the explicit goal of ensuring full obliviousness of complex functionalities down to the implementation level. To this end, we design Fully Oblivious Assembly Verifier (FOAV), a tool that verifies the binary has no secret-dependent conditional branches

    Random permutations using switching networks

    No full text
    We consider the problem of designing a simple, oblivious scheme to generate (almost) random permutations. We use the concept of switching networks and show that almost every switching network of logarithmic depth can be used to almost randomly permute any set of (1-ε) n elements with any ε > 0 (that is, gives an almost (1-ε) n$-wise independent permutation). Furthermore, we show that the result still holds for every switching network of logarithmic depth that has some special expansion properties, leading to an explicit construction of such networks. Our result can be also extended to an explicit construction of a switching network of depth O(log2n) and with O(n log n) switches that almost randomly permutes any set of n elements. We also discuss basic applications of these results in cryptography. Our results are obtained using a non-trivial coupling approach to study mixing times of Markov chains which allows us to reduce the problem to some random walk-like problem on expanders
    corecore