Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F10615317
README.md
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Subscribers
None
README.md
View Options
ctaes
=====
Simple
C
module
for
constant
-
time
AES
encryption
and
decryption
.
Features
:
*
Simple
,
pure
C
code
without
any
dependencies
.
*
No
tables
or
data
-
dependent
branches
whatsoever
,
but
using
bit
sliced
approach
from
https
:
//eprint.iacr.org/2009/129.pdf.
*
Very
small
object
code
:
slightly
over
4
k
of
executable
code
when
compiled
with
-
Os
.
*
Slower
than
implementations
based
on
precomputed
tables
or
specialized
instructions
,
but
can
do
~
15
MB
/
s
on
modern
CPUs
.
Performance
-----------
Compiled
with
GCC
5.3
.
1
with
-
O3
,
on
an
Intel
(
R
)
Core
(
TM
)
i7
-
4800
MQ
CPU
,
numbers
in
CPU
cycles
:
|
Algorithm
|
Key
schedule
|
Encryption
per
byte
|
Decryption
per
byte
|
|
---------
|
------------:|
-------------------:|
-------------------:|
|
AES
-
128
|
2.8
k
|
154
|
161
|
|
AES
-
192
|
3.1
k
|
169
|
181
|
|
AES
-
256
|
4.0
k
|
191
|
203
|
Build
steps
-----------
Object
code
:
$
gcc
-
O3
ctaes
.
c
-
c
-
o
ctaes
.
o
Tests
:
$
gcc
-
O3
ctaes
.
c
test
.
c
-
o
test
Benchmark
:
$
gcc
-
O3
ctaes
.
c
bench
.
c
-
o
bench
Review
------
Results
of
a
formal
review
of
the
code
can
be
found
in
http
:
//bitcoin.sipa.be/ctaes/review.zip
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Nov 23, 10:04 (22 h, 29 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4503398
Default Alt Text
README.md (1 KB)
Attached To
rSTAGING Bitcoin ABC staging
Event Timeline
Log In to Comment