mbox series

[v2,0/3] crypto: Introduce ARIA symmetric cipher algorithm

Message ID 20220704094250.4265-1-ap420073@gmail.com (mailing list archive)
Headers show
Series crypto: Introduce ARIA symmetric cipher algorithm | expand

Message

Taehee Yoo July 4, 2022, 9:42 a.m. UTC
This patchset adds a new ARIA(RFC 5794) symmetric cipher algorithm.

Like SEED, the ARIA is a standard cipher algorithm in South Korea.
Especially Government and Banking industry have been using this algorithm.
So the implementation of ARIA will be useful for them and network vendors.

Usecases of this algorithm are TLS[1], and IPSec.

It is tested in x86 and MIPS with the tcrypt module.

The first patch is an implementation of ARIA algorithm.
The second patch adds tests for ARIA.
The third patch adds ARIA-kTLS feature.

ARIA128-kTLS Benchmark results:
openssl-3.0-dev and iperf-ssl are used.
  TLS
[  3]  0.0- 1.0 sec   185 MBytes  1.55 Gbits/sec
[  3]  1.0- 2.0 sec   186 MBytes  1.56 Gbits/sec
[  3]  2.0- 3.0 sec   186 MBytes  1.56 Gbits/sec
[  3]  3.0- 4.0 sec   186 MBytes  1.56 Gbits/sec
[  3]  4.0- 5.0 sec   186 MBytes  1.56 Gbits/sec
[  3]  0.0- 5.0 sec   927 MBytes  1.56 Gbits/sec
  kTLS
[  3]  0.0- 1.0 sec   198 MBytes  1.66 Gbits/sec
[  3]  1.0- 2.0 sec   194 MBytes  1.62 Gbits/sec
[  3]  2.0- 3.0 sec   194 MBytes  1.63 Gbits/sec
[  3]  3.0- 4.0 sec   194 MBytes  1.63 Gbits/sec
[  3]  4.0- 5.0 sec   194 MBytes  1.62 Gbits/sec
[  3]  0.0- 5.0 sec   974 MBytes  1.63 Gbits/sec

The previous patch version[2].

[1] https://datatracker.ietf.org/doc/html/rfc6209
[2] https://www.spinics.net/lists/linux-crypto/msg64704.html

v2:
 - Add ARIA-kTLS feature.

Taehee Yoo (3):
  crypto: Implement ARIA symmetric cipher algorithm
  crypto: add ARIA testmgr tests
  net: tls: Add ARIA-GCM algorithm

 crypto/Kconfig           |   15 +
 crypto/Makefile          |    1 +
 crypto/aria.c            |  288 ++++
 crypto/tcrypt.c          |   38 +-
 crypto/testmgr.c         |   31 +
 crypto/testmgr.h         | 2860 ++++++++++++++++++++++++++++++++++++++
 include/crypto/aria.h    |  461 ++++++
 include/uapi/linux/tls.h |   30 +
 net/tls/tls_main.c       |   62 +
 net/tls/tls_sw.c         |   34 +
 10 files changed, 3819 insertions(+), 1 deletion(-)
 create mode 100644 crypto/aria.c
 create mode 100644 include/crypto/aria.h

Comments

Eric Biggers July 9, 2022, 10:32 p.m. UTC | #1
On Mon, Jul 04, 2022 at 09:42:47AM +0000, Taehee Yoo wrote:
> This patchset adds a new ARIA(RFC 5794) symmetric cipher algorithm.
> 
> Like SEED, the ARIA is a standard cipher algorithm in South Korea.
> Especially Government and Banking industry have been using this algorithm.
> So the implementation of ARIA will be useful for them and network vendors.
> 
> Usecases of this algorithm are TLS[1], and IPSec.

Is this actually going to be used in the real world, or is this just a PhD
thesis sort of thing?  There are already way too many random crypto algorithms
that are supported in the kernel, and many have been removed due to lack of
users -- implying that they should never have been accepted in the first place.

- Eric
Taehee Yoo July 10, 2022, 8:08 a.m. UTC | #2
Hi Eric,
Thanks a lot for your review!

On 7/10/22 07:32, Eric Biggers wrote:
 > On Mon, Jul 04, 2022 at 09:42:47AM +0000, Taehee Yoo wrote:
 >> This patchset adds a new ARIA(RFC 5794) symmetric cipher algorithm.
 >>
 >> Like SEED, the ARIA is a standard cipher algorithm in South Korea.
 >> Especially Government and Banking industry have been using this 
