<commit_before>---
layout: post
title: Implementation of PRESENT in parallel
date: 2017.02.03
discription: 64 blocks in parallel of PRESENT
---

# [64 blocks in parallel of PRESENT]

### 1. 数据变换
并行实现64个分组的加密。设64个分组分别为：
```C
uint64_t plain[64];
```
首先需要对数据的格式做处理，将64个分组相同位置的比特位统一放在一个uint64_t变量中。设变换后的输入数据为：
```C
uint64_t input[64];
```
则有，
ｓ
input[0] = plain[63]<sub>0</sub>...plain[1]<sub>0</sub>plain[0]<sub>0</sub>

input[63] = plain[63]<sub>63</sub>...plain[1]<sub>63</sub>plain[0]<sub>63</sub>

其中，plain[63]<sub>0</sub>表示plain[63]的最低比特位，plain[0]<sub>63</sub>表示plain[0]的最高比特位，其它同理。

[64 blocks in parallel of PRESENT]:<https://github.com/pfasante/present><commit_msg>new line<commit_after>---
layout: post
title: Implementation of PRESENT in parallel
date: 2017.02.03
discription: 64 blocks in parallel of PRESENT
---

# [64 blocks in parallel of PRESENT]

### 1. 数据变换
并行实现64个分组的加密。设64个分组分别为：
```C
uint64_t plain[64];
```
首先需要对数据的格式做处理，将64个分组相同位置的比特位统一放在一个uint64_t变量中。设变换后的输入数据为：
```C
uint64_t input[64];
```
则有，

input[0] = plain[63]<sub>0</sub>...plain[1]<sub>0</sub>plain[0]<sub>0</sub>

input[63] = plain[63]<sub>63</sub>...plain[1]<sub>63</sub>plain[0]<sub>63</sub>

其中，plain[63]<sub>0</sub>表示plain[63]的最低比特位，plain[0]<sub>63</sub>表示plain[0]的最高比特位，其它同理。

[64 blocks in parallel of PRESENT]:<https://github.com/pfasante/present>
{'fraction_non_alphanumeric': 0.19940029985007496, 'fraction_numerical': 0.08995502248875563, 'mean_word_length': 6.672413793103448, 'pattern_counts': {'":': 0, '<': 37, '<?xml version=': 0, '>': 37, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2138170', 'n_tokens_mistral': 726, 'n_tokens_neox': 670, 'n_words': 93}