How to create SystemVerilog verification environment?Sameh El-Ashry
Basic knowledge for the verification engineer to learn the art of creating SystemVerilog verification environment.
Starting from the specifications extraction till coverage closure.
HBM stands for high bandwidth memory and is a type of memory interface used in 3D-stacked DRAM (dynamic random access memory) in GPUs, as well as the server, machine-learning DSP , high-performance computing and networking and client space.
How to create SystemVerilog verification environment?Sameh El-Ashry
Basic knowledge for the verification engineer to learn the art of creating SystemVerilog verification environment.
Starting from the specifications extraction till coverage closure.
HBM stands for high bandwidth memory and is a type of memory interface used in 3D-stacked DRAM (dynamic random access memory) in GPUs, as well as the server, machine-learning DSP , high-performance computing and networking and client space.
Koreanizer : Statistical Machine Translation based Ro-Ko TransliteratorHONGJOO LEE
Koreanizer is Roman to Korean Transliterator (Back-Romanizer) based on Statistical Machine Translation technique with ngram language model, IBM alignment model for translation model and decoding algorithm.
This slide introducing Koreanizer and some techniques applied for the system for a session in PyCon KR '19 .
Andreas Zeller's keynote at the 1st Intl Fuzzing workshop 2022 at NDSS: https://fuzzingworkshop.github.io/program.html
Do you fuzz your own program, or do you fuzz someone else's program? The answer to this question has vast consequences on your view on fuzzing. Fuzzing someone else's program is the typical adverse "security tester" perspective, where you want your fuzzer to be as automatic and versatile as possible. Fuzzing your own code, however, is more like a traditional tester perspective, where you may assume some knowledge about the program and its context, but may also want to _exploit_ this knowledge - say, to direct the fuzzer to critical locations.
In this talk, I detail these differences in perspectives and assumptions, and highlight their consequences for fuzzer design and research. I also highlight cultural differences in the research communities, and what happens if you submit a paper to the wrong community. I close with an outlook into our newest frameworks, set to reconcile these perspectives by giving users unprecedented control over fuzzing, yet staying fully automatic if need be.
Bio: Andreas Zeller is faculty at the CISPA Helmholtz Center for Information Security and a professor for Software Engineering at Saarland University, both in Saarbrücken, Germany. His research on automated debugging, mining software archives, specification mining, and security testing has won several awards for its impact in academia and industry. Zeller is an ACM Fellow, an IFIP Fellow, an ERC Advanced Grant Awardee, and holds an ACM SIGSOFT Outstanding Research Award.
Task and Function is the basic component of a programming language. Even on hardware Verification , those task and function is used. Task ans function provides a short way to repeatedly use the same block of code many times, This presentation gives you the basic information about Task and Function in Verilog. For more information on this, kindly contact us.
Introduction to SOC Verification Fundamentals and System Verilog language coding. Explains concepts on Functional Verification methodologies used in industry like OVM, UVM
This is a custom GUI, which eases fixing violations either by adding buffer, cloning or sizing. Drop down menu item is created in ICC2 layout window. Desired terminals can be selected by dragging or adding points in rectilinear fashion and desired locations can be selected for adding new buffer.
Basics of Functional Verification - Arrow DevicesArrow Devices
Are you new to functional verification? Or do you need a refresher? This presentation takes you through the basics of functional verification - overall scope and process with examples. Also included are some tips on do's and don'ts!
Artificial Intelligence - A modern approach 3edRohanMistry15
Artificial Intelligence: A Modern Approach, 4th US ed.
Artificial Intelligence: A Modern Approach, 3e offers the most comprehensive, up-to-date introduction to the theory and practice of artificial intelligence. Number one in its field, this textbook is ideal for one or two-semester, undergraduate or graduate-level courses in Artificial Intelligence.
Dr. Peter Norvig, contributing Artificial Intelligence author and Professor Sebastian Thrun, a Pearson author are offering a free online course at Stanford University on artificial intelligence.
According to an article in The New York Times, the course on artificial intelligence is “one of three being offered experimentally by the Stanford computer science department to extend technology knowledge and skills beyond this elite campus to the entire world.” One of the other two courses, an introduction to database software, is being taught by Pearson author Dr. Jennifer Widom.
About the Author
Stuart Russell was born in 1962 in Portsmouth, England. He received his B.A. with first-class honours in physics from Oxford University in 1982, and his Ph.D. in computer science from Stanford in 1986. He then joined the faculty of the University of California at Berkeley, where he is a professor of computer science, director of the Center for Intelligent Systems, and holder of the Smith–Zadeh Chair in Engineering. In 1990, he received the Presidential Young Investigator Award of the National Science Foundation, and in 1995 he was cowinner of the Computers and Thought Award. He was a 1996 Miller Professor of the University of California and was appointed to a Chancellor’s Professorship in 2000. In 1998, he gave the Forsythe Memorial Lectures at Stanford University. He is a Fellow and former Executive Council member of the American Association for Artificial Intelligence. He has published over 100 papers on a wide range of topics in artificial intelligence. His other books include The Use of Knowledge in Analogy and Induction and (with Eric Wefald) Do the Right Thing: Studies in Limited Rationality.
Peter Norvig is currently Director of Research at Google, Inc., and was the director responsible for the core Web search algorithms from 2002 to 2005. He is a Fellow of the American Association for Artificial Intelligence and the Association for Computing Machinery. Previously, he was head of the Computational Sciences Division at NASA Ames Research Center, where he oversaw NASA’s research and development in artificial intelligence and robotics, and chief scientist at Junglee, where he helped develop one of the first Internet information extraction services. He received a B.S. in applied mathematics from Brown University and a Ph.D. in computer science from the University of California at Berkeley. He received the Distinguished Alumni and Engineering Innovation awards from Berkeley and the Exceptional Achievement Medal from NASA.
Koreanizer : Statistical Machine Translation based Ro-Ko TransliteratorHONGJOO LEE
Koreanizer is Roman to Korean Transliterator (Back-Romanizer) based on Statistical Machine Translation technique with ngram language model, IBM alignment model for translation model and decoding algorithm.
This slide introducing Koreanizer and some techniques applied for the system for a session in PyCon KR '19 .
Andreas Zeller's keynote at the 1st Intl Fuzzing workshop 2022 at NDSS: https://fuzzingworkshop.github.io/program.html
Do you fuzz your own program, or do you fuzz someone else's program? The answer to this question has vast consequences on your view on fuzzing. Fuzzing someone else's program is the typical adverse "security tester" perspective, where you want your fuzzer to be as automatic and versatile as possible. Fuzzing your own code, however, is more like a traditional tester perspective, where you may assume some knowledge about the program and its context, but may also want to _exploit_ this knowledge - say, to direct the fuzzer to critical locations.
In this talk, I detail these differences in perspectives and assumptions, and highlight their consequences for fuzzer design and research. I also highlight cultural differences in the research communities, and what happens if you submit a paper to the wrong community. I close with an outlook into our newest frameworks, set to reconcile these perspectives by giving users unprecedented control over fuzzing, yet staying fully automatic if need be.
Bio: Andreas Zeller is faculty at the CISPA Helmholtz Center for Information Security and a professor for Software Engineering at Saarland University, both in Saarbrücken, Germany. His research on automated debugging, mining software archives, specification mining, and security testing has won several awards for its impact in academia and industry. Zeller is an ACM Fellow, an IFIP Fellow, an ERC Advanced Grant Awardee, and holds an ACM SIGSOFT Outstanding Research Award.
Task and Function is the basic component of a programming language. Even on hardware Verification , those task and function is used. Task ans function provides a short way to repeatedly use the same block of code many times, This presentation gives you the basic information about Task and Function in Verilog. For more information on this, kindly contact us.
Introduction to SOC Verification Fundamentals and System Verilog language coding. Explains concepts on Functional Verification methodologies used in industry like OVM, UVM
This is a custom GUI, which eases fixing violations either by adding buffer, cloning or sizing. Drop down menu item is created in ICC2 layout window. Desired terminals can be selected by dragging or adding points in rectilinear fashion and desired locations can be selected for adding new buffer.
Basics of Functional Verification - Arrow DevicesArrow Devices
Are you new to functional verification? Or do you need a refresher? This presentation takes you through the basics of functional verification - overall scope and process with examples. Also included are some tips on do's and don'ts!
Artificial Intelligence - A modern approach 3edRohanMistry15
Artificial Intelligence: A Modern Approach, 4th US ed.
Artificial Intelligence: A Modern Approach, 3e offers the most comprehensive, up-to-date introduction to the theory and practice of artificial intelligence. Number one in its field, this textbook is ideal for one or two-semester, undergraduate or graduate-level courses in Artificial Intelligence.
Dr. Peter Norvig, contributing Artificial Intelligence author and Professor Sebastian Thrun, a Pearson author are offering a free online course at Stanford University on artificial intelligence.
According to an article in The New York Times, the course on artificial intelligence is “one of three being offered experimentally by the Stanford computer science department to extend technology knowledge and skills beyond this elite campus to the entire world.” One of the other two courses, an introduction to database software, is being taught by Pearson author Dr. Jennifer Widom.
About the Author
Stuart Russell was born in 1962 in Portsmouth, England. He received his B.A. with first-class honours in physics from Oxford University in 1982, and his Ph.D. in computer science from Stanford in 1986. He then joined the faculty of the University of California at Berkeley, where he is a professor of computer science, director of the Center for Intelligent Systems, and holder of the Smith–Zadeh Chair in Engineering. In 1990, he received the Presidential Young Investigator Award of the National Science Foundation, and in 1995 he was cowinner of the Computers and Thought Award. He was a 1996 Miller Professor of the University of California and was appointed to a Chancellor’s Professorship in 2000. In 1998, he gave the Forsythe Memorial Lectures at Stanford University. He is a Fellow and former Executive Council member of the American Association for Artificial Intelligence. He has published over 100 papers on a wide range of topics in artificial intelligence. His other books include The Use of Knowledge in Analogy and Induction and (with Eric Wefald) Do the Right Thing: Studies in Limited Rationality.
Peter Norvig is currently Director of Research at Google, Inc., and was the director responsible for the core Web search algorithms from 2002 to 2005. He is a Fellow of the American Association for Artificial Intelligence and the Association for Computing Machinery. Previously, he was head of the Computational Sciences Division at NASA Ames Research Center, where he oversaw NASA’s research and development in artificial intelligence and robotics, and chief scientist at Junglee, where he helped develop one of the first Internet information extraction services. He received a B.S. in applied mathematics from Brown University and a Ph.D. in computer science from the University of California at Berkeley. He received the Distinguished Alumni and Engineering Innovation awards from Berkeley and the Exceptional Achievement Medal from NASA.
Dec'2013 webinar from the EUCLID project on managing large volumes of Linked Data
webinar recording at https://vimeo.com/84126769 and https://vimeo.com/84126770
more info on EUCLID: http://euclid-project.eu/
Via Capgemini Consulting @CapgeminiConsul
BITCOIN
A Primer for Policymakers
BY JERRY BRITO AND ANDREA CASTILLO
Mercatus Center
George Mason University
3351 Fairfax Drive, 4th Floor
Arlington, VA 22201-4433
(703) 993-4930
mercatus.org
Bitcoin is the world’s first completely decentralized digital
currency.
Introduction of Bitcoin, explain for newbie and financial person, easy to understanding.
Language
English 99%
Thai 1% (only "Bitcoin in Thailand)
Agenda
- What is Bitcoin
- Bitcoin and Gold, The human economy evolved
- The Bitcoin bubble
- How to can get Bitcoins
- What is Bitcoin Mining
- Total Bitcoins in circulation
- Bitcoin Supply
- How long does it take to mine a single Bitcoin
- Bitcoin consumption power
- B-Commerce
- Silk Road Case
- Tulip Mania 2.0?
- Bitcoin in Thailand
- Reference
Cryptography is both an art and a science – the use of deception and mathematics, to hide, transmit, and receive data. This short course covers Cryptography as it relates to the CISSP certification. The full video course is located here: http://resources.infosecinstitute.com/cryptography-CISSP-use-of-cryptography
HUG_Ireland_Apache_Arrow_Tomer_Shiran John Mulhall
A presentation by Tomer Shiran, CEO of Dremio made to Hadoop User Group (HUG) Ireland on "Hadoop Summit Night" on April 12th, 2016. This presentation covers Apache Arrow in detail.
Slides for a college course at City College San Francisco. Based on "Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software", by Michael Sikorski and Andrew Honig; ISBN-10: 1593272901.
Instructor: Sam Bowne
Class website: https://samsclass.info/126/126_S17.shtml
Data structure and algorithm using javaNarayan Sau
This presentation created for people who like to go back to basics of data structure and its implementation. This presentation mostly helps B.Tech , Bsc Computer science students as well as all programmer who wants to develop software in core areas.
OBSCURE: Information Theoretic Oblivious and Verifiable Aggregation QueriesShantanu Sharma
Despite extensive research on cryptography, secure and efficient query processing over outsourced data remains an open challenge. We develop communication-efficient and information-theoretically secure algorithms for privacy-preserving aggregation queries using multi-party computation (MPC). Specifically, query processing techniques over secret-shared data outsourced by single or multiple database owners are developed. These algorithms allow a user to execute queries on the secret-shared database and also prevent the network and the (adversarial) clouds to learn the user’s queries, results, or the database. We further develop (non-mandatory) privacy-preserving result verification algorithms that detect malicious behaviors, and experimentally validate the efficiency of our approach over large datasets, the size of which prior approaches to secret-sharing or MPC systems have not scaled to.
Porting a Streaming Pipeline from Scala to RustEvan Chan
How we at Conviva ported a streaming data pipeline in months from Scala to Rust. What are the important human and technical factors in our port, and what did we learn?
Next-generation sequencing data format and visualization with ngs.plot 2015Li Shen
An introduction to the commonly used formats for the next-generation sequencing data. ngs.plot is a popular tool for the visualization and data mining of the NGS data.
OSDC 2016 - Chronix - A fast and efficient time series storage based on Apach...NETWAYS
How to store billions of time series points and access them within a few milliseconds? Chronix!
Chronix is a young but mature open source project that allows one for example to store about 15 GB (csv) of time series in 238 MB with average query times of 21 ms. Chronix is built on top of Apache Solr a bulletproof distributed NoSQL database with impressive search capabilities. In this code-intense session we show how Chronix achieves its efficiency in both respects by means of an ideal chunking, by selecting the best compression technique, by enhancing the stored data with (pre-computed) attributes, and by specialized query functions.
A Fast and Efficient Time Series Storage Based on Apache SolrQAware GmbH
OSDC 2016, Berlin: Talk by Florian Lautenschlager (@flolaut, Senior Software Engineer at QAware)
Abstract: How to store billions of time series points and access them within a few milliseconds? Chronix! Chronix is a young but mature open source project that allows one for example to store about 15 GB (csv) of time series in 238 MB with average query times of 21 ms. Chronix is built on top of Apache Solr a bulletproof distributed NoSQL database with impressive search capabilities. In this code-intense session we show how Chronix achieves its efficiency in both respects by means of an ideal chunking, by selecting the best compression technique, by enhancing the stored data with (pre-computed) attributes, and by specialized query functions.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
Launch Your Streaming Platforms in MinutesRoshan Dwivedi
The claim of launching a streaming platform in minutes might be a bit of an exaggeration, but there are services that can significantly streamline the process. Here's a breakdown:
Pros of Speedy Streaming Platform Launch Services:
No coding required: These services often use drag-and-drop interfaces or pre-built templates, eliminating the need for programming knowledge.
Faster setup: Compared to building from scratch, these platforms can get you up and running much quicker.
All-in-one solutions: Many services offer features like content management systems (CMS), video players, and monetization tools, reducing the need for multiple integrations.
Things to Consider:
Limited customization: These platforms may offer less flexibility in design and functionality compared to custom-built solutions.
Scalability: As your audience grows, you might need to upgrade to a more robust platform or encounter limitations with the "quick launch" option.
Features: Carefully evaluate which features are included and if they meet your specific needs (e.g., live streaming, subscription options).
Examples of Services for Launching Streaming Platforms:
Muvi [muvi com]
Uscreen [usencreen tv]
Alternatives to Consider:
Existing Streaming platforms: Platforms like YouTube or Twitch might be suitable for basic streaming needs, though monetization options might be limited.
Custom Development: While more time-consuming, custom development offers the most control and flexibility for your platform.
Overall, launching a streaming platform in minutes might not be entirely realistic, but these services can significantly speed up the process compared to building from scratch. Carefully consider your needs and budget when choosing the best option for you.
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Zoom is a comprehensive platform designed to connect individuals and teams efficiently. With its user-friendly interface and powerful features, Zoom has become a go-to solution for virtual communication and collaboration. It offers a range of tools, including virtual meetings, team chat, VoIP phone systems, online whiteboards, and AI companions, to streamline workflows and enhance productivity.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...kalichargn70th171
A dynamic process unfolds in the intricate realm of software development, dedicated to crafting and sustaining products that effortlessly address user needs. Amidst vital stages like market analysis and requirement assessments, the heart of software development lies in the meticulous creation and upkeep of source code. Code alterations are inherent, challenging code quality, particularly under stringent deadlines.
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Looking for a reliable mobile app development company in Noida? Look no further than Drona Infotech. We specialize in creating customized apps for your business needs.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
2. +
Outline
What’s ORAM ?
Motivation
History
More on ORAM
Goldreich’s ORAM
Ostrovsky’s ORAM
Recent Developments
Conclusion
3. +
What is ORAM ?
Oblivious Random Access Machine [ORAM]
A machine is oblivious if the sequence in which it accesses memory locations is
equivalent for any two inputs with the same running time.
E.g. For a client-server model with outsourced data storage in server, the server
cannot gain info about actual memory access pattern from client requests
Main Idea:
Memory Access Pattern is hidden from adversary.
Caveat: Assume data content is not leaked as it is protected by traditional
cryptographic methods (encryption)
ServerClient
read(i)
write(i, d)
.
.
.
4. +
Outline
What’s ORAM ?
Motivation
History
More on ORAM
Goldreich’s ORAM
Ostrovsky’s ORAM
Recent Developments
Conclusion
5. + Motivation
Rise of Cloud Computing
Success of Pay-as-you-Go model
for Public Clouds
Affordability, Elasticity,
SLA Guarantees
Lots of “Big” Data
Solution: Outsourced Data Storage
Accessible from many devices (desktop,
laptop, phone, car, ...).
Greater reliability.
May be cheaper (economy of scale).
Security Concerns behind
outsourcing data to Public Clouds
6. +
Motivation
Possible Solutions
Duh! Use encryption
Use “trusted” public cloud services
Com’on, Google is “not evil”
Use private cloud infrastructure
Eg. Walmart uses OpenStack
Is there a way to hide how we access our data but still use
public cloud infrastructure ?
Answer: ORAM
8. +
Motivation: Goal
“Untrusted” means:
It may not implement Write/Read properly
It will try to learn about data
Goal: Securely Outsourcing Data - Store,
access, and update data on an untrusted
server.
M[0]=d1
M[1]=d2
M[2]=d3
…
…
M[n]=dn
read(i)
write(i, d)
.
.
.
Client
Remote Server
[Islam et al, ‘12]
9. +
Motivation: Solution
An ORAM emulator is an intermediate layer
that protects any client (i.e. program).
ORAM will issue operations that deviate from
actual client requests.
Correctness:
If server is honest then input/ output behavior is same for client.
Security:
Server cannot distinguish between two clients with same running time.
10. +
Outline
What’s ORAM ?
Motivation
History
More on ORAM
Goldreich’s ORAM
Ostrovsky’s ORAM
Recent Developments
Conclusion
11. +
History of ORAM
Pippenger and Fischer showed “oblivious Turing
machines” could simulate general Turing machines
Goldreich introduced analogous notion of ORAMs in ’87
and gave first interesting construction
Ostrovsky gave a more efficient construction in ’90
... 20 years pass, time sharing systems become “clouds”
...
Then a flurry of papers improving efficiency: ~10 since
2010
12. +
Outline
What’s ORAM ?
Motivation
History
More on ORAM
Goldreich’s ORAM
Ostrovsky’s ORAM
Recent Developments
Conclusion
13. +
ORAM Assumptions
Assumption #1: Server does not see data.
Store an encryption key on emulator and re-encrypt on every
read/write.
Assumption #2: Server does not see op (read vs write).
Every op is replaced with both a read and a write.
Assumption #3: Server is honest-but-curious.
Store a MAC key on emulator and sign (address, time, data) on
each operation.
Not malicious
14. +
ORAM Security after Simplification
What’s left to protect is the “access pattern” of the program.
Definition: The access pattern generated by a sequence (i1,
..., in) with the ORAM emulator is the random variable (j1, ... ,
jT) sampled while running with an honest server.
Definition: An ORAM emulator is secure if for every pair of
sequences of the same length, their access patterns are
indistinguishable.
15. +
Trivial ORAMs
Example #1: Store everything in ORAM simulator cache
and simulate with no calls to server.
Client storage = N.
Example #2: Store memory on server, but scan entire
memory on every operation.
Amortized and worst-case communication overhead = N.
Example #3: Assume client accesses each memory slot
at most once, and then permute addresses using a PRP.
Essentially optimal, but assumption does not hold in practice.
16. +
ORAM Lower Bounds
Theorem (GO’90):
Any ORAM emulator must perform Ω(t log t) operations to
simulate t operations.
Proved via a combinatorial argument.
Theorem (BM’10):
Any ORAM emulator must either perform Ω(t log t log log
t) operations to simulate t operations or use storage Ω(N2-
o(1)) (on the server).
17. +
ORAM Efficiency Goals
In order to be interesting, an ORAM must
simultaneously provide
o(N) client storage
o(N) amortized overhead
Handling of repeated access to addresses.
Desirable features for an “optimal ORAM”:
O(log N) worst-case overhead
O(1) client storage between operations
O(1) client memory usage during operations
“Stateless client”: Allows several clients who share a short key
to obliviously access data w/o communicating amongst
themselves between queries. Requires op counters.
18. +
Basic Tools: Shuffling
This means we move data at address i to address π(i).
Proof idea:
Use an oblivious sorting algorithm.
For each comparison in the sort, read both positions and rewrite
them, either swapping the data or not (depending on if π(i) >
π(j)).
Key Idea: Use sorting networks like Batcher or AKS, where
memory accesses are independent of input
Claim: Given any permutation π on {1 , ... , N}, we can permute the
data according to π with a sequence of ops that does not depend on
the data or π.
19. +
Oblivious Sort: Sorting Network
Sorts Fixed number of values using a Fixed Sequence of
Comparisons.
Perfect for Oblivious Shuffling
Can be represented as networks of wires and comparator
modules
Values (of any ordered type) flow across the wires. E
Each comparator connect two wires
Batcher Sorting Network for n = 4
Time Complexity = O(N log2 N)
21. +
Outline
What’s ORAM ?
Motivation
History
More on ORAM
Goldreich’s ORAM
Ostrovsky’s ORAM
Recent Developments
Conclusion
22. +
Goldreich’s “Square Root” ORAM
Scan Cache from the Server
If data is not in server cache, read it from main
memory
If data is in server cache, read next dummy slot
Write data into server cache
Reshuffle with new K and flush cache after
every C reads.
Initialization: Pick PRP key K. Use it to obliviously shuffle
N data slots together with C “dummy” slots. Empty cache.
N data
slots
C dummy
slots
C cache
slots
Server Storage: N + 2C slots [General Case]
Client Storage: O(1)
23. +
Goldreich’s ORAM : Efficiency
Taking C=N1/2
Batcher sort ⇒ extra log N factor in costs
Security: Relatively easy to prove.
Server sees an oblivious sort and then C unique, random looking
read/writes before reinitializing.
25. +
Outline
What’s ORAM ?
Motivation
History
More on ORAM
Goldreich’s ORAM
Ostrovsky’s ORAM
Recent Developments
Conclusion
26. +
Ostrovsky’s “Hierarchical” ORAM
[Ostrovsky ’96]
Aim: Minimize Amortized cost of Random Shuffling in
“Square Root” Approach
Store data (including dummies) in Random-Hash Table,
rather than Randomly Sorted Array and recurse carefully
Main Idea:
Use Hierarchy of Buffers (hash tables) of different sizes
Shuffle buffers with frequency inversely proportional to their
sizes
Much more complicated technique for hiding repeated access to
same slots.
27. + Ostrovsky’s “Hierarchical” ORAM
Design
Server Storage
• log N “levels” for N items
• Level i contains 2i buckets
• Each buckets contains log N slots
• Each slot contains a ciphertext
encrypting data or dummy.
level
2
3
4
1
K
2
K3
K4
K
1
• Data starts on lowest level into buckets,
overflow happens
Client Storage
PRP key Ki for each level
• When accessed, data gets moved to level 1 with
negligible prob.
• Eventually, data gets shuffled to lower levels
• Invariant: ≤ 2i data slots used in level i
• (i.e. ≤ 1 per bucket on average)
= data
PRP
Keys
28. +
Ostrovsky’s ORAM: Read/Write
Read/Write(addr) *
Scan both top buckets for data
At each lower level, scan exactly one bucket
Until found, scan bucket at F(Ki, addr) on that level
After found, scan a random bucket on that level
Write data into bucket F(K1, addr) on level 1
Perform a “shuffling procedure” to maintain invariant
* Server is blind to ops i.e. every op is replaced with both a read
and a write (which might or might not modify the data).
29. +
Ostrovsky’s ORAM in Action
level
2
3
4
1
K
2
K3
K4
K
1
= data
PRF
Keys
Read/Write(blue address):
1. Scan both buckets at level 1
2. Scan bucket F(K2, addr) = 4 in level 2
3. Scan F(K3, addr) = 3 in level 3 (finding data)
4. Scan a random bucket in level
5. Move found data to level 1
30. +
Shuffling Procedure
We “merge levels” so that each level has ≤ 1 slot per
bucket on average
After T operations:
Let D={ max x : 2x divides T }
For i = 1 to D
Pick new PRP key for level i+1
Shuffle data in levels i and i+1 together into level i+1 using new
key
Level i is shuffled after every 2i ops.
31. +
Shuffling: Oblivious Hashing
12-step Shuffling process with multiple calls to 2 primitives for
merging level i and i+1 into i
Primitives Used:
Scanning: Reading all words in memory array and possibly
modifying them
Oblivious in the sense, order of access is predetermined and
same content may be written back
7 Calls
Oblivious Sorting:
Sorting memory array by sorting keys using Sorting Network such that
sequence of memory accesses are fixed and independent of input.
4 Calls
Example of Sorting Networks: Batchers, AKS
32. +
Ostrovsky’s ORAM in Action
level
2
3
4
1
K
2
K3
K4
K
1
= data
PRF
Keys
1. Read a Slot
33. +
Ostrovsky’s ORAM in Action
level
2
3
4
1
K
2
K3
K4
K
1
= data
PRF
Keys
1. Read a Slot
2. Read another Slot
Level 1 shuffled after 2^1 = 2 operations [stops here]
34. +
Ostrovsky’s ORAM in Action
level
2
3
4
1
K
2
K3
K4
K
1
= data
PRF
Keys
1. Read a Slot
2. Read another Slot
Level 1 shuffled after 2^2 = 2 operations
3. 2 more Reads
Level 1 shuffled after 2^2 = 4 operations
Level 2 shuffled after 2^2 = 4 operations [stops here]
35. +
Ostrovsky’s ORAM: Security
Security proof is more delicate than the first one.
Key observation: This scheme never uses the value F(Ki,
addr) on the same (key, address) twice.
Why? Suppose client touches for the same address twice.
After the first read, data is promoted to level 1.
During the next read:
If it is still on level 1, then we don’t evaluate F at all.
If it is has been moved, a new key must have been chosen for
that level since last read due to shuffling.
Using key observation, all reads look like random bucket scans.
37. +
Outline
What’s ORAM ?
Motivation
History
More on ORAM
Goldreich’s ORAM
Ostrovsky’s ORAM
Recent Developments
Conclusion
38. +
Recent Developments
Cuckoo Hashing ORAMs
Replace bucket-lists with more efficient hash table
Path ORAM Protocol
Binary Tree based ORAM Framework with client stash
Each block is mapped to a uniformly random leaf
bucket in the tree,
Unstashed blocks are always placed in some bucket
along the path to the mapped leaf.
39. +
Outline
What’s ORAM ?
Motivation
History
More on ORAM
Goldreich’s ORAM
Ostrovsky’s ORAM
Recent Developments
Conclusion
40. +
Conclusion
Main Takeaway
Use sorting networks with PRP keys to simulate oblivious
shuffling after a certain number of memory accesses
Rinse and repeat
Improvement
Use Hierarchy of Hash table Buffers of different sizes
Shuffle buffers with frequency inversely proportional to their sizes
41. +
References
Goldreich, Oded, and Rafail Ostrovsky. "Software protection
and simulation on oblivious RAMs." Journal of the ACM (JACM)
43.3 (1996): 431-473.
Islam, Mohammad Saiful, Mehmet Kuzu, and Murat
Kantarcioglu. "Access Pattern disclosure on Searchable
Encryption: Ramification, Attack and Mitigation." NDSS. Vol.
20. 2012.
http://cseweb.ucsd.edu/~cdcash/oram-slides.pdf