{"title":"The never ending problem of counting bits efficiently","authors":"A. Suciu, P. Cobârzan, K. Marton","doi":"10.1109/ROEDUNET.2011.5993702","DOIUrl":null,"url":null,"abstract":"The problem of counting the ones of a bit sequence (commonly known as the “popcount” function) is one of the most interesting problems in cryptography. Although it has received attention for a very long time, it was brought back into focus by the new developments in hardware, both for CPUs (SSE 4.2) and for GPUs. The problem is of special interest in the field of testing the quality of random sequences and occurs in the first tests of the NIST battery of statistical tests for randomness. Obviously, for a “good” random sequence we would expect a “popcount” of about half the length of that sequence. Since testing the quality of a random number generator is notoriously computationally intensive we are of course interested in implementing efficiently the “popcount” function. In the present paper we analyze several implementation methods in search of the most efficient one; for now, we restrict our attention to the serial implementations for CPUs.","PeriodicalId":277269,"journal":{"name":"2011 RoEduNet International Conference 10th Edition: Networking in Education and Research","volume":"43 1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-06-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2011 RoEduNet International Conference 10th Edition: Networking in Education and Research","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ROEDUNET.2011.5993702","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 4
Abstract
The problem of counting the ones of a bit sequence (commonly known as the “popcount” function) is one of the most interesting problems in cryptography. Although it has received attention for a very long time, it was brought back into focus by the new developments in hardware, both for CPUs (SSE 4.2) and for GPUs. The problem is of special interest in the field of testing the quality of random sequences and occurs in the first tests of the NIST battery of statistical tests for randomness. Obviously, for a “good” random sequence we would expect a “popcount” of about half the length of that sequence. Since testing the quality of a random number generator is notoriously computationally intensive we are of course interested in implementing efficiently the “popcount” function. In the present paper we analyze several implementation methods in search of the most efficient one; for now, we restrict our attention to the serial implementations for CPUs.