algorithm.
 >> So the implementation of ARIA will be useful for them and network 
vendors.
 >>
 >> Usecases of this algorithm are TLS[1], and IPSec.
 >
 > Is this actually going to be used in the real world, or is this just 
a PhD
 > thesis sort of thing?  There are already way too many random crypto 
algorithms
 > that are supported in the kernel, and many have been removed due to 
lack of
 > users -- implying that they should never have been accepted in the 
first place.
 >
 > - Eric

The ARIA is used as the standard cipher algorithm in South Korea.
Therefore the government and companies who want to work with the
government should use this algorithm.
The specific usecase is the e-government standard framework[1] in South
Korea, which is a standard framework that helps to develop software for
the government, It uses ARIA cipher.

Also, the OpenSSL already supports ARIA cipher for TLS so I think we can
use ARIA-kTLS with a simple PR.

I think these are good usecases.
This is not just an idea/thesis without usecases.

[1] https://www.egovframe.go.kr/eng/main.do

Thanks a lot!
Taehee Yoo
Herbert Xu July 15, 2022, 8:46 a.m. UTC | #3
On Mon, Jul 04, 2022 at 09:42:47AM +0000, Taehee Yoo wrote:
> This patchset adds a new ARIA(RFC 5794) symmetric cipher algorithm.
> 
> Like SEED, the ARIA is a standard cipher algorithm in South Korea.
> Especially Government and Banking industry have been using this algorithm.
> So the implementation of ARIA will be useful for them and network vendors.
> 
> Usecases of this algorithm are TLS[1], and IPSec.
> 
> It is tested in x86 and MIPS with the tcrypt module.
> 
> The first patch is an implementation of ARIA algorithm.
> The second patch adds tests for ARIA.
> The third patch adds ARIA-kTLS feature.
> 
> ARIA128-kTLS Benchmark results:
> openssl-3.0-dev and iperf-ssl are used.
>   TLS
> [  3]  0.0- 1.0 sec   185 MBytes  1.55 Gbits/sec
> [  3]  1.0- 2.0 sec   186 MBytes  1.56 Gbits/sec
> [  3]  2.0- 3.0 sec   186 MBytes  1.56 Gbits/sec
> [  3]  3.0- 4.0 sec   186 MBytes  1.56 Gbits/sec
> [  3]  4.0- 5.0 sec   186 MBytes  1.56 Gbits/sec
> [  3]  0.0- 5.0 sec   927 MBytes  1.56 Gbits/sec
>   kTLS
> [  3]  0.0- 1.0 sec   198 MBytes  1.66 Gbits/sec
> [  3]  1.0- 2.0 sec   194 MBytes  1.62 Gbits/sec
> [  3]  2.0- 3.0 sec   194 MBytes  1.63 Gbits/sec
> [  3]  3.0- 4.0 sec   194 MBytes  1.63 Gbits/sec
> [  3]  4.0- 5.0 sec   194 MBytes  1.62 Gbits/sec
> [  3]  0.0- 5.0 sec   974 MBytes  1.63 Gbits/sec
> 
> The previous patch version[2].
> 
> [1] https://datatracker.ietf.org/doc/html/rfc6209
> [2] https://www.spinics.net/lists/linux-crypto/msg64704.html
> 
> v2:
>  - Add ARIA-kTLS feature.
> 
> Taehee Yoo (3):
>   crypto: Implement ARIA symmetric cipher algorithm
>   crypto: add ARIA testmgr tests
>   net: tls: Add ARIA-GCM algorithm
> 
>  crypto/Kconfig           |   15 +
>  crypto/Makefile          |    1 +
>  crypto/aria.c            |  288 ++++
>  crypto/tcrypt.c          |   38 +-
>  crypto/testmgr.c         |   31 +
>  crypto/testmgr.h         | 2860 ++++++++++++++++++++++++++++++++++++++
>  include/crypto/aria.h    |  461 ++++++
>  include/uapi/linux/tls.h |   30 +
>  net/tls/tls_main.c       |   62 +
>  net/tls/tls_sw.c         |   34 +
>  10 files changed, 3819 insertions(+), 1 deletion(-)
>  create mode 100644 crypto/aria.c
>  create mode 100644 include/crypto/aria.h

Patches 1-2 applied.  Thanks.

Note that I adjusted the tcrypt test numbers to accommodate for other
additions.

Cheers,