# dfa

Published articles for dfa.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Solving regex crosswords with Z3

DevFeed: [Solving regex crosswords with Z3](<https://devfeed.tech/articles/solving-regex-crosswords-with-z3-21962.md>)

Original publisher: [Read original article](<https://blog.nelhage.com/post/regex-crosswords-z3/>)

Author: Nelson Elhage

Published: 2025-10-21T14:00:00Z

Content type: tutorial

Language: en

Sources: [Nelson Elhage](<https://devfeed.tech/sources/nelson-elhage.md>)

Topics: [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Automaton](<https://devfeed.tech/topics/automaton.md>), [Finite-state machine](<https://devfeed.tech/topics/finite-state-machine.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [dfa](<https://devfeed.tech/tags/dfa.md>), [experimentation](<https://devfeed.tech/tags/experimentation.md>), [performance](<https://devfeed.tech/tags/performance.md>), [python](<https://devfeed.tech/tags/python.md>), [regex](<https://devfeed.tech/tags/regex.md>)

### AI overview

This technical post explains how to solve regular-expression crossword puzzles with a Z3-backed solver. It describes encoding regular expressions as deterministic finite automata, using a Python library to convert regex syntax to finite-state machines, and exploring solver performance and implementation improvements.

### Source excerpt

For a while now, I've been fascinated by Z3 and by SMT solving more broadly. While on pat leave recently, I was reminded of the existence of regular-expression crossword puzzles, and allowed myself to get nerdsniped by writing a Z3-backed solver. I expected to spend perhaps an afternoon cranking out a quick solver; I ended up getting sucked into understanding and debugging Z3 performance, and learning far more about Z3 and about SMT than I expected.

## Attacking Hardware AES with DFA

DevFeed: [Attacking Hardware AES with DFA](<https://devfeed.tech/articles/attacking-hardware-aes-with-dfa-22356.md>)

Original publisher: [Read original article](<https://yifan.lu/2019/02/22/attacking-hardware-aes-with-dfa/>)

Author: yifanlu

Published: 2019-02-22T08:00:00Z

Content type: article

Language: en

Sources: [Yifan Lu](<https://devfeed.tech/sources/yifan-lu.md>)

Topics: [Hardware](<https://devfeed.tech/topics/hardware.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [bigmac](<https://devfeed.tech/tags/bigmac.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [code](<https://devfeed.tech/tags/code.md>), [dfa](<https://devfeed.tech/tags/dfa.md>), [dpa](<https://devfeed.tech/tags/dpa.md>), [f00d](<https://devfeed.tech/tags/f00d.md>), [glitching](<https://devfeed.tech/tags/glitching.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [paper](<https://devfeed.tech/tags/paper.md>), [technical](<https://devfeed.tech/tags/technical.md>), [vita](<https://devfeed.tech/tags/vita.md>)

### AI overview

A companion blog post explains an attempt to extract hardware keys from the PlayStation Vita using differential fault analysis against hardware AES. It introduces glitch-based faulty encryptions, reviews existing AES DFA implementations, and describes practical tradeoffs in adapting phoenixAES.

### Source excerpt

For the past couple of months, I have been trying to extract the hardware keys from the PlayStation Vita. I wrote a paper describing the whole process with all the technical details, but I thought I would also write a more casual blog post about it as well. Consider this a companion piece to the paper where I will expand more on the process and the dead ends than just present the results. In place of technical accuracy, I will attempt to provide more intuitive explanations and give background information omitted in the paper.

## Regexp performances and Finite Automata

DevFeed: [Regexp performances and Finite Automata](<https://devfeed.tech/articles/regexp-performances-and-finite-automata-34389.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2010/09/regexp-performances-and-finite-automata/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2010-09-26T19:00:00Z

Content type: article

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Automaton](<https://devfeed.tech/topics/automaton.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Perl](<https://devfeed.tech/topics/perl.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Emacs](<https://devfeed.tech/topics/emacs.md>)

Tags: [dfa](<https://devfeed.tech/tags/dfa.md>), [emacs-lisp](<https://devfeed.tech/tags/emacs-lisp.md>), [perl](<https://devfeed.tech/tags/perl.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [regexp](<https://devfeed.tech/tags/regexp.md>), [regular-expressions](<https://devfeed.tech/tags/regular-expressions.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

### AI overview

This article examines regular-expression performance through the lens of finite automata, contrasting NFA and DFA-based implementation techniques. It also discusses PostgreSQL's regular-expression implementation and the author's preference for using awk in some file-searching situations.

### Source excerpt

The major reason why I dislike perl so much, and ruby too, and the thing I'd want different in the Emacs Lisp API so far is how they set developers mind into using regexp. You know the quote, don't you? Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. That said, some situations require the use of regexp -- or are so much simpler to solve using them than the maintenance hell you're building here ain't that big a drag. The given expressiveness is hard to match with any other solution, to the point I sometime use them in my code (well I use rx to lower the burden sometime, just see this example).