Git Product home page Git Product logo

isa-l_crypto's Introduction

Intel(R) Intelligent Storage Acceleration Library Crypto Version

ISA-L_crypto is a collection of optimized low-level functions targeting storage applications. ISA-L_crypto includes:

  • Multi-buffer hashes - run multiple hash jobs together on one core for much better throughput than single-buffer versions.

    • SHA1, SHA256, SHA512, MD5, SM3
  • Multi-hash - Get the performance of multi-buffer hashing with a single-buffer interface. Specification ref : Multi-Hash white paper

  • Multi-hash + murmur - run both together.

  • AES - block ciphers

    • XTS, GCM, CBC
  • Rolling hash - Hash input in a window which moves through the input

Also see:

Building ISA-L

Prerequisites

x86_64:

  • Assembler: nasm v2.11.01 or later (nasm v2.13 or better suggested for building in AVX512 support) or yasm version 1.2.0 or later.
  • Compiler: gcc, clang, icc or VC compiler.
  • Make: GNU 'make' or 'nmake' (Windows).
  • Optional: Building with autotools requires autoconf/automake packages.

aarch64:

  • Assembler: gas v2.34 or later.
  • Compiler: gcc v8 or later.
  • For gas v2.24~v2.34, sve2 instructions are not supported. To workaround it, sve2 optimization should be disabled by
    • ./configure --disable-sve2
    • make -f Makefile.unx DEFINES+=-DNO_SVE2=1

Autotools

To build and install the library with autotools it is usually sufficient to run:

./autogen.sh
./configure
make
sudo make install

Makefile

To use a standard makefile run:

make -f Makefile.unx

Windows

On Windows use nmake to build dll and static lib:

nmake -f Makefile.nmake

Other make targets

Other targets include:

  • make check : create and run tests
  • make tests : create additional unit tests
  • make perfs : create included performance tests
  • make ex : build examples
  • make doc : build API manual

Algorithm recommendations

Legacy or to be avoided algorithms listed in the table below are implemented in the library in order to support legacy applications. Please use corresponding alternative algorithms instead.

+----------------------------------------------------+
| # | Algorithm      | Recommendation | Alternative  |
|---+----------------+----------------+--------------|
| 1 | MD5 integrity  | Legacy         | SHA256       |
|---+----------------+----------------+--------------|
| 2 | SHA1 integrity | Avoid          | SHA256       |
+----------------------------------------------------+

Intel(R) Intelligent Storage Acceleration for Crypto Library depends on C library and it is recommended to use its latest version.

Applications using the Intel(R) Intelligent Storage Acceleration for Crypto Library rely on Operating System to provide process isolation. As the result, it is recommended to use latest Operating System patches and security updates.

DLL Injection Attack

Problem

The Windows OS has an insecure predefined search order and set of defaults when trying to locate a resource. If the resource location is not specified by the software, an attacker need only place a malicious version in one of the locations Windows will search, and it will be loaded instead. Although this weakness can occur with any resource, it is especially common with DLL files.

Solutions

Applications using libisal_crypto DLL library may need to apply one of the solutions to prevent from DLL injection attack.

Two solutions are available:

  • Using a Fully Qualified Path is the most secure way to load a DLL
  • Signature verification of the DLL

Resources and Solution Details

isa-l_crypto's People

Contributors

gbtucker avatar pablodelara avatar yuhaoth avatar mdcornu avatar dong-liuliu avatar jessehui avatar daniel-hu-arm avatar tkanteck avatar jiaqizho avatar chenxuqiang avatar tom-cosgrove-arm avatar rjoursler avatar seth5141 avatar hjl-tools avatar wanghailiangx avatar ilmarmors avatar shark64 avatar buristan avatar uweigand avatar orbea avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